sk-eli-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., "@sk-eli-mcplist consolidated versions of act 18/2018"
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.
sk-eli-mcp
An MCP server for the Slovak Collection of Laws (Zbierka zákonov) via static.slov-lex.sk, the JavaScript-free static mirror of the Slov-lex portal. It fetches Slovak legislation and its consolidated versions, with verifiable citations.
Part of the MateMatic eu-legal-mcp production line - after PL, DE, AT, ES, FI, IE, NL, SE, FR,
LU, DK, CZ, HR and LT. Same citation contract, Slov-lex source. Slovakia implements ELI (Pillar I).
Scope. This MVP lists an act's consolidated versions, returns metadata, and fetches the full text of a version. Acts are addressed by year + number; the portal is path-based, not keyword search. Coverage 1918-present. Language: Slovak. Every response carries a
dataset_note.ELI is national (Pillar I), not data.europa.eu. The static pages carry no machine-readable ELI metadata, so
eli_uriis the canonical Slov-lex URL (slov-lex.sk/pravne-predpisy/SK/ZZ/{year}/{number}), the stable national identifier. Full text is served from thestatic.slov-lex.skmirror (source_url). Every response carries aneli_note.Text is extracted from the official HTML. Slov-lex serves the consolidated text as HTML;
sk_get_textextracts the plain text from the act container.
The tools
Tool | What it does |
| List an act's consolidated versions (effective dates, amending act). |
| Metadata for an act by year + number, plus the current in-force version. |
| Full text of an act version (default: the current in-force version). |
| Declare what this connector covers, when each family was captured, and - explicitly - what it does NOT cover. Every gap carries a fallback. |
Every response carries the contract: eli_uri (the Slov-lex URL, e.g.
https://www.slov-lex.sk/pravne-predpisy/SK/ZZ/2018/18/), human_readable_citation
(e.g. č. 18/2018 Z. z.), and source_url.
Related MCP server: Slov-Lex MCP Server
Install
Run it with no install step (once published to PyPI):
uvx sk-eli-mcpOr from source:
cd sk-eli-mcp
pip install -e .Configure (Claude Code / any MCP client)
{
"mcpServers": {
"sk-eli-mcp": { "command": "sk-eli-mcp" }
}
}Windows 11 with Smart App Control
Smart App Control blocks unsigned executables, which covers uvx.exe, pip.exe
and the sk-eli-mcp.exe launcher that pip writes at install time. The python.exe and
py.exe from the python.org installer are signed by the Python Software
Foundation, so running the module through the interpreter works:
python -m pip install sk-eli-mcp
python -m sk_eli_mcppip.exe is blocked for the same reason, so install with python -m pip, not
pip install. If python is not on PATH, use the Windows launcher: py -3 -m sk_eli_mcp.
{ "mcpServers": { "sk-eli-mcp": { "command": "python", "args": ["-m", "sk_eli_mcp"] } } }Do not turn Smart App Control off to work around this - it cannot be re-enabled without reinstalling Windows.
Environment:
SK_ELI_BASE_URL- defaulthttps://static.slov-lex.skSK_ELI_CACHE_DIR- default~/.matematic/cache/sk-eliSK_ELI_AUDIT_DIR- default~/.matematic/audit
No API key. The Slov-lex static mirror is keyless.
Governance
Public data only - read-only against Slov-lex; no client data leaves the machine.
Audit log - every tool call appends one JSON line to
~/.matematic/audit/sk-eli-mcp.jsonl.Vendor-neutral - talks only to
static.slov-lex.sk; no LLM provider, no telemetry.Verifiable citations - every response is independently checkable via
source_url.
See CONSTITUTION.md and DISCOVERY.md.
Tests
pip install -e ".[dev]"
pytest tests/test_instructions_drift.py tests/test_parse.py -v # offline
pytest tests/test_smoke.py -v # hits live Slov-lexLicence
Apache-2.0. © Matematic Solutions / Wieslaw Mazur.
Available Tools
4 toolssk_coverageARead-onlyIdempotent
Declare what this connector covers, how it is sourced, and what it does NOT cover.
Call this before telling a user that the law "does not contain" something, and whenever a search comes back empty: the absence may be a gap in this connector rather than in the law. Every gap carries a fallback saying where to look instead.
Returns:
Coverage with families, an as-of note, and a non-empty list of known gaps.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| status | No | |
| families | No | |
| as_of_note | Yes | States what the dates mean, and what they do not promise. |
| known_gaps | No | Never empty. An empty list would mean 'not checked', not 'no gaps'. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the annotations, the description adds critical behavioral context: empty search results may indicate a connector gap rather than absence in the law, and every gap includes a fallback for where to look instead. This directly helps an agent interpret results correctly and is valuable, non-obvious behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is well-structured and front-loaded: it states the core purpose first, then gives usage triggers, then summarizes the return value. Every sentence earns its place, with no redundant filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a zero-parameter tool with an output schema, the description is complete. It explains when to call, what behavior to expect around gaps, what the response contains, and how to interpret empty search results. Nothing essential is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters, so there are no parameter semantics to clarify. The schema coverage is complete and the description adds no unnecessary param information, matching the baseline for a no-parameter tool.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: declaring what the connector covers and, crucially, what it does not cover. It differentiates itself from siblings like sk_get_act and sk_get_text by focusing on coverage metadata rather than legal content retrieval.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives explicit when-to-use instructions: call it before claiming the law 'does not contain' something and whenever a search returns empty. It does not explicitly mention when not to use it or compare with sibling tools, but the triggering conditions are unambiguous.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
sk_get_actARead-onlyIdempotent
Fetch Slovak act metadata by year and number.
| Name | Required | Description | Default |
|---|---|---|---|
| year | Yes | e.g. ``2018``. | |
| number | Yes | e.g. ``18``. |
Output Schema
| Name | Required | Description |
|---|---|---|
| year | No | |
| number | No | |
| eli_uri | No | |
| citation | No | |
| eli_note | No | |
| source_url | No | |
| dataset_note | No | |
| version_count | No | |
| current_version_id | No | |
| current_effective_from | No | |
| human_readable_citation | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description's 'Fetch' aligns with annotations (readOnlyHint=true, destructiveHint=false), and it adds no extra behavioral context beyond the purpose. Since annotations already cover the safety profile, the description earns the baseline score for not contradicting them.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single concise sentence that front-loads the verb and resource. There is no wasted wording, making it easy to parse and appropriately sized.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple lookup tool with two parameters, full schema coverage, and an output schema, the description is sufficient. It clearly identifies what the tool does and how to target an act; return details are covered by the output schema.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage for parameters is 100%, with each parameter having example descriptions. The description merely restates 'by year and number' without adding semantic detail beyond what the schema already provides, so it gets the baseline of 3.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb 'Fetch' with a clear resource 'Slovak act metadata' and specifies the lookup keys 'by year and number'. This clearly states what the tool does and distinguishes it from siblings like sk_get_text (text) and sk_get_versions (versions), even though alternatives are not named.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage: when you need metadata for a Slovak act and know the year and number. It does not explicitly mention when not to use it or point to alternatives, so the guidance is implied rather than stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
sk_get_textBRead-onlyIdempotent
Fetch the full text of a Slovak act (a consolidated version).
| Name | Required | Description | Default |
|---|---|---|---|
| year | Yes | e.g. ``2018``. | |
| number | Yes | e.g. ``18``. | |
| version_id | No | optional - a date like ``"20240701"`` or ``"vyhlasene_znenie"`` (as-promulgated). Default: the current in-force version. |
Output Schema
| Name | Required | Description |
|---|---|---|
| year | No | |
| format | No | |
| number | No | |
| content | No | |
| eli_uri | No | |
| citation | No | |
| eli_note | No | |
| byte_size | No | |
| source_url | No | |
| version_id | No | |
| dataset_note | No | |
| human_readable_citation | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, openWorldHint, idempotentHint, and destructiveHint=false, so the safety profile is covered. The description adds the specific 'consolidated version' context, which is useful, but otherwise provides no additional behavioral details such as return format or pagination.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single, concise sentence that is front-loaded and contains no filler. Every word contributes meaning.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple read-only fetch tool with a robust schema and output schema present, the description is adequate. It clearly states the tool's purpose, though it could have explicitly connected to sibling tools for fuller selection context.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, with all three parameters (year, number, version_id) documented. The description's reference to 'full text' and 'consolidated version' indirectly supports the version_id parameter, but the schema already carries the explanatory burden, so the description adds little beyond the baseline.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states the tool fetches the full text of a Slovak act, specifically a consolidated version. This is a clear verb+resource+scope pairing that distinguishes it from likely sibling operations, though it does not explicitly name alternatives.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is given on when to use this tool versus alternatives like sk_get_versions or sk_get_act. The implied use case is present but there are no explicit context, exclusions, or alternative recommendations.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
sk_get_versionsARead-onlyIdempotent
List the consolidated versions of a Slovak act.
| Name | Required | Description | Default |
|---|---|---|---|
| year | Yes | e.g. ``2018``. | |
| number | Yes | e.g. ``18``. |
Output Schema
| Name | Required | Description |
|---|---|---|
| year | Yes | |
| items | No | |
| total | No | |
| number | Yes | |
| eli_uri | No | |
| citation | No | |
| dataset_note | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and non-destructive behavior, and the description's 'List' is consistent. The qualifier 'consolidated versions' adds some scope context, but the description does not reveal behavioral details like ordering, pagination, or empty-result handling. No contradiction with annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence with no redundant wording. Every word contributes meaning, making it highly concise and easy to parse.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple read-only list tool, the description combined with full parameter schema coverage, rich annotations, and an output schema provides sufficient information for correct invocation. The only notable gap is usage guidance relative to siblings, which is already captured under usage guidelines.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema provides 100% coverage for both parameters (year and number) with examples, so the description adds no additional parameter information. Baseline 3 is appropriate since the schema fully documents the parameters.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool lists consolidated versions of a Slovak act, using a specific verb ('List') and a distinct resource ('consolidated versions'). This differentiates it from sibling tools sk_get_act and sk_get_text, which focus on act details or text.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus sk_get_act or sk_get_text. There are no explicit alternatives, exclusions, or contextual conditions, leaving the agent to infer usage from sibling names alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.
1 tool update
v0.3.3- Added
sk_coverage
3 tool updates
v0.2.1- First observed
sk_get_act - First observed
sk_get_text - First observed
sk_get_versions
TDQS
Scored across 4 tools
Each tool has a clearly distinct purpose: listing versions, fetching metadata, retrieving text, and declaring coverage gaps. There is no meaningful overlap or ambiguity between the four tools.
Three tools follow a consistent sk_get_* verb pattern, and all share the sk_ prefix. sk_coverage breaks the pattern by using a noun instead of a verb, making the set slightly less uniform.
Four tools is well-scoped for a focused Slovak legal act retrieval connector. Each tool serves a distinct need without redundancy or unnecessary bloat.
The tool set covers the core lifecycle of accessing Slovak acts: retrieve act metadata, list consolidated versions, fetch full text, and know exactly what the connector does not cover. The explicit coverage tool fills potential gaps rather than leaving agents stranded.
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 Connectors
Resolve, search and verify legal citations against the official sources, with provenance.
Temporal search and comparison for official Luxembourg and reviewed EU law, with provenance.
Search Swiss federal legislation: laws, articles, amendments via the Fedlex SPARQL endpoint.
Official EUR-Lex, UK, US, and gazette search, metadata fetch, and change-only watches.
Related MCP Servers
- AlicenseNot gradedqualityFmaintenanceEnables querying and analyzing Slovak legislation via natural language, including full-text search, provision retrieval, and EU law integration.992Apache 2.0
- FlicenseNot gradedqualityCmaintenanceEnables AI assistants to access and search Slovak legal regulations from Slov-Lex.sk, including retrieving full law texts, paragraphs, and recent legislative updates.9-
- AlicenseAqualityAmaintenanceEnables accessing Finnish legislation from the Finlex open-data API, listing statutes by year and retrieving their full texts with ELI identifiers and Finnish citations.4Apache 2.0
- AlicenseAqualityAmaintenanceProvides access to Danish legislation from Retsinformation.dk, enabling retrieval of act metadata, full text, and recent changes with verifiable citations.4Apache 2.0
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/sk-eli-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server