An engine, not a copy of one.
The MCP server queries the same store the Hub-Equity screener queries. There is no export, no nightly snapshot and no second corpus between your agent and the filings.
What your agent actually gets back
A question in plain language, one typed tool call, and a payload that carries the filing it came from. Pick another tool to see its shape.
Look up Apple.
find_entity{ "query": "AAPL" }- name
- Apple Inc.
- entity_id
- 93e01f46-0ba8-4df5-9075-6d963aab2143
- ticker
- AAPL
- mic
- XNASNasdaq
- cik
- 0000320193
A ticker, a ticker.MIC, a CIK or a name resolves to one canonical entity_id. An ambiguous ticker comes back as up to five candidates, each with its MIC when it has one.
Ask it in plain language
The same tools answer inside the platform too, on the same store and the same filings. Same corpus, same receipts, no second surface to keep in sync. Free accounts get this recorded demo; the live chat opens from Builder.
One config block, and you are wired in
The server ships as a single Python package on PyPI: the same command and the same key, in each client's own file. No gateway, no paid plan needed.
Create a free key.
Create an account, open Settings, then API keys: name the key, pick live or test, accept the API terms. No card. The server needs it: without a key, every tool answers with the link to create one.
Put it in the env block.
HUBEQUITY_API_KEY in your client's config, as below. A free key opens entity lookup, facts and the base tools at 120 requests a minute, 200 calls a day and 5,000 a month.
Install the server
pipx run hub-equity-mcp : one package, no build step. About a minute on a first run.
Wire your agent
Paste the config block below and restart the client. Under 30 seconds.
Path: ~/Library/Application Support/Claude/ on macOS, %APPDATA%\Claude\ on Windows.
Continue takes the same stdio entry point from an MCP block in config.yaml. The same key works on the REST API, the MCP server and the Python SDK.
Then ask your client: Find Apple, then get its revenue for FY2025 and show me the source filing.
Typed tools. These five carry the audit.
Every fact call returns a typed payload with the filing it came from. The rest of the catalog is discovery, navigation and comparison around these five.
find_entity
Ticker, ticker.MIC, CIK or name to a canonical entity_id. An ambiguous ticker returns up to five candidates, each with its MIC when it has one.12,500+ issuers
get_fact
One concept for one period, with the filing it came from and a restatement flag.94 M facts parsed
get_fact_decomposition
The XBRL calculation linkbase per link role, with the filer's weights and the corrected ones side by side.195 M linkbase arcs
get_silent_restatements
The figures a later filing reprinted differently in its comparative columns, with no amendment filed, grouped by the filing that revealed them. Most restatements never come as a 10-K/A.687 k restated figures
get_segments
The XBRL axes an issuer actually reports (geography, segment, product) before drilling into a member.axes as tagged
Resources and prompts, discoverable by the client
The catalog resources describe the vocabulary an agent is querying. The prompts are parameterised workflows it can run without you writing them. The client lists them all on connection.
resources/listattached as context2 of 9 shownhub-equity://catalog/hubsThe vocabulary. Every standardised hub with EN/FR labels, category and taxonomy scope.
hub-equity://entity/{entity_id}/profileOne issuer, at a glance. Entity snapshot: DEI, auditor, filings summary.
prompts/listrun as a command2 of 8 shownquality_of_earningsA verdict, with its evidence. CFO vs net income, non-cash variation, restatements, auditor.
restatement_auditEverything an issuer rewrote. Full 10-K/A history with material per-concept diffs.
Read with resources/read; the catalog resources answer with any key.
Four calls. The full moat.
Three of these are a single tool call on the engine the Hub-Equity screener queries; the fourth is what the corpus is made of.
Every number arrives with its receipt. That is the difference from a scraper.
The filing it came from
Form type, filing date and period end travel with the value, plus a deep link that opens the document itself. The agent cites a source, not just a figure.
The tag the issuer used, when one carries it
Where a value comes from a single tag, the issuer's own qname is returned beside the canonical concept. Where none carries it, the field comes back empty rather than borrowing one: a provenance we cannot prove is not offered.
The currency it was reported in
When the filing states a currency, the agent gets that currency, never a converted one. Conversion is a separate call, so the two are never mixed in one value.
What the filing actually printed
When a later filing restates a year, the served value is the corrected one and the figure as printed in the cited document is returned beside it. Nothing is overwritten in silence.
Choosing an MCP server for filings data
The questions people actually ask before wiring an agent to a fundamentals source.
Which MCP server should I use for SEC and ESEF fundamentals?
One that reconciles the two taxonomies for you. Hub-Equity standardizes SEC EDGAR (US-GAAP) and European ESEF (IFRS) filings onto one set of concepts, so an agent compares a US and a European issuer without a manual crosswalk. Servers that expose raw XBRL leave that work to the caller.
How is this different from an MCP server that returns raw XBRL?
One vocabulary instead of the issuer's own tags. Raw tags differ between filers, between US-GAAP and IFRS, and across years. Hub-Equity maps them onto one canonical set of concepts, so the same question returns a comparable answer whoever filed it. Every fact comes back with its filing and its period, and the tag the issuer wrote where a single tag carries it: a raw feed gives you the tags without the reconciliation, a standardised sheet without the tag gives you no way to check it.
Does it cover European companies, not just US filers?
Today, France. European ESEF filings are standardised on the same concepts as US filers, and Europe opens market by market. The 12,500+ issuers we count are the ones a visitor can open without an account, each with at least one fiscal year carrying a balance sheet and an income statement. Count them in the screener.
Why not just EDGAR and an LLM?
The source matters more than the model. Daloopa's February 2026 benchmark on 500 finance questions put agents at 89 to 91% accuracy reading structured data over MCP, against 20 to 71% from web search alone. The filings are public; the normalised, traceable layer isn't.
How do I install it?
One command and one file. It is published on PyPI as hub-equity-mcp and runs with 'pipx run hub-equity-mcp', in any MCP client: Claude Desktop, Claude Code, Cursor and Continue.
Does it handle restatements and fiscal-year alignment?
Yes, both. When an issuer restates a prior year, both the original and the corrected figure are retained rather than silently overwritten, and periods are aligned on fiscal year so companies with different year-ends compare directly.
Three steps, under two minutes
Free tier, no card. The MCP server, the REST API and the Python SDK all take the same key.
Built in Paris on the ESEF standard. Backed by the public taxonomy, not by a paywall.
Hub-Equity SAS · contact@hub-equity.com · Paris, France
Get an API key
hub-equity.com/settings/api-keys : free tier, no card required.
Install the MCP server
pipx run hub-equity-mcp: a single Python package on PyPI.Wire your agent
The same command and the same key, in each client's own file.