# Esef Filings (npm · @pipeworx/mcp-esef-filings)

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

- Trust score: 79/100 (medium)
- Change this week: +3
- Registry status: active
- Liveness: live
- Owner verified: no
- Last scored: 2026-11-05

## Components

- remote · `gateway.pipeworx.io`: 63/100, [markdown](https://verifymcp.io/servers/pipeworx-io-esef-filings/esef-filings-mcp.md), [page](https://verifymcp.io/servers/pipeworx-io-esef-filings/esef-filings-mcp)
- npm · `@pipeworx/mcp-esef-filings`: 79/100 (this document), [markdown](https://verifymcp.io/servers/pipeworx-io-esef-filings/pipeworx-mcp-esef-filings.md), [page](https://verifymcp.io/servers/pipeworx-io-esef-filings/pipeworx-mcp-esef-filings)

## Channel facts

- Registry: `npm`
- Package: `@pipeworx/mcp-esef-filings`
- Version: `0.2.1`
- Transport: `stdio`

## Trust breakdown

How this component scores in each security and reliability category. Every signal is checked automatically from public evidence about the published package, including repeated runs of it in an isolated sandbox, and we only credit what we can confirm. Scores are 0–100 per category. Scoring method: https://verifymcp.io/docs/scoring (what has changed: https://verifymcp.io/docs/scoring/changelog)

Scored 2026-11-05.

- **Supply Chain Security**: 100/100
  - No malware found by supply-chain analysis.
  - No known CVEs affecting this package version or its production dependencies.
  - No install/post-install scripts declared.
  - No production dependencies, so there is no dependency health to assess.
- **Provenance & Transparency**: 97/100
  - Source repository is publicly reachable at the declared URL.
  - Cryptographically verified build provenance (signed, bound to pipeworx-io/mcp-esef-filings).
  - Clear OSI-approved license (MIT).
  - Actively maintained (last published 3 days ago).
  - Disclosure check failed: no security disclosure policy was found in the source repository.
- **Schema Quality & AI Usability**: 49/100
  - AI-judged instruction clarity (good).
  - Context-footprint check failed: tool/resource definitions use about 4477 tokens (~1492/item across 3 items; 3 tools + 0 resources), over budget; trim descriptions and params.
  - Usage-examples check failed: none of the tools include examples.
- **Stability & Change Management**: 23/100
  - Stability observed for 7 of 30 days with no destabilising changes; credit accrues until the full window elapses.
- **Tool Coverage**: 100/100
  - 100% of tools have a non-trivial description (not blank, and not just the tool's name).
  - 100% of tool parameters carry a description.
- **Tool Safety**: 100/100
  - No prompt-injection markers were found in the server instructions, tool names or descriptions we captured.
  - We read all 3 captured tool definition(s), and no name or description among them implies an irreversible operation.
  - An AI judge read all 4 captured unit(s) of tool text and found none that tries to manipulate the model reading it.
- **Capabilities**: 100/100
  - Implements a supported MCP spec version (2025-11-25); the latest is 2026-07-28.

## Install

### How do I install the Esef Filings MCP server?

Esef Filings runs locally as an npm package, launched with npx -y @pipeworx/mcp-esef-filings. Ready-made configuration for Claude, Cursor, VS Code, Codex and 5 more is on this page, copied from each client's own documentation.

### Claude

```bash
claude mcp add pipeworx-io-esef-filings -- npx -y @pipeworx/mcp-esef-filings
```

### Cursor

```json
{
  "mcpServers": {
    "pipeworx-io-esef-filings": {
      "command": "npx",
      "args": [
        "-y",
        "@pipeworx/mcp-esef-filings"
      ]
    }
  }
}
```

### VS Code

```json
{
  "servers": {
    "pipeworx-io-esef-filings": {
      "command": "npx",
      "args": [
        "-y",
        "@pipeworx/mcp-esef-filings"
      ]
    }
  }
}
```

### Codex

```bash
codex mcp add pipeworx-io-esef-filings -- npx -y @pipeworx/mcp-esef-filings
```

### opencode

```json
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "pipeworx-io-esef-filings": {
      "type": "local",
      "command": [
        "npx",
        "-y",
        "@pipeworx/mcp-esef-filings"
      ],
      "enabled": true
    }
  }
}
```

### OpenClaw

```bash
openclaw mcp add pipeworx-io-esef-filings --command npx --arg -y --arg @pipeworx/mcp-esef-filings
```

### Hermes

```yaml
mcp_servers:
  pipeworx-io-esef-filings:
    command: "npx"
    args: ["-y", "@pipeworx/mcp-esef-filings"]
```

### Netclaw

```json
{
  "McpServers": {
    "pipeworx-io-esef-filings": {
      "Transport": "stdio",
      "Command": "npx",
      "Arguments": [
        "-y",
        "@pipeworx/mcp-esef-filings"
      ]
    }
  }
}
```

### Vellum

```bash
assistant mcp add pipeworx-io-esef-filings -t stdio -c npx -a -y @pipeworx/mcp-esef-filings
```

### Other

```json
{
  "mcpServers": {
    "pipeworx-io-esef-filings": {
      "command": "npx",
      "args": [
        "-y",
        "@pipeworx/mcp-esef-filings"
      ]
    }
  }
}
```

## Changelog

Every change recorded for this component, newest first. Days that predate change tracking, or that we cannot explain, say so: "we were watching and nothing happened" and "we were not watching" are different claims.

### 2026-11-03 (score 79, +1)

No change was recorded against any check on this day. Stability & Change Management went from 13 to 17. That category is still filling its 30-day observation window: 4 days of observed history at the previous scan, 5 at this one. The score rises as the window fills, whether or not the server changes.

### 2026-11-01 (score 78, +1)

- [security regression] Tool safety: pass → unverified
- [security regression] Stability: 0.07 → unverified
- [functional regression] Tool coverage: 100 → unverified
- [functional regression] Capabilities: pass → unverified
- [functional] First check of Schema quality: unverified
- [functional] Package version: 0.2.0 → 0.2.1

### 2026-10-30 (score 77, +1)

No change was recorded against any check on this day. Stability & Change Management went from 0 to 3. That category is still filling its 30-day observation window: 0 days of observed history at the previous scan, 1 at this one. The score rises as the window fills, whether or not the server changes.

### 2026-10-29 (score 76)

First indexed and scored.

## MCP tools (3)

### `esef_search_filings` (~1562 tokens)

Search the XBRL International filings index (filings.xbrl.org) for published company annual reports. Answers "which European companies have filed an annual report for 2023", "does Nokia have an ESEF filing", "list Finnish filings with validation errors", "Portuguese filings with a period end after 2024-06-30", "Spanish annual reports for 2025". Returns per filing: company name, LEI or national identifier, country, reporting regime, period end, source (xbrl.org, cmvm, cnmv, newsweb or fi) and official publication time where known, XBRL validation error/warning counts, report language, and direct links to the machine-readable xBRL-JSON, the inline-XBRL HTML report and the viewer. Filter by company name (substring), country (ISO-2), regime, exact period end date, calendar year, or a period_end_from/period_end_to date range. Any other argument name is rejected with a user_error rather than silently ignored. Covers 25,640 filings in two regimes: ESEF (~16,000 annual financial reports from 19 European countries — AT BE CY CZ DK ES FI FR GB GR IS IT LT NL NO PL PT RO SE) and UAIFRS (~9,600 Ukrainian IFRS filings, country UA). Pass `country` or `regime` to pin the scope you mean. Portuguese (PT), Spanish (ES) and Norwegian (NO) ESEF reports are also read directly from where each country publishes them — CMVM for Portugal, CNMV for Spain, Oslo Børs NewsWeb for Norway — so PT, ES and NO coverage follows official publication (typically within a day) rather than the index's months-long lag; each row names its `source` and those rows carry the official `published_at`. Swedish (SE) reports are likewise read from Finansinspektionen (FI), the Swedish OAM, which is the only source for Swedish FY2025 reports, Belgian (BE) reports from the FSMA's STORI database, the Belgian OAM, Maltese (MT) reports from the Malta Stock Exchange OAM, the only source for Maltese FY2025 reports, Croatian (HR) reports from HANFA's SRPI, the Croatian OAM and the only source for Croatian FY2025 reports, H…

Input parameters:

- `country` (string): ISO-2 country of the filing jurisdiction: AT, BE, CY, CZ, DK, ES, FI, FR, GB, GR, IS, IT, LT, MT, NL, NO, PL, PT, RO, SE (ESEF) or UA (UAIFRS). LU, SI, EE, IE and BG are also accepted — these five ar…
- `entity_name` (string): Company name or fragment, case-insensitive substring match against the filer name (e.g. "Nokia", "Citycon", "Vodafone", "Siemens").
- `limit` (number): Filings to return, 1-100. Default 20.
- `page` (number): Page number for paging through a large match set, starting at 1. Default 1.
- `period_end` (string): Exact reporting period end date, ISO format, e.g. "2023-12-31". Takes precedence over `year` and over `period_end_from`/`period_end_to`.
- `period_end_from` (string): Only filings whose reporting period end is on or after this ISO date, e.g. "2024-01-01". Combine with `period_end_to` for a range; either bound may be used alone. Ignored if `period_end` (exact) is a…
- `period_end_to` (string): Only filings whose reporting period end is on or before this ISO date, e.g. "2024-12-31". Combine with `period_end_from` for a range; either bound may be used alone. Ignored if `period_end` (exact) i…
- `regime` (string): Reporting regime: "ESEF" for the European Single Electronic Format annual financial report, or "UAIFRS" for Ukrainian IFRS filings. Omit to search both.
- `sort` (string): Result ordering: "newest" (most recently added to the index, the default), "oldest", "period_desc" (latest reporting period first), or "period_asc".
- `with_errors` (boolean): Set true to return only filings that failed XBRL validation (error_count greater than zero).
- `year` (number): Calendar year of the reporting period end, e.g. 2023. Matches any period ending in that year.

### `esef_entity_filings` (~993 tokens)

List every annual report one company has published to the XBRL International filings index, resolving a company name, LEI, or national registration number to the filer. Answers "what years has Citycon filed?" or "give me Nokia's latest annual report". Returns the resolved company (name, identifier, and how the match was made) plus each filing with period end, country, regime, validation error/warning counts and links to the xBRL-JSON, HTML report and viewer. Covers 25,640 filings in two regimes: ESEF (~16,000 annual financial reports from 19 European countries — AT BE CY CZ DK ES FI FR GB GR IS IT LT NL NO PL PT RO SE) and UAIFRS (~9,600 Ukrainian IFRS filings, country UA). Pass `country` or `regime` to pin the scope you mean. Portuguese (PT), Spanish (ES) and Norwegian (NO) ESEF reports are also read directly from where each country publishes them — CMVM for Portugal, CNMV for Spain, Oslo Børs NewsWeb for Norway — so PT, ES and NO coverage follows official publication (typically within a day) rather than the index's months-long lag; each row names its `source` and those rows carry the official `published_at`. Swedish (SE) reports are likewise read from Finansinspektionen (FI), the Swedish OAM, which is the only source for Swedish FY2025 reports, Belgian (BE) reports from the FSMA's STORI database, the Belgian OAM, Maltese (MT) reports from the Malta Stock Exchange OAM, the only source for Maltese FY2025 reports, Croatian (HR) reports from HANFA's SRPI, the Croatian OAM and the only source for Croatian FY2025 reports, Hungarian (HU) reports from the MNB's Közzétételek site, the Hungarian OAM and the only source for Hungarian FY2025 reports, Lithuanian (LT) reports from oam.lt, the Lithuanian OAM run by Nasdaq Vilnius, as well as the index, Romanian (RO) reports from the ASF OAM, the only source for Romanian FY2025 reports, Cypriot (CY) reports from the Cyprus Stock Exchange public OAM, the only source for Cypriot FY2025 reports, and Latvian (LV) reports from CSRI,…

Input parameters:

- `entity` (string, required): Company name ("Citycon", "Nokia"), 20-character LEI ("549300P8N0P6KDGTJ206"), or national registration number for Ukrainian filers ("32033791"). Names are matched case-insensitively as a substring; t…
- `limit` (number): Filings to return, 1-100. Default 50.

### `esef_filing_facts` (~1866 tokens)

Read the actual IFRS financial facts out of one published annual report — revenue, profit or loss, total assets, equity, operating cash flow, earnings per share and every other tagged figure, with the currency, the exact reporting period and the XBRL concept name. This is the numbers hop: esef_search_filings and esef_entity_filings prove a filing exists, this one opens its machine-readable xBRL-JSON report and returns what the company reported. Covers 25,640 filings in two regimes: ESEF (~16,000 annual financial reports from 19 European countries — AT BE CY CZ DK ES FI FR GB GR IS IT LT NL NO PL PT RO SE) and UAIFRS (~9,600 Ukrainian IFRS filings, country UA). Pass `country` or `regime` to pin the scope you mean. Portuguese (PT), Spanish (ES) and Norwegian (NO) ESEF reports are also read directly from where each country publishes them — CMVM for Portugal, CNMV for Spain, Oslo Børs NewsWeb for Norway — so PT, ES and NO coverage follows official publication (typically within a day) rather than the index's months-long lag; each row names its `source` and those rows carry the official `published_at`. Swedish (SE) reports are likewise read from Finansinspektionen (FI), the Swedish OAM, which is the only source for Swedish FY2025 reports, Belgian (BE) reports from the FSMA's STORI database, the Belgian OAM, Maltese (MT) reports from the Malta Stock Exchange OAM, the only source for Maltese FY2025 reports, Croatian (HR) reports from HANFA's SRPI, the Croatian OAM and the only source for Croatian FY2025 reports, Hungarian (HU) reports from the MNB's Közzétételek site, the Hungarian OAM and the only source for Hungarian FY2025 reports, Lithuanian (LT) reports from oam.lt, the Lithuanian OAM run by Nasdaq Vilnius, as well as the index, Romanian (RO) reports from the ASF OAM, the only source for Romanian FY2025 reports, Cypriot (CY) reports from the Cyprus Stock Exchange public OAM, the only source for Cypriot FY2025 reports, and Latvian (LV) reports from CSRI, the Latvian OA…

Input parameters:

- `concept` (string): Case-insensitive substring of the IFRS concept name to return, e.g. "Revenue", "ProfitLoss", "Assets", "Equity", "CashFlowsFromUsedInOperatingActivities", "EarningsPerShare". Omit for the headline pr…
- `entity` (string): Company name, LEI, or national registration number, used when no fxo_id is available. Combine with `year` to choose a financial year; the latest English-language edition is preferred.
- `fxo_id` (string): Filing identifier from esef_search_filings or esef_entity_filings, e.g. "549300P8N0P6KDGTJ206-2022-12-31-ESEF-FI-0", "cmvm-1355933" for a Portuguese filing read from CMVM, "cnmv-20912" for a Spanish…
- `include_dimensioned` (boolean): Set true to also return facts broken down by an XBRL axis — per segment, per equity component, per class of asset. Default false, which returns consolidated group totals only.
- `limit` (number): Facts to return, 1-500. Default 60.
- `year` (number): Calendar year of the reporting period end, e.g. 2023. Used with `entity`. Omit for the most recent filed period.

## Diagnostics

Captured diagnostic sections: Provenance, Dependencies. The full working is on the page: https://verifymcp.io/servers/pipeworx-io-esef-filings/pipeworx-mcp-esef-filings#diagnostics

## Score history

- 2026-11-05: 79
- 2026-11-04: 79
- 2026-11-03: 79
- 2026-11-02: 78
- 2026-11-01: 78
- 2026-10-31: 77
- 2026-10-30: 77
- 2026-10-29: 76

## Common questions

### What is the Esef Filings MCP server?

Esef Filings is an MCP server listed in the public MCP registry as io.github.pipeworx-io/esef-filings. XBRL filings index MCP, wraps the filings.xbrl.org JSON:API index run by XBRL International, plus… This page covers its npm package (@pipeworx/mcp-esef-filings).

### Is the Esef Filings MCP server safe to use?

Esef Filings scores 79 out of 100 on VerifyMCP. We found no known CVEs affecting it as of 5 November 2026. It declares no install or post-install scripts. Its build provenance is signed and verified. That is a record of what we were able to check automatically, not an endorsement. The category breakdown on this page shows every signal behind the number, including the ones we could not confirm.

### What tools does the Esef Filings MCP server expose?

Esef Filings exposes 3 tools: esef_search_filings, esef_entity_filings, esef_filing_facts. Their descriptions and schemas cost roughly 4,421 tokens of context every time the server is loaded.

### Is the Esef Filings MCP server still maintained?

Esef Filings is still listed as active in the MCP registry. We last reached this channel on 5 November 2026. Those dates come from our own scans of the registry and the channel itself, not from anything the publisher announced.

### What licence is the Esef Filings MCP server under?

Esef Filings declares the MIT licence, which is OSI-approved. That covers the source only, and says nothing about the cost of any service it calls.

### What did VerifyMCP test on the Esef Filings MCP server?

VerifyMCP ran 16 checks on Esef Filings, covering Malware scan, Known CVEs, Install scripts, Dependency health and 12 more. Endpoint Security and Transport & Reachability do not apply to an npm package, so they were not tested. The score does not measure everything, and the scoring documentation lists what it leaves out.

## Links

- npm package: https://www.npmjs.com/package/@pipeworx/mcp-esef-filings
- Socket report: https://socket.dev/npm/package/@pipeworx/mcp-esef-filings
- Repository: https://github.com/pipeworx-io/mcp-esef-filings
- Website: https://pipeworx.io/packs/esef-filings
- Changelog RSS feed: https://verifymcp.io/servers/pipeworx-io-esef-filings/pipeworx-mcp-esef-filings.xml
- Changelog JSON feed: https://verifymcp.io/servers/pipeworx-io-esef-filings/pipeworx-mcp-esef-filings/changelog.json
- Trust report (JSON): https://verifymcp.io/servers/pipeworx-io-esef-filings/pipeworx-mcp-esef-filings.json
- HTML version of this page: https://verifymcp.io/servers/pipeworx-io-esef-filings/pipeworx-mcp-esef-filings
