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 分