Mcp Isap

io.github.matematicsolutions由 GitHub 账号 matematicsolutions 发布v1.4.2更新于 Oct 24, 2026

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

概览

AI 生成的概览

让助手通过 Sejm ELI API 检索波兰立法(Dziennik Ustaw 与 Monitor Polski)并读取法案文本。

可以做什么
通过官方 Sejm ELI REST API 提供三个工具:search_acts 可按标题片段、年份、发布机构(DU 或 MP)、法案类型和生效状态筛选法案;get_act 按 ELI(如 DU/2018/1000)返回法案详情,包括标题、类型、状态、生效日期、关键词以及 HTML/PDF 文本和 ISAP 页面链接;get_act_text 返回法案纯文本,每页 5000 字符分页,并可用 search_text 参数直接定位片段。响应包含结构化引用元数据(标题、ELI、显示地址、发布机构、年份、状态)。
适用场景
适合助手需要查询波兰法律、法规或官方公告,或需要带引用地引用条文时使用。它只覆盖立法,因此是对判例法或欧盟法来源的补充,而非替代。
运行要求
以 stdio 方式在本地运行;需要 Node.js 18 或更高版本,可通过 npx 从 npm 包启动。未声明账户、API 密钥、环境变量或请求头。需要访问 Sejm ELI API 的网络连接。
安装前请注意
对公共 API 的只读查询,不涉及凭据、付款或写入操作。注意该 API 对基础法案提供的是原始颁布文本,返回内容可能不是当前生效的法律;仅以 PDF 发布的法案会返回 text_unavailable_use_pdf 错误而非文本。

安装

在 SourceWeft 中

  1. 打开 控制台中的 Mcp Isap,将其添加到工作区。
  2. 为需要使用其工具的对话启用该服务。

Desktop only,通过 STDIO。 STDIO 服务会启动本地进程,因此需要 SourceWeft 桌面宿主。

其他 MCP 客户端

参照 仓库 中的启动说明。

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.

来源:README.md,提交 94f3de7

工具

0
SourceWeft 尚未在沙箱中启动过该软件包,因此其工具未知。

版本历史

2
  1. v1.4.2最新Oct 13, 2026
  2. v1.3.0Sep 16, 2026

评分

已满足适用检查项的 50%

该评分衡量此收录条目的完整程度,依据注册中心条目、端点与公开来源计算得出。它不是对服务器本身的评价,也不表示服务器安全或当前可用:可连通性是带日期的检查结果,评分也不包含安装量或用户评价。

  • 近 30 天内可连通25 分

    请保持端点能够响应 MCP 握手;SourceWeft 每 30 天探测一次。

  • 已声明认证方式10 分

    请在注册中心条目中声明凭据请求头,或保持端点能够响应探测,以便判定其认证方式。

  • 已列出工具15 分

    请让服务器在无凭据时响应 tools/list,或发布可在沙箱中无凭据启动的软件包。

  • 描述必需15 分
  • 图标10 分
  • 文档15 分
  • 许可证10 分