Mcp Isap

io.github.matematicsolutionsPublished by GitHub account matematicsolutionsv1.4.2Updated Oct 24, 2026

MCP server for Polish legislation (Dziennik Ustaw / Monitor Polski) via Sejm ELI API.

Overview

AI-generated overview

Lets an assistant search Polish legislation (Dziennik Ustaw and Monitor Polski) and read act texts via the Sejm ELI API.

What you can do
Provides three tools over the official Sejm ELI REST API: search_acts filters acts by title fragment, year, publisher (DU or MP), act type and in-force status; get_act returns details for an act identified by its ELI, such as DU/2018/1000, including title, type, status, entry into force, keywords and links to HTML or PDF text; get_act_text returns the plain text of an act, paginated at 5000 characters per page, with an optional search_text argument to jump to a fragment. Responses include structured citation metadata (title, ELI, display address, publisher, year, status).
When to use it
Useful when an assistant needs to look up Polish statutes, regulations or official announcements, or to quote provisions with citations. It covers legislation only, so it complements rather than replaces case-law or EU-law sources.
Requirements
Runs locally over stdio; requires Node.js 18 or newer and can be started with npx from the npm package. No accounts, API keys, environment variables or headers are declared. Network access to the Sejm ELI API is needed.
Before you install
Read-only lookups against a public API; no credentials, payments or write actions are involved. Note that the API serves the original wording for base acts, so the text returned may not be the law currently in force, and acts published only as PDF return a text_unavailable_use_pdf error instead of text.

Installation

In SourceWeft

  1. Open Mcp Isap in the dashboard and add it to a workspace.
  2. Enable the server for the chats that should use its tools.

Desktop only via STDIO. STDIO servers start a local process, so they need the SourceWeft desktop host.

Other MCP clients

Follow the launch instructions in the repository.

README

mcp-isap

Installation (one command)

Published on npm + MCP Registry (io.github.matematicsolutions/mcp-isap). Run without cloning:

bash
npx -y @matematicsolutions/mcp-isap

MCP client configuration (stdio):

json
{ "mcpServers": { "mcp-isap": { "command": "npx", "args": ["-y", "@matematicsolutions/mcp-isap"] } } }

(Building from source - below.)

[MCP] [License: MIT] [Node]

MCP server for Polish legislation - Dziennik Ustaw (Journal of Laws, DU) + Monitor Polski (MP) via the official Sejm ELI API (api.sejm.gov.pl/eli).

Why

mcp-saos (general courts) + mcp-nsa (administrative) + mcp-eu-sparql (EU) cover the case-law side. mcp-isap adds legislation - statutes, regulations, official announcements, international agreements. This closes the triad:

STATUTE + CASE LAW + EU LAW   ↓         ↓          ↓  ISAP    SAOS+NSA   EUR-Lex   ↓         ↓          ↓        law firm asks about GDPR        → 4 connectors in parallel        → 4 citation sections in the panel

Coverage: 96,000+ acts from 1918 to today. Full ELI support (European Legislation Identifier).

Tools

  • search_acts(title?, year?, publisher?, type?, in_force?, limit?) - search by title fragment / year / publisher / act type / in-force status. publisher: DU (Dziennik Ustaw) or MP (Monitor Polski).
  • get_act(eli) - act details by ELI (DU/2018/1000). Returns title, type, status, entry into force, keywords, links to HTML/PDF text and the ISAP page.
  • get_act_text(eli, page?, search_text?) - the act's plain text (no HTML tags), paginated at 5000 characters per page. Iterate page while structuredContent.pagination.has_more is true, or pass search_text (e.g. "Art. 118.") to get the fragment around the first hit in one call. structuredContent.text_version says whether this is a consolidated text or the wording as promulgated - Sejm ELI serves the original wording for base acts, so for the law in force fetch the newest consolidated-text announcement listed in consolidated_text_eli. Acts published only as PDF return the text_unavailable_use_pdf error with links, never prose standing in for the provision.

Every response includes structuredContent.citations with fields: title, url (ISAP UI), eli, display_address (Dz.U. 2018 poz. 1000), publisher, year, document_type, status, in_force, promulgation.

Patron reads this field automatically and renders it in the UI panel as the section "Polish legal acts (Dz.U. / M.P. - Sejm ELI)".

Stack

  • Node 18+ (built-in fetch)
  • @modelcontextprotocol/sdk
  • Stdio transport
  • 500 ms throttle between requests (2 req/s)
  • No scraping - pure REST JSON API

Build + run

bash
npm installnpm run buildnode dist/index.js

Wiring into Patron

In patron/backend/mcp-servers.json:

json
{  "name": "isap",  "transport": "stdio",  "command": "node",  "args": ["C:/Users/<YOUR-USER>/mcp-isap/dist/index.js"],  "enabled": true}

Smoke test

bash
echo '{"jsonrpc":"2.0","id":1,"method":"initialize","params":{"protocolVersion":"2024-11-05","capabilities":{},"clientInfo":{"name":"s","version":"0"}}}{"jsonrpc":"2.0","method":"notifications/initialized"}{"jsonrpc":"2.0","id":2,"method":"tools/call","params":{"name":"get_act","arguments":{"eli":"DU/2018/1000"}}}' \  | node dist/index.js

Should return the Personal Data Protection Act of 10 May 2018, status IN_FORCE, a link to ISAP and a structured citation.

Lineage

API contract derived from legal-data-hunter/sources/PL/DziennikUrzedowy (Python + REST, MIT). TS implementation from scratch - no source code imported.

License

MIT.

Part of MateMatic

This connector queries its source live. It is one of the Polish and EU source connectors bundled in PATRON and works with any MCP client.

mcp-saos, mcp-nsa, mcp-isap, mcp-krs and mcp-eu-sparql share one structuredContent.citations contract: each tool returns an array of {title, url, snippet?, ...metadata} that legal agents can render directly in their citation panel.

See matematicsolutions/.github for the full org profile.

Source: README.md at commit 94f3de7

Tools

0
SourceWeft has not started this package in its sandbox yet, so its tools are not known.

Version history

2
  1. v1.4.2LatestOct 13, 2026
  2. v1.3.0Sep 16, 2026

Score

50% of the applicable checks met

How complete this listing is, computed from the registry entry, the endpoint and public sources. Not a rating of the server and not a statement that it is safe or working today: reachability is a dated check, and no installs or reviews go into the score.

  • Reached in the last 30 days25 pts

    Keep the endpoint answering the MCP handshake; SourceWeft probes it every 30 days.

  • Auth declared10 pts

    Declare the credential headers in the registry entry, or keep the endpoint answering the probe so its auth can be classified.

  • Tools listed15 pts

    Answer tools/list without a credential, or ship a package that starts in a sandbox without one.

  • DescriptionRequired15 pts
  • Logo10 pts
  • Documentation15 pts
  • License10 pts