Skip to main contentAller au contenu principal
Hub-EquityXBRL · MCP
MCP server · stdio · SEC + ESEF

The XBRL terminal,
served to your agent.

Typed tools on the engine behind the Hub-Equity screener. Query 12,500+ SEC and ESEF issuers from Claude or Cursor, with the filing behind every number attached.

01
The surface

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.

12,500+
Issuers indexed
195 M
Linkbase arcs preserved
94 M
Facts parsed
687 k
Restatements found
02
One call, end to end

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.

Claude Desktophub-equity · stdio

Look up Apple.

find_entity{ "query": "AAPL" }
returned0 / 5 fields
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.

03
The same catalog, without an agent

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.

Hub-Equity AIMCP-powered · Internal previewRecorded demo
01

AppleMichelinJ&J1 / 7
04
Installation

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.

00

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.

01

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.

02

Install the server

pipx run hub-equity-mcp : one package, no build step. About a minute on a first run.

03

Wire your agent

Paste the config block below and restart the client. Under 30 seconds.

claude_desktop_config.json
{
  "mcpServers": {
    "hub-equity": {
      "command": "pipx",
      "args": ["run", "hub-equity-mcp"],
      "env": {
        "HUBEQUITY_API_KEY": "INSERT_YOUR_API_KEY"
      }
    }
  }
}

Path: ~/Library/Application Support/Claude/ on macOS, %APPDATA%\Claude\ on Windows.

.cursor/mcp.json
# .cursor/mcp.json
{
  "mcpServers": {
    "hub-equity": {
      "command": "pipx",
      "args": ["run", "hub-equity-mcp"],
      "env": {
        "HUBEQUITY_API_KEY": "INSERT_YOUR_API_KEY"
      }
    }
  }
}
bash : from Python directly
pip install hub-equity
export HUBEQUITY_API_KEY="INSERT_YOUR_API_KEY"
python -c "from hub_equity import HubEquity; print(HubEquity().get_concept('REVENUE'))"

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.

05
The catalog

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.

Resolve issuer

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

Tagged numeric fact

get_fact

One concept for one period, with the filing it came from and a restatement flag.94 M facts parsed

Calculation tree

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

Silent restatements

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

Dimensional breakdown

get_segments

The XBRL axes an issuer actually reports (geography, segment, product) before drilling into a member.axes as tagged

06
Once you are wired in

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 shown
hub-equity://catalog/hubs

The vocabulary. Every standardised hub with EN/FR labels, category and taxonomy scope.

hub-equity://entity/{entity_id}/profile

One issuer, at a glance. Entity snapshot: DEI, auditor, filings summary.

prompts/listrun as a command2 of 8 shown
quality_of_earnings

A verdict, with its evidence. CFO vs net income, non-cash variation, restatements, auditor.

restatement_audit

Everything an issuer rewrote. Full 10-K/A history with material per-concept diffs.

Read with resources/read; the catalog resources answer with any key.

07
What it does that a REST wrapper cannot

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.

08
What the agent can prove

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.

09
Objections

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.

10

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

  1. Get an API key

    hub-equity.com/settings/api-keys : free tier, no card required.

  2. Install the MCP server

    pipx run hub-equity-mcp : a single Python package on PyPI.

  3. Wire your agent

    The same command and the same key, in each client's own file.