01 · Agents
Tools your model can call
A native MCP server that works with Claude, ChatGPT, Gemini and Cursor — connect it and the tools appear.
MCP
Developers
A native MCP server and bulk APIs that put cited filing intelligence inside your own agents and internal tools. The citation is part of the payload, not a footnote someone adds later.
Wire a model to a data feed and it will answer confidently with a number nobody can trace. The reviewer asks where it came from and the pipeline has no answer. The citation has to be in the payload, not bolted on after.
What you get instead
the citation inside the payload, not beside it
01 · The call
get_metric("NWR", "shares_outstanding")
your agent calls a tool, not a scraper
no pipeline to maintain
02 · The payload
{ "value": 1268500, "cite": { "filing": "10-Q", "para": 18 } }
as_of travels too — the source is a field, not a footnote
03 · The filing
10-Q · paragraph 18 · as filed
Accession 0001234567-24-000091
Same reference in bulk and streaming
identical citation across every surface
04 · The answer
The model quotes with a reference attached
reviewable without re-deriving it
01 · Agents
A native MCP server that works with Claude, ChatGPT, Gemini and Cursor — connect it and the tools appear.
MCP
02 · Provenance
Every returned value carries the filing and paragraph it came from, so anything the model says can be checked without re-deriving it.
Provenance
03 · Data
Backfill the history, then stay current — the same schema and the same citation reference across both.
APIs
04 · Safety
Nothing writes, nothing mutates. Safe to auto-approve in an agent loop without a review step on every call.
Read-only
The scenario
You are building an internal agent and the blocker is not the model — it is giving it data a reviewer will accept.
How Kaleidoscope helps
The scenario
You need this in the warehouse, joined against everything else, with a backfill that does not drift from the live feed.
How Kaleidoscope helps
The scenario
You are putting filing intelligence in front of your own users and their first question will be where the number came from.
How Kaleidoscope helps
Connect any subset of ten domain servers to your AI client. Your agent queries filings, deals, ownership and the rest directly.
Agent calls
insider_history(ticker="CRWD", limit=1)
MCP returns
{ "issuer": "CrowdStrike Holdings, Inc.",
"role": "Chief Financial Officer",
"date": "2026-09-24", "type": "S",
"shares": -18000, "price": 263.51,
"plan_10b5_1": true,
"source": { "form": "4" } }
The source travels with the value — the agent can't quote the trade without its filing.
An MCP tool call — the Form 4 comes back with its source attached
The same tools in a hosted chat, for teams who want cited answers today without wiring anything up first.
REST and bulk endpoints for teams that want the data in their own warehouse rather than in an agent loop.
GET
/v1/funding/rounds?company=black-forest-labs
Response
[ { "round": "Series B", "amount_usd": 300000000,
"announced": "2025-12-01", "source": "press release" },
{ "form": "D", "filed": "2026-06-03",
"exemption": "506(b)", "offering_usd": 343309894,
"sold_usd": 307572022, "source": "SEC EDGAR" } ]
Press and filing on one company ID — every row says where it came from.
The same record over REST — press round and Form D on one company
Core platform
MCP data layers · connect any subset
Workflow & delivery
What did this issuer say about termination rights last year versus this year, and cite both.
→ returns both passages with accession and paragraph references.
| How it compares | Kaleidoscope | Generic data APIs | Build it yourself |
|---|---|---|---|
| Citations | A field in every response | Not modelled | Whatever you capture |
| Agent access | Native MCP server | Wrap it yourself | Wrap it yourself |
| Coverage | Ten domains on one schema | Usually one domain | As many as you build |
| History | Point-in-time, never restated | Often revised silently | Yours to guarantee |
| Approval | Read-only, auto-approvable | Depends on the wrapper | Yours to design |
| Maintenance | No pipeline to keep fresh | Client code only | A standing cost |
Why teams switch
We did not need a better model. We needed the number to arrive with a filing reference so the reviewer would sign off.
Talk to our team about how you work today, or start a trial and explore the platform yourself.