MCP.Market

Esef Filings MCP server

online · 100% uptime
by pipeworx-io·io.github.pipeworx-io/esef-filings·v0.2.1·1 stars

XBRL filings index MCP — wraps the filings.xbrl.org JSON:API index run by XBRL International, plus…

B77/100grade B
What users say
No reviews yet
Be the first
Safety scan
B77/100

not scanned yet

Adoption
Growing

1 stars

Reviews

Write one

Nobody has reviewed Esef Filings yet.

If you have run it, two minutes of your experience saves the next person an afternoon.

Esef Filings tools

Tool list not cached yet. `describe` through the gateway fetches it live.

Not scanned yet. New listings are scanned within a day or two of arriving.

How Esef Filings compares

Against every graded MCP server, from our own scans and uptime checks. Updated after each scan run.

Safety score
77/100
higher than 50% of 48,255 servers
Uptime
100%
of our recent checks; the typical remote server answers 100%
Response time
62 ms
faster than 91% of 30,031 servers
GitHub stars
1
more than 65% of 28,688 servers

Release history: 10 versions in the registry since 2026-09-14, latest 2026-11-01, typically one every 4 days.

Install Esef Filings in Claude Code, Cursor or VS Code

claude mcp add --transport http esef-filings https://gateway.pipeworx.io/esef-filings/mcp
Add to Cursor

What the publisher says

From the Esef Filings repository's README, as published. We do not edit it. Read it on GitHub

@pipeworx/esef-filings

XBRL filings index MCP — published company annual reports from the filings.xbrl.org index run by XBRL International, plus the IFRS financial facts inside each one. Keyless.

Part of Pipeworx — an MCP gateway connecting AI agents to 1576+ live data sources.

The European counterpart to sec-xbrl: same idea (accounting facts straight out of a regulator's XBRL), different filing regime.

Tools

  • esefsearchfilings(entityname?, country?, regime?, year?, periodend?, with_errors?, sort?, limit?, page?) — search the index. Returns company name, LEI or national identifier, country, regime, period end, XBRL validation error/warning counts, report language and links to the xBRL-JSON, HTML report, viewer and package.
  • esefentityfilings(entity, limit?) — every filing for one company, resolving a name, LEI or national registration number. Returns what it resolved to and how, plus filings grouped into distinct reports (see "Language editions" below).
  • eseffilingfacts(fxoid? | entity?, year?, concept?, includedimensioned?, limit?) — the second hop. Opens the filing's xBRL-JSON report and returns named IFRS facts with value, currency, period and concept.

esefsearchfilings and esefentityfilings prove a filing exists; only eseffilingfacts returns money.

Scope

25,640 filings under exactly two reporting regimes:

The pack name says ESEF; the source is broader than ESEF. Both country and regime are first-class filters so a caller can pin the scope they meant. See GOTCHA 2 below — this is not a cosmetic detail.

Auth

None. No key, no account, no rate-limit documentation published.

filings.xbrl.org is a nonprofit index, so the pack is deliberately quiet with it: one index request per call, at most one report fetch, no probing or fan-out, and a real contactable User-Agent (Pipeworx/1.0 (+https://pipeworx.io; support@pipeworx.io)).

Gotchas

GOTCHA 1 — a wrong filter param is silently ignored, not rejected

This is the dangerous one and it is why filter construction lives in exactly one helper.

The API takes JSON:API filters in two forms:

?filter%5Bcountry%5D=FI     bracketed shortcut, percent-encoded  -> meta.count 1168, Finnish records
?country=FI                 bracketed form written WITHOUT the brackets
                            -> HTTP 200, meta.count 25640, first record Ukrainian

The second is the entire unfiltered index wearing a successful filtered query's clothes. Same status code, same envelope, same field names — nothing to catch.

Two defences, both in src/index.ts:

  1. The pack never uses the bracketed shortcut for filters. It uses the flask-rest-jsonapi complex form, ?filter=[{"name":"country","op":"eq","val":"FI"}] — a single unbracketed param, so there is no bracket encoding to get wrong, and a bad attribute name is rejected loudly (HTTP 400 "FilingSchema has no attribute bogus") instead of ignored. Only page[size] / page[number] are bracketed, and they go through buildUrl(), which uses URLSearchParams (which percent-encodes brackets).
  2. verifyFilters() re-checks the returned rows against what was asked for. Every esefsearchfilings response carries filtersapplied, filtersverified and filter_mismatches, so a filter that somehow failed to bite shows up in the payload rather than quietly widening the answer.

GOTCHA 2 — this index is not ESEF-only, and saying otherwise is a wrong answer

An unfiltered probe's first record is Ukrainian: EDRPOU-32033791-2020-12-31-UAIFRS-UA-0. 38% of the index is UAIFRS. Describing the pack as "European filings" while it can return Ukraine is the resolver-grain trap — the caller gets a confident answer at the wrong grain.

Shortened. The full README is on GitHub.

Nothing above is checked by us. What we check is on the safety report.

Grade history

  • 2026-10-03downgradeA → Bscore 77: Write-action tools reachable without authentication; Unusually long tool description (over 2,000 characters)
  • 2026-09-19restoreB → Ascore 87

Esef Filings: common questions

Is Esef Filings MCP server safe?
Mostly: it is graded B (77/100). Read the Esef Filings safety report
How do I install Esef Filings?
It runs remotely at gateway.pipeworx.io. Add it to Claude Code, Cursor, VS Code or Claude Desktop with the snippets above, or call it through the mcp.market gateway without installing anything.
Does Esef Filings need an API key?
Yes. The registry entry asks for PIPEWORX_API_KEY.
Is Esef Filings maintained?
The last commit was 35 days ago (2026-09-30). The latest release is v0.2.1.
Is Esef Filings up?
100% of our last 28 checks got an answer. We check remote servers about four times a day.
How does Esef Filings compare with other MCP servers?
safety score 77/100 (higher than 50% of 48,255 servers); uptime 100% (of our recent checks; the typical remote server answers 100%); response time 62 ms (faster than 91% of 30,031 servers). Full comparison.

More from pipeworx-io →