mcpField
M
mcp-eureka

mcp-eureka

Local
github.com/matematicsolutionsLegal & Government4Updated 5w ago

About mcp-eureka

mcp-eureka is an MCP server for legal researchers querying the Polish Ministry of Finance’s EUREKA tax-practice collection. It supports filtered searches and returns citations with signatures, URLs, and issue dates.

Key features

  1. 01Search Polish tax-practice documents
  2. 02Look up documents by signature
  3. 03Filter by category and date
  4. 04Retrieve document content and metadata
  5. 05Return verifiable citations

Use cases

  1. 01Find a specific tax interpretation
  2. 02Verify a document by signature
  3. 03Filter materials by category or date

MCP support

The MCP server provides clients with search, signature lookup, category listing, and document retrieval tools. Responses include citation details such as title, URL, signature, and issue date.

Configuration

Local server config is the same for every client. Copy it into your client’s MCP config file.

mcp.json · Universal config
{
"mcpServers": {
"matematicsolutions-mcp-eureka": {
"command": "npx",
"args": [
"-y",
"@matematicsolutions/mcp-eureka"
]
}
}
}
Run commandnpx -y @matematicsolutions/mcp-eureka

Local servers need a runtime on your machine (e.g. Node.js 18+). Config file locations differ by client; see your client’s docs.

Packages
npm@matematicsolutions/mcp-eureka0.2.0

Tools

4

Saved tool list · updated 2w ago

ParameterTypeRequiredDescription
pagenumberNoPage number (starting from 0). For pagination.
querystringNoSearch phrase, e.g. 'fotowoltaika' or 'ulga badawczo-rozwojowa'.
date_tostringNoIssue date to (YYYY-MM-DD).
date_fromstringNoIssue date from (YYYY-MM-DD).
page_sizenumberNoNumber of results per page (1-50). Default: 10.
signaturestringNoDocument reference number, full ('0112-KDIL3.4012.367.2026.2.AK') or prefix ('0112-KDIL3').
full_phrasebooleanNotrue = the phrase must appear EXACTLY (often returns 0 matches); false (default) = search words independently.
category_idsarrayNoCategory IDs from the dictionary (list_categories). E.g. [1] = individual interpretation, [3] = general interpretation, [11] = tax explanation.

Details

From the project README

mcp-eureka

An MCP (Model Context Protocol) server for the EUREKA system of the Ministerstwo Finansow / MF (Ministry of Finance) (eureka.mf.gov.pl) - 550,000+ documents of Polish tax practice, including 517,000+ individual interpretacje podatkowe (tax interpretations) of the Krajowa Informacja Skarbowa / KIS (National Revenue Information), general interpretations, tax explanations, and binding rate (WIS) and excise (WIA) information.

The largest single corpus of tax practice in Poland, available to Claude / Cursor / VS Code MCP agents with verifiable citations (signature + URL + date).

Status: v0.1.0 | License: MIT | Maintainer: MateMatic

Tax interpretations are not a source of law - they are the practice of authorities (art. 14a-14s of the Tax Ordinance). Legal protection applies to the applicant of a given individual interpretation.

Data source

The public JSON API of the EUREKA portal (Angular SPA backend, no key required), verified live on 2026-07-08:

  • POST /api/public/v1/wyszukiwarka/informacje/?size=N&page=N&sort=DT_WYD,desc - search (filters: SYG, KATEGORIA_INFORMACJI as an array of ids, DT_WYD_start/DT_WYD_end; searchQuery in the body). The trailing slash before ? is mandatory - without it the backend returns HTTP 500.
  • GET /api/public/v1/informacje/{id} - full document (metadata + HTML content).
  • GET /api/public/v1/pozycje-slownika/wyszukiwarka?kodSlownika=KATEGORIA_INFORMACJI - category dictionary (28 entries).

MCP tools

  • search(query?, full_phrase?, signature?, category_ids?, date_from?, date_to?, page?, page_size?) - search with filters; sorted by issue date descending.
  • get_interpretation(id) - full document by ID_INFORMACJI (thesis + first 3000 characters of content).
  • search_by_signature(signature) - shortcut: by signature, full (0112-KDIL3.4012.367.2026.2.AK) or prefix (0112-KDIL3).
  • list_categories() - category dictionary (id -> name) for category_ids.

Every response includes structuredContent.citations (title, url, signature, issue_date) - the contract consumed by Patron and any MCP agent.

Quickstart

npm install
npm run build
npm start                # stdio transport

npm run drift            # consistency INSTRUCTIONS <-> TOOLS <-> ErrorCode
npm run test:parse       # offline - fixtures from real API responses
npm run smoke            # LIVE - eureka.mf.gov.pl (throttled 2 req/s)

MCP client configuration (mcp-servers.json):

{
  "mcpServers": {
    "eureka": {
      "command": "node",
      "args": ["<path>/mcp-eureka/dist/index.js"]
    }
  }
}

MateMatic Polish-law connectors

mcp-saos (common courts/SN/TK/KIO) · mcp-nsa (NSA + 16 WSA) · mcp-eureka (this one) · mcp-isap (Dz.U. + M.P.) · mcp-krs (KRS) · kio-orzeczenia-mcp (KIO)

Fleet convention: one connector = one source (single-source). Every call returns a citable source, zero content modification, stateless.

Disclaimer

The data comes from the public EUREKA system of the Ministry of Finance. The connector does not modify content, throttles requests (max 2 req/s), and identifies itself with a User-Agent carrying the repo address. Interpreting the law in a specific case requires your own individual interpretation or the opinion of a tax advisor.

License

MIT - see LICENSE.

Citation: MateMatic Solutions (2026), mcp-eureka - MCP server for Polish tax interpretations (EUREKA/KIS), https://github.com/matematicsolutions/mcp-eureka, MIT.

Comments

Markdown supported

New to MCP?

From what the protocol is to installing your first server, these answers cover most first questions.

An open protocol that defines how AI applications connect to external tools and data in a uniform way. Clients talk to the model; MCP servers provide tools, resources and prompt templates. They exchange standard messages, so one server can be reused by many clients.