Isap
FreeNot checkedMCP server for Polish legislation (ISAP / Sejm) — search acts (Dz.U., M.P.) and fetch full texts with ELI identifiers and verifiable citations.
About
MCP server for Polish legislation (ISAP / Sejm) — search acts (Dz.U., M.P.) and fetch full texts with ELI identifiers and verifiable citations.
README
Installation (one command)
Published on npm + MCP Registry (io.github.matematicsolutions/mcp-isap). Run without cloning:
npx -y @matematicsolutions/mcp-isap
MCP client configuration (stdio):
{ "mcpServers": { "mcp-isap": { "command": "npx", "args": ["-y", "@matematicsolutions/mcp-isap"] } } }
(Building from source - below.)
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) orMP(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. IteratepagewhilestructuredContent.pagination.has_moreis true, or passsearch_text(e.g."Art. 118.") to get the fragment around the first hit in one call.structuredContent.text_versionsays 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 inconsolidated_text_eli. Acts published only as PDF return thetext_unavailable_use_pdferror 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
npm install
npm run build
node dist/index.js
Wiring into Patron
In patron/backend/mcp-servers.json:
{
"name": "isap",
"transport": "stdio",
"command": "node",
"args": ["C:/Users/<YOUR-USER>/mcp-isap/dist/index.js"],
"enabled": true
}
Smoke test
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 the MateMatic legal stack
This server is one of five MCP connectors covering Polish jurisdiction + EU law, used by Patron (AGPL-3.0) and any other MCP-aware legal AI agent.
- mcp-isap (this repo) - Polish legislation (Dz.U. + M.P. via Sejm ELI)
- mcp-saos - common courts, SN, TK, KIO
- mcp-nsa - NSA + 16 WSA administrative courts
- mcp-krs - Polish company registry (KRS)
- mcp-eu-sparql - EU law + CJEU (EUR-Lex)
All five MCP servers share the same 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.
Installing Isap
This server has no published package — it is built from source. Open the repository and follow its README.
▸ github.com/matematicsolutions/mcp-isapFAQ
Is Isap MCP free?
Yes, Isap MCP is free — one-click install via Unyly at no cost.
Does Isap need an API key?
No, Isap runs without API keys or environment variables.
Is Isap hosted or self-hosted?
A hosted option is available: Unyly runs the server in the cloud, no local setup required.
How do I install Isap in Claude Desktop, Claude Code or Cursor?
Open Isap on unyly.org, pick your client tab (Claude Desktop, Claude Code, Cursor) and press Install — the config is generated automatically, no JSON editing.
Related MCPs
GitHub
PRs, issues, code search, CI status
by GitHubFilesystem
Secure file operations with configurable access controls.
Memory
Knowledge graph-based persistent memory system.
Template MCP Server
A CLI tool to create a new Model Context Protocol server project with TypeScript support, dual transport options, and an extensible structure
by mcpdotdirectAmap Maps Mcp Server
MCP server for using the AMap Maps API
by duxiaohuiSupabase
Database, auth and storage
by SupabaseEverything
Reference / test server with prompts, resources, and tools.
Git
Tools to read, search, and manipulate Git repositories.
Sequential Thinking
Dynamic and reflective problem-solving through thought sequences.
Time
Time and timezone conversion capabilities.
Compare Isap with
Not sure what to pick?
Find your stack in 60 seconds
Author?
Embed badge for your README
Browse similar
All development MCPs
