prawo-pl-mcp
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@prawo-pl-mcpFind NSA rulings on environmental permits from 2023"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
prawo-pl-mcp
One MCP server for Polish legal data.
Ten independent connectors - case law, legislation, the company register, tax rulings, public procurement, data-protection decisions, plus EU extras - behind four tools. Each connector stays a separate package with its own repository; this server spawns them on demand and translates between their conventions.
"Prawo" is Polish for "law"; the name follows yargi-mcp's move of naming a country server in its own language.
Why an aggregator
The connectors cover Polish legal data well, but as separate MCP servers, one per database - ten installs and ten config entries before the first question. yargi-mcp showed the fix for Turkish law: 16 institutions, one server. prawo-pl-mcp does the same for Poland:
Four tools instead of 42.
pl_list_sources,pl_search,pl_get_document,pl_call- fewer tool schemas means less context spent before the LLM starts working.One convention. The connectors grew organically:
dateFromhere,date_fromthere, pages counted from 0 or from 1 depending on the repo. Herepageis always 1-based and dates are alwaysdate_from/date_to(YYYY-MM-DD); the translation happens inside.Nothing preinstalled. Connectors run as subprocesses via
npx -y/uvx, downloaded on the first call to a given source and kept alive afterwards. A source that cannot start reports a readable error while the rest keep working.Paginated documents. Full judgment and act texts are chunked at ~5000 characters per page (yargi-mcp's pattern), so a 200-page ruling does not flood the context window.
Related MCP server: mcp-nsa
Coverage
Source id | What | Institution / database | Connector | Runtime |
| Case law: common courts, Supreme Court, Constitutional Tribunal + citator | npx | ||
| Case law: administrative courts (NSA + 16 WSA) | npx | ||
| Legislation: Dziennik Ustaw + Monitor Polski, 96k+ acts | npx | ||
| Company register: extracts, history, board composition | npx | ||
| Tax rulings: 550k+ individual interpretations | npx | ||
| Public procurement: National Appeal Chamber rulings | uvx | ||
| GDPR enforcement: Polish DPA decisions, fines, stats | uvx | ||
| EU law: EUR-Lex by CELEX, CJEU by ECLI, GDPRhub | npx | ||
| 14 EU regulations offline (GDPR, AI Act, DORA, NIS2...) | Local SQLite corpus | npx | |
| Law-as-git: 32 jurisdictions, versioned by commit | uvx |
Polish sources are tagged group: pl, EU extras group: eu - filter with
pl_list_sources(group="pl").
Tools
Tool | What it does |
| Catalog of sources (no subprocess spawned). With |
| Search any source with normalized parameters; source-specific filters via |
| Full document by identifier (judgment id, ELI, KRS number, signature...), paginated. |
| Any native tool of any connector: citator, DPA statistics, board composition, regulation comparison... |
The typical flow an LLM follows (spelled out in the server's instructions):
pl_list_sources → pl_search → pl_get_document, with pl_call for the
specialized tools each connector brings.
Install
Requires Python ≥ 3.11 plus the runtimes of the sources you use: Node.js ≥ 18
for npx sources, uv for uvx sources. If a
runtime is missing, its sources report source_unavailable and the rest work.
Claude Code
claude mcp add pl-legal -- uvx prawo-pl-mcpClaude Desktop / any MCP client (stdio)
{
"mcpServers": {
"pl-legal": {
"command": "uvx",
"args": ["prawo-pl-mcp"]
}
}
}Remote (Streamable HTTP)
uvicorn prawo_pl_mcp.asgi:app --host 0.0.0.0 --port 8000Open by default (public, read-only data). Set PRAWO_PL_MCP_API_KEY to require
X-API-Key: <key> or Authorization: Bearer <key> on every request.
Configuration
Env | Default | Meaning |
| - | Override the spawn command for a source, e.g. |
|
| Seconds allowed for a connector's first start (includes package download). |
|
| Seconds per tool call after startup. |
|
| Where the JSONL audit log goes. |
| - | ASGI mode only: require this API key (dual-channel). |
Architecture
The aggregator is a thin proxy (ADR 0001). Connectors are not imported, vendored or forked; the aggregator speaks MCP to them over stdio the same way any client would. The whole layer is a source registry (one dataclass entry per connector), a lazy subprocess pool, a parameter translator and a paginator. Adding a source means adding a registry entry.
LLM client ──MCP──▶ prawo-pl-mcp ──MCP/stdio──▶ npx @matematicsolutions/mcp-saos
│ ──MCP/stdio──▶ uvx kio-orzeczenia-mcp
│ ──MCP/stdio──▶ ... (spawned on first use)
└─ registry + param mapping + 5000-char paginationEvery call lands in a JSONL audit log (timestamp, tool, source, parameter hash, latency - never document content).
Known issues
The kio connector (public procurement) currently returns zero results for
every query - the upstream site changed and its scraper needs a fix. Tracked in
kio-orzeczenia-mcp;
the aggregator passes through whatever that connector returns.
Development
git clone https://github.com/matematicsolutions/prawo-pl-mcp && cd prawo-pl-mcp
uv sync --extra dev
uv run pytest # offline tests: registry, dispatch mapping, pagination, drift
uv run prawo-pl-mcp # stdio serverLicense
Apache-2.0. Individual connectors carry their own licenses (MIT or Apache-2.0), their own rate limits and their own terms toward upstream databases - the aggregator adds no caching and no transformation beyond pagination, so each connector's constraints apply unchanged.
This server cannot be installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Servers
- AlicenseAqualityBmaintenanceMCP server that provides access to Polish individual tax interpretations (KIS) via the official EUREKA API, enabling search and retrieval of rulings with signatures, theses, and full text.Last updated42MIT
- AlicenseAqualityAmaintenanceMCP server for Polish administrative case-law (NSA + regional administrative courts, CBOSA) with ECLI and verifiable citations.Last updated3231MIT
- AlicenseAqualityAmaintenanceMCP server for Polish case-law (SAOS) — Supreme Court, Constitutional Tribunal, common courts and KIO — with ECLI and verifiable citations.Last updated32271MIT
- AlicenseAqualityAmaintenanceMCP server for Polish legislation (ISAP / Sejm) — search acts (Dz.U., M.P.) and fetch full texts with ELI identifiers and verifiable citations.Last updated353MIT
Related MCP Connectors
Polish company registry: 4.4M firms, KRS/REGON data, VAT white list checks, financial statements
Federal court records and PACER case data. 4 MCP tools for legal research.
Connect AI to millions of laws and court cases with the Lawstronaut MCP.
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/matematicsolutions/prawo-pl-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server