npm @matematicsolutions/mcp-isapstdioMITupdated 29d ago
Published on npm + MCP Registry (io.github.matematicsolutions/mcp-isap). Run without cloning:
O que dá para fazer com mcp isap?
mcp-isap
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.
Instalação
Adicione mcp isap ao seu cliente. Escolha o que você usa.
claude mcp add mcp-isap -- npx -y @matematicsolutions/mcp-isapcodex mcp add mcp-isap -- npx -y @matematicsolutions/mcp-isapamp mcp add mcp-isap -- npx -y @matematicsolutions/mcp-isap{
"mcpServers": {
"mcp-isap": {
"command": "npx",
"args": [
"-y",
"@matematicsolutions/mcp-isap"
]
}
}
}Add to `claude_desktop_config.json`, then restart Claude Desktop.
{
"mcpServers": {
"mcp-isap": {
"command": "npx",
"args": [
"-y",
"@matematicsolutions/mcp-isap"
]
}
}
}Add to `~/.cursor/mcp.json`, or `.cursor/mcp.json` for a single project.
code --add-mcp '{"name":"mcp-isap","command":"npx","args":["-y","@matematicsolutions/mcp-isap"]}'Or add the block manually to `.vscode/mcp.json` under `servers`.
{
"mcpServers": {
"mcp-isap": {
"command": "npx",
"args": [
"-y",
"@matematicsolutions/mcp-isap"
]
}
}
}Add to `~/.codeium/windsurf/mcp_config.json`.
{
"mcpServers": {
"mcp-isap": {
"command": "npx",
"args": [
"-y",
"@matematicsolutions/mcp-isap"
]
}
}
}Add to `cline_mcp_settings.json` via the MCP Servers panel.
{
"mcpServers": {
"mcp-isap": {
"command": "npx",
"args": [
"-y",
"@matematicsolutions/mcp-isap"
]
}
}
}Add to `~/.gemini/settings.json`.
{
"mcpServers": {
"mcp-isap": {
"type": "local",
"command": "npx",
"args": [
"-y",
"@matematicsolutions/mcp-isap"
],
"tools": [
"*"
]
}
}
}Add to `~/.copilot/mcp-config.json`, or run `/mcp add` inside the CLI.
{
"context_servers": {
"mcp-isap": {
"command": {
"path": "npx",
"args": [
"-y",
"@matematicsolutions/mcp-isap"
]
}
}
}
}Add to your Zed `settings.json`.
npx -y @matematicsolutions/mcp-isapRun `goose configure`, choose **Add Extension → Command-line Extension**, and paste this command.
Pontuação
39 / 100
Incompleta
- Documentação21/25
- Manutenção25/25
- Confiança16/20
- Capacidade0/15
- Instalação12/15
- Documents what it does and how to connect
- Has a resolvable package or endpoint
- Exposes at least one tool, prompt or resource
- README has substantive content
- Includes a code example
- Documents its configuration
- Mentions credentials or security posture
- Last commit 22 days ago
- Has a release history
- Repository is not archived
- Licensed MIT
- Namespace verified in the official MCP registry
- Claimed by its owner
- Published under an organisation
- 0 tool(s) documented
- Provides prompt templates
- Provides resources
- 12 documented install method(s)
- Published to a package registry
- Offers a hosted endpoint — no local install
Histórico de versões
| Versões | Publicada |
|---|---|
| 1.3.0Mais recente | 31 de jul. de 2026 |
| 1.2.0 | 28 de jul. de 2026 |
| 1.1.1 | 24 de jun. de 2026 |