Icelandic Law MCP
The Icelandic Law MCP Server is an AI-native legal research platform covering 1,709 Icelandic statutes and 19,026 provisions, accessible from AI clients like Claude or any MCP-compatible interface. Here's what you can do:
Search Legislation (
search_legislation): Full-text FTS5 search with BM25 ranking across all provisions; supports boolean operators, phrase search, prefix matching, status filters, and historical date queries.Retrieve Provisions (
get_provision): Fetch exact statute text by law number and article/section (e.g., law 90/2018, article 14), with optional historical date support.Validate Citations (
validate_citation): Check that citations refer to existing provisions and flag repealed or amended statutes — preventing hallucinations.Format Citations (
format_citation): Format citations per Icelandic conventions in full, short, or pinpoint styles.Check Currency (
check_currency): Verify whether a statute or provision is in force, amended, repealed, or not yet in force, including historical date evaluation.Build Legal Stance (
build_legal_stance): Aggregate citations from statutes, case law, and preparatory works simultaneously for comprehensive legal research on a topic.Search Case Law (
search_case_law): Search Icelandic Supreme Court (Hæstiréttur) and Court of Appeals (Landsréttur) decisions, filterable by court and date range.Get Preparatory Works (
get_preparatory_works): Retrieve parliamentary bills, committee reports, and debate records to understand legislative intent.EU/EEA Integration: Find EU/EEA directives underpinning Icelandic statutes, identify Icelandic implementations of EU/EEA acts, and validate compliance (
get_eu_basis,get_icelandic_implementations,validate_eu_compliance).Check Data Freshness (
check_data_freshness): Verify corpus currency with per-source last-verified dates and staleness indicators against a 90-day threshold.Server Info & Sources (
about,list_sources): View dataset statistics, provenance, update frequency, and license information.
Click on "Deploy 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., "@Icelandic Law MCPEr Almenn hegningarlög enn í gildi?"
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.
Icelandic Law MCP Server
The Icelandic law corpus is now served through the Ansvar Gateway. Connect your AI assistant (Claude, Copilot, Cursor, or any MCP client) to
https://gateway.ansvar.eu/mcp— one OAuth connection, free tier available, covering this corpus plus EU regulations, national law across 28 audited jurisdictions (Europe + the US), and CVE/security intelligence, every result with a verbatim source citation. Start at https://ansvar.eu/docs/quickstart
Connect
Claude Code (one line):
claude mcp add ansvar --transport http https://gateway.ansvar.eu/mcpClaude Desktop / Cursor — add to claude_desktop_config.json (or mcp.json):
{
"mcpServers": {
"ansvar": {
"type": "url",
"url": "https://gateway.ansvar.eu/mcp"
}
}
}Claude.ai — Settings → Connectors → Add custom connector → paste https://gateway.ansvar.eu/mcp
First request opens an OAuth signup flow (setup details: ansvar.eu/docs/quickstart). After signup, your client is bound to your account; tier (free / premium / team / company) determines fan-out, quota, and which downstream MCPs are reachable.
Self-host this MCP
You can also clone this repo and build the corpus yourself. The schema, fetcher, and tool implementations all live here. What is not in the repo is the pre-built database — TDM and standards-licensing constraints on the upstream sources mean we host the corpus on Ansvar infrastructure rather than redistribute it as a public artifact.
Build your own: run this repo's ingestion script (entry-point varies per
repo — typically scripts/ingest.sh, npm run ingest, or make ingest;
check the repo root).
The Lagasafn alternative for the AI age.
Query 1,709 Icelandic statutes -- from Persónuverndarlög and Almenn hegningarlög to Lyfjalög, Stjórnarskrá, and more -- directly from Claude, Cursor, or any MCP-compatible client.
If you're building legal tech, compliance tools, or doing Icelandic legal research, this is your verified reference database.
Built by Ansvar Systems -- Stockholm, Sweden
Related MCP server: German Law MCP Server
Why This Exists
Icelandic legal research is scattered across Althingi, Lagasafn (the official legal gazette), and EUR-Lex. Whether you're:
A lawyer validating citations in a brief or contract
A compliance officer checking if a statute is still in force
A legal tech developer building tools on Icelandic law
A researcher tracing legislative provisions across 1,709 statutes
...you shouldn't need dozens of browser tabs and manual cross-referencing. Ask Claude. Get the exact provision. With context.
This MCP server makes Icelandic law searchable, cross-referenceable, and AI-readable.
Example Queries
Once connected, just ask naturally:
"Leita að 'persónuvernd' -- hvaða skyldur setur lög nr. 90/2018?"
"Er Almenn hegningarlög enn í gildi?"
"Finna ákvæði um lyfjamál í Lyfjalögum"
"Hvaða reglur ESB eru innleiddar í Stjórnarskrá Íslands?"
"Hvaða íslensk lög innleiða GDPR?"
"Staðfesta tilvísun: lög nr. 90/2018, 6. gr."
"Búa til lagalega afstöðu varðandi gagnavernd"
"Uppfylla kröfur NIS2 tilskipunarinnar í íslenskum rétti?"
What's Included
Category | Count | Details |
Statutes | 1,709 statutes | Comprehensive Icelandic legislation from Lagasafn |
Provisions | 19,026 sections | Full-text searchable with FTS5 |
EU Cross-References | Included | EEA-incorporated directives and regulations linked |
Database Size | 68 MB | Optimized SQLite, portable |
Daily Updates | Automated | Freshness checks against Althingi/Lagasafn |
Verified data only -- every citation is validated against official sources (Althingi, lagasafn.is). Zero LLM-generated content.
See It In Action
Why This Works
Verbatim Source Text (No LLM Processing):
All statute text is ingested from Althingi/Lagasafn official sources
Provisions are returned unchanged from SQLite FTS5 database rows
Zero LLM summarization or paraphrasing -- the database contains statute text, not AI interpretations
Smart Context Management:
Search returns ranked provisions with BM25 scoring (safe for context)
Provision retrieval gives exact text by statute number + article/section
Cross-references help navigate without loading everything at once
Technical Architecture:
Althingi/Lagasafn → Parse → SQLite → FTS5 snippet() → MCP response
↑ ↑
Provision parser Verbatim database queryTraditional Research vs. This MCP
Traditional Approach | This MCP Server |
Search Lagasafn by statute number | Search by plain Icelandic: "persónuvernd samþykki" |
Navigate multi-chapter statutes manually | Get the exact provision with context |
Manual cross-referencing between laws |
|
"Is this statute still in force?" → check manually |
|
Find EEA/EU basis → dig through EUR-Lex |
|
Check multiple sites for updates | Daily automated freshness checks |
No API, no integration | MCP protocol → AI-native |
Traditional: Search Lagasafn → Download PDF → Ctrl+F → Cross-reference → Check EUR-Lex for EEA basis → Repeat
This MCP: "Hvaða ESB-reglur eru grundvöllur laga nr. 90/2018 um persónuvernd?" → Done.
Available Tools (13)
Core Legal Research Tools (8)
Tool | Description |
| FTS5 full-text search across 19,026 provisions with BM25 ranking |
| Retrieve specific provision by statute number + article/section |
| Validate citation against database -- zero-hallucination check |
| Aggregate citations from multiple statutes for a legal topic |
| Format citations per Icelandic conventions (full/short/pinpoint) |
| Check if statute is in force, amended, or repealed |
| List all available statutes with metadata and data provenance |
| Server info, capabilities, dataset statistics, and coverage summary |
EU/EEA Law Integration Tools (5)
Tool | Description |
| Get EU/EEA directives and regulations that underpin an Icelandic statute |
| Find Icelandic laws implementing a specific EU/EEA act |
| Search EU documents with Icelandic implementation counts |
| Get EU/EEA law references for a specific provision |
| Check implementation status of Icelandic statutes against EEA obligations |
EEA Law Integration
Iceland is an EEA member state but not an EU member. Iceland implements EU law via the EEA Agreement, including GDPR (as Regulation (EU) 2016/679 incorporated into EEA Annex XI), NIS2, and most of the EU single market acquis. This creates a close but distinct relationship with EU law.
Key areas of EEA-Icelandic law integration:
GDPR (2016/679) -- incorporated into EEA Agreement; implemented via lög nr. 90/2018 um persónuvernd og vinnslu persónuupplýsinga
NIS2 Directive (2022/2555) -- incorporated into EEA and implemented in Icelandic cybersecurity legislation
eIDAS Regulation (910/2014) -- incorporated into EEA; supplemented by national e-signature provisions
Financial Services Directives -- MiFID II, Solvency II, and related acts incorporated via EEA Agreement Annex IX
Product Safety and Market Surveillance -- EEA-incorporated regulations apply directly
Note: Iceland, Liechtenstein, and Norway participate in the EU single market via the EEA Agreement. EU acts must be formally incorporated into the EEA Agreement before applying to Iceland. The EU tools in this server reflect EEA-incorporated acts and their Icelandic implementations.
Metric | Value |
EEA Member | Since 1994 |
Legal System | Civil law (Nordic tradition) |
Official Legal Gazette | Lagasafn (lagasafn.is) |
Parliament | Althingi (althingi.is) |
EUR-Lex Integration | Automated metadata fetching (EEA-incorporated acts) |
See EU_INTEGRATION_GUIDE.md for detailed documentation.
Data Sources & Freshness
All content is sourced from authoritative Icelandic legal databases:
Althingi -- Icelandic Parliament's official legislative database
Lagasafn -- Official Icelandic Legal Gazette (consolidated statutes)
EUR-Lex -- Official EU law database (EEA-incorporated acts, metadata only)
Automated Freshness Checks (Daily)
A daily GitHub Actions workflow monitors all data sources:
Source | Check | Method |
Statute amendments | Lagasafn comparison | All 1,709 statutes checked |
New statutes | Althingi publications (90-day window) | Diffed against database |
EU/EEA reference staleness | Git commit timestamps | Flagged if >90 days old |
Security
This project uses multiple layers of automated security scanning:
Scanner | What It Does | Schedule |
CodeQL | Static analysis for security vulnerabilities | Weekly + PRs |
Semgrep | SAST scanning (OWASP top 10, secrets, TypeScript) | Every push |
Gitleaks | Secret detection across git history | Every push |
Trivy | CVE scanning on filesystem and npm dependencies | Daily |
Docker Security | Container image scanning + SBOM generation | Daily |
Socket.dev | Supply chain attack detection | PRs |
OSSF Scorecard | OpenSSF best practices scoring | Weekly |
Dependabot | Automated dependency updates | Weekly |
See SECURITY.md for the full policy and vulnerability reporting.
Important Disclaimers
Legal Advice
THIS TOOL IS NOT LEGAL ADVICE
Statute text is sourced from official Althingi/Lagasafn publications. However:
This is a research tool, not a substitute for professional legal counsel
Verify critical citations against primary sources for court filings
EEA/EU cross-references reflect EEA-incorporated acts; verify current incorporation status
Always confirm current in-force status via Lagasafn before relying on a provision professionally
Before using professionally, read: DISCLAIMER.md | PRIVACY.md
Client Confidentiality
Queries go through the Claude API. For privileged or confidential matters, use on-premise deployment. See PRIVACY.md for Lögmannafélag Íslands (Icelandic Bar Association) compliance guidance.
Documentation
EU Integration Guide -- Detailed EEA/EU cross-reference documentation
EU Usage Examples -- Practical EU/EEA lookup examples
Security Policy -- Vulnerability reporting and scanning details
Disclaimer -- Legal disclaimers and professional use notices
Privacy -- Client confidentiality and data handling
Development
Setup
git clone https://github.com/Ansvar-Systems/Icelandic-law-mcp
cd Icelandic-law-mcp
npm install
npm run build
npm testRunning Locally
npm run dev # Start MCP server
npx @anthropic/mcp-inspector node dist/index.js # Test with MCP InspectorData Management
npm run ingest # Ingest statutes from Althingi/Lagasafn
npm run build:db # Rebuild SQLite database
npm run check-updates # Check for amendments and new statutesPerformance
Search Speed: <100ms for most FTS5 queries
Database Size: 68 MB (efficient, portable)
Reliability: 100% ingestion success rate
More Ansvar MCPs
Full fleet coverage at ansvar.eu/coverage.
Contributing
Contributions welcome! See CONTRIBUTING.md for guidelines.
Priority areas:
EEA incorporation status tracking (which EU acts are in force in Iceland)
Supreme Court (Hæstiréttur) case law expansion
Historical statute versions and amendment tracking
English translations for key statutes
Roadmap
Core statute database with FTS5 search
Full corpus ingestion (1,709 statutes, 19,026 provisions)
EEA/EU law integration tools
Vercel Streamable HTTP deployment
Daily freshness checks
Case law expansion (Hæstiréttur, Landsréttur)
Historical statute versions (amendment tracking)
English translations for key statutes
EEA incorporation status tracking
Citation
If you use this MCP server in academic research:
@software{icelandic_law_mcp_2026,
author = {Ansvar Systems AB},
title = {Icelandic Law MCP Server: Production-Grade Legal Research Tool},
year = {2026},
url = {https://github.com/Ansvar-Systems/Icelandic-law-mcp},
note = {Comprehensive Icelandic legal database with 1,709 statutes and 19,026 provisions}
}License
Apache License 2.0. See LICENSE for details.
Data Licenses
Statutes & Legislation:
Icelandic-Statutory-PD— Icelandic statutory public domain under Höfundalög nr. 73/1972 §9, which excludes laws, regulations, government directives, court decisions, similar documents produced by public authorities, and official translations of such documents from copyright protection. Single unconditional clause — no statutory attribution obligation. Verbatim basis: Alþingi consolidated text (Lagasafn). Commercial reuse permitted. Verified 2026-05-17.EU/EEA Metadata: EUR-Lex (EU public domain)
About Ansvar Systems
We build AI-accelerated compliance and legal research tools for the European market. This MCP server started as our internal reference tool for Icelandic law -- turns out everyone building for the EEA market has the same research frustrations.
So we're open-sourcing it. Navigating 1,709 statutes shouldn't require a law degree.
ansvar.eu -- Stockholm, Sweden
Available Tools
11 toolsaboutA
Server metadata, dataset statistics, freshness, and provenance. Call this to verify data coverage, currency, and content basis before relying on results.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so the description carries the full burden. It discloses that the tool returns metadata, statistics, freshness, and provenance. This is transparent and consistent with a read-only information tool.
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?
Two concise sentences front-load key terms and provide actionable guidance. Every sentence earns its place.
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?
Given zero parameters and no output schema, the description is fully complete. It explains what the tool returns and when to use it.
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?
No parameters exist, so schema coverage is trivially 100%. The description adds meaning by explaining what the tool returns, exceeding the baseline of 4.
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 specifies 'Server metadata, dataset statistics, freshness, and provenance' and explicitly states the action 'verify data coverage, currency, and content basis'. This clearly distinguishes it from sibling tools that perform specific legal research functions.
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 explicitly states 'Call this to verify data coverage, currency, and content basis before relying on results', providing clear context for when to use it. It does not explicitly mention when not to use, but the usage guidance is strong.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
build_legal_stanceA
Build a comprehensive set of citations for a legal question.
Searches across statutes, case law, and preparatory works simultaneously to aggregate relevant Icelandic legal citations. Use this for broad legal research questions where you need a holistic view of the legal position.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Max results per category (default: 5, max: 20) | |
| query | Yes | Legal question or topic to research (e.g., "persónuvernd starfsmanna") | |
| as_of_date | No | Optional historical date (YYYY-MM-DD) for time-aware retrieval. | |
| document_id | No | Optionally limit statute search to one law number | |
| include_case_law | No | Include case law results (default: true) | |
| include_preparatory_works | No | Include preparatory works results (default: true) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must carry the full burden. It discloses that the tool searches multiple categories simultaneously to aggregate citations, but it does not explain the output format, limit behavior, or time-aware retrieval details. This is adequate but not thorough.
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 two sentences with a clear first sentence stating the purpose, followed by a usage instruction. It is concise and front-loaded with no extraneous words.
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?
The description adequately explains the tool's scope but lacks details on the output format (e.g., citations vs. full text) and behavior of the limit parameter. Given the complexity (multi-source search, 6 parameters), it is minimally complete but could provide more 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 coverage is 100%, so a baseline of 3 is appropriate. The description does not elaborate on parameters beyond the schema, but the context of 'broad legal research' helps infer the purpose of the query parameter. No additional meaning is added.
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 it builds a comprehensive set of citations by searching across statutes, case law, and preparatory works simultaneously. It distinguishes itself from sibling tools like search_case_law and search_legislation, which perform single-source searches.
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 explicitly advises to use this tool for 'broad legal research questions where you need a holistic view,' which implies it is not for narrow, specific lookups. It could be improved by naming alternative tools for narrower queries.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
check_currencyA
Check if an Icelandic statute or provision is currently in force.
Returns the document's status (in_force, amended, repealed, not_yet_in_force), effective dates, and any warnings. Provide as_of_date for historical evaluation of in-force status.
| Name | Required | Description | Default |
|---|---|---|---|
| as_of_date | No | Optional historical date (YYYY-MM-DD). Computes in-force status as of that date. | |
| document_id | Yes | Law number (e.g., "90/2018") | |
| provision_ref | No | Optional provision reference to check (e.g., "14") |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Describes return values (status, dates, warnings) but does not explicitly state read-only nature or any side effects. With no annotations, the agent must infer safety.
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?
Three succinct sentences: purpose, return, usage hint. Every sentence adds value, well-structured.
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?
Adequately covers purpose, output, and a key usage hint. Lacks examples or additional constraints, but sufficient for a simple read tool.
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 is 100%, and the description only slightly expands on as_of_date usage, not adding substantial new meaning beyond the schema.
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 checks if an Icelandic statute or provision is currently in force, specifying the exact purpose and differentiating it from siblings like get_provision or check_data_freshness.
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?
Provides hint to use as_of_date for historical evaluation, but does not explicitly guide when to use this tool over alternatives (e.g., get_provision for content) or state when not to use it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
check_data_freshnessA
Returns the corpus build timestamp and per-source last_verified dates with staleness_days against a 90-day threshold. Use this to verify whether the data backing this MCP is current before relying on it for compliance work. For full source provenance, use list_sources; for server statistics, use about.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It describes the return values (timestamps, staleness_days) but does not explicitly state that it is a read-only operation with no side effects. However, the context implies it is safe to call repeatedly.
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?
Three sentences total: first defines purpose, second gives usage guidance, third lists alternatives. No wasted words, front-loaded with key information.
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?
Given zero parameters and no output schema, the description adequately explains what the tool returns (timestamps, staleness_days, threshold). It could be enhanced by mentioning the response format, but it is sufficient for the tool's simplicity.
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 schema coverage is 100%. The description does not need to add parameter information. Baseline score of 4 is appropriate.
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 it returns the corpus build timestamp and per-source last_verified dates with staleness_days against a 90-day threshold. It distinguishes itself from siblings like list_sources and about by specifying what it does differently.
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?
Explicitly states when to use: 'to verify whether the data backing this MCP is current before relying on it for compliance work.' Also provides alternatives: 'For full source provenance, use list_sources; for server statistics, use about.'
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
format_citationB
Format an Icelandic legal citation per standard conventions.
Formats:
full: "L. nr. 90/2018 14. gr."
short: "90/2018 14. gr."
pinpoint: "14. gr."
| Name | Required | Description | Default |
|---|---|---|---|
| format | No | Output format (default: "full") | |
| citation | Yes | Citation string to format |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description does not disclose any behavioral traits such as error handling, side effects, or requirements for valid input. It only states the action without depth.
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?
Extremely concise: one sentence plus format examples. Front-loaded with the key verb and resource. Every word earns its place.
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 formatting tool with clear parameters and no output schema, the description is adequate but could mention return type or behavior on invalid input to be fully complete.
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 is high, so the description adds limited value. It provides examples of format values, which enriches the enum descriptions, but does not add meaning beyond the schema.
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 verb 'Format' and the resource 'Icelandic legal citation', and provides format examples. However, it does not explicitly differentiate from sibling 'validate_citation', which could cause confusion.
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 on when to use this tool versus alternatives like 'validate_citation'. The description lacks context on prerequisites or when not to use the tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_preparatory_worksA
Get preparatory works (löggjafarsaga) for an Icelandic statute.
Returns linked parliamentary documents — bills (frumvörp), committee reports (nefndarálit), and debate records (þingfundur) — with summaries. Essential for understanding legislative intent behind statutory provisions.
| Name | Required | Description | Default |
|---|---|---|---|
| document_id | Yes | Law number of the statute (e.g., "90/2018") |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description bears full burden. It discloses that the tool returns documents with summaries, but lacks details on potential errors, authorization needs, or performance characteristics. Adequate but not comprehensive.
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?
Three sentences: first states purpose, second details contents, third highlights value. No redundancy, perfectly front-loaded, and each sentence serves a distinct purpose.
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?
Given a single parameter, no output schema, and no annotations, the description provides sufficient context: what the tool returns, its components, and its use case. Minor omission of error handling or result structure, but nearly complete for this simple tool.
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 is 100% and the example in the description ('90/2018') reinforces the schema's format description. The description adds no new semantic meaning beyond the schema, achieving the baseline for high coverage.
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 verb 'Get', the resource 'preparatory works', and specifies the target 'Icelandic statute'. It distinguishes from sibling tools like 'get_provision' by focusing on legislative intent rather than statutory 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?
The description implies usage for understanding legislative intent ('Essential for understanding legislative intent'), but provides no explicit guidance on when not to use or alternatives among siblings. Usage context is suggested but not fully explicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_provisionA
Retrieve a specific provision (grein) from an Icelandic statute.
Specify the law number and either section or provision_ref directly. Icelandic statutes identify provisions by article number (grein, abbreviated "gr.").
Examples:
document_id="33/1944", section="1" → 1. gr. Stjórnarskrá (Constitution Art. 1)
document_id="90/2018", section="14" → 14. gr. Persónuverndarlög
document_id="90/2018", provision_ref="14" → same result
Omit section/provision_ref to retrieve all provisions in the statute.
| Name | Required | Description | Default |
|---|---|---|---|
| chapter | No | Chapter number, if the statute uses chapters. | |
| section | No | Article/section number (e.g., "14", "5 a") | |
| as_of_date | No | Optional historical date (YYYY-MM-DD). Returns the provision text valid on that date. | |
| document_id | Yes | Law number (e.g., "90/2018" for Persónuverndarlög, "33/1944" for Stjórnarskrá) | |
| provision_ref | No | Direct provision reference (e.g., "14" or "3:5" for chapter 3, article 5) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must disclose all behavioral traits. It correctly implies read-only behavior by stating 'retrieve' and 'returns the provision text valid on that date.' However, it doesn't mention authentication requirements or rate limits, which would improve transparency.
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 concise: a one-sentence purpose, a brief usage note, three examples, and an edge case (omitting both parameters). Every sentence adds value, and the structure is front-loaded with the most important information.
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 retrieval tool with no output schema, the description sufficiently explains input usage, examples, and optional parameters. It covers all scenarios (specific provision vs. all provisions, historical date) and is complete given the tool's complexity.
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 is 100%, but the description adds value beyond the schema by explaining the relationship between section and provision_ref (alternative identifiers), showing examples, and clarifying the as_of_date parameter. It does not repeat schema info verbatim.
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 'Retrieve a specific provision (grein) from an Icelandic statute.' It uses a specific verb ('retrieve') and resource ('provision from statute'), distinguishing it from sibling tools like search_legislation or get_preparatory_works.
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 specifies two ways to identify a provision (section or provision_ref) and provides examples. It also explains that omitting both retrieves all provisions, giving clear usage context. Though it doesn't explicitly mention when-not-to-use, the guidance is complete for the tool's scope.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_sourcesA
List all data sources used by this server, including provenance, update frequency, and license information. Call this to understand where the data comes from and how current it is.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the burden. It discloses that the tool returns provenance, update frequency, and license information. As a read-only listing, no destructive traits are expected, but deeper details like rate limits or pagination are absent. Still, it is adequately transparent.
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?
Two sentences, front-loaded with purpose, and each sentence adds value. No wasted words.
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?
The description covers what the tool returns and its use case. It does not mention ordering, pagination, or response format, but given no output schema, the disclosed fields provide sufficient context for a simple listing tool.
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 no parameters, so the schema coverage is 100% trivially. The baseline is 4, and the description does not need to add parameter semantics. No issues.
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 specific verb 'List' and resource 'all data sources', and details the included fields (provenance, update frequency, license). This clearly distinguishes it from siblings like 'about' or 'check_currency'.
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 explicitly tells when to call this tool: 'to understand where the data comes from and how current it is'. However, it does not mention when not to use it or provide alternatives, so it falls short of a perfect score.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_case_lawA
Search Icelandic court decisions (dómar).
Searches case summaries and keywords from Icelandic courts. Filter by court and date range. Court codes: Hæstiréttur (Supreme Court) = "HRD", Landsréttur (Court of Appeals) = "LR".
Note: Case law coverage depends on the database tier. The free community tier may have limited case law.
| Name | Required | Description | Default |
|---|---|---|---|
| court | No | Filter by court (e.g., "HRD" for Hæstiréttur, "LR" for Landsréttur) | |
| limit | No | Maximum results (default: 10, max: 50) | |
| query | Yes | Search query for case law summaries (Icelandic or English) | |
| date_to | No | End date filter (ISO 8601) | |
| date_from | No | Start date filter (ISO 8601, e.g., "2020-01-01") |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Discloses the scope (summaries and keywords) and database tier limitations, but does not describe pagination, sorting, or response format; adequate given no annotations burden.
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?
Extremely concise with all relevant information front-loaded; each sentence adds value without redundancy.
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?
Lacks return format or ordering details; without an output schema, the description should provide more context on what the results contain, though the coverage note is helpful.
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 is 100%, so description adds only marginal value (court codes, date format examples) beyond what the schema already provides.
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 it searches Icelandic court decisions (dómar), specifically case summaries and keywords, which distinguishes it from sibling tools like search_legislation or get_provision.
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?
Provides clear context on when to use (searching case law), includes court codes and database tier limitations, but does not explicitly exclude alternatives or state when not to use.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_legislationA
Search Icelandic statutes (lög) and regulations by keyword.
Searches provision text using FTS5 full-text search with BM25 ranking. Supports boolean operators (AND, OR, NOT), phrase search ("exact phrase"), and prefix matching (term*).
Returns matched provisions with snippets, relevance scores, and document metadata. Icelandic law numbers use the format number/year (e.g., "90/2018" for Persónuverndarlög).
When NOT to use: If you already know the exact law number and provision, use get_provision instead.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Maximum results (default: 10, max: 50) | |
| query | Yes | Search query in Icelandic or English. Supports FTS5 syntax (e.g., "persónuupplýsingar", "réttindi AND friðhelgi"). | |
| status | No | Filter by document status | |
| as_of_date | No | Optional historical date filter (YYYY-MM-DD). Returns provisions valid on that date. | |
| document_id | No | Filter to a specific statute by law number (e.g., "90/2018" for Persónuverndarlög) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so the description carries the full burden. It discloses FTS5 full-text search with BM25 ranking, supported operators, and return format (snippets, relevance scores, metadata). However, it does not explicitly state read-only behavior, though implied.
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?
Concise and well-structured: starts with main purpose, then search details, results description, and usage alternative. Every sentence adds value, no redundancy.
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?
Given 5 parameters and no output schema, the description covers query syntax, filtering, results, and alternatives. Lacks details on sorting or default behavior, but overall sufficiently complete for a search tool.
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 is 100%, so baseline is 3. The description adds context beyond schema: explains law number format ("90/2018"), how to use document_id, and search syntax for query parameter. Compensates well.
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 searches Icelandic statutes and regulations by keyword. It explicitly distinguishes itself from the sibling tool get_provision, which is for exact law number lookups.
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?
Includes an explicit 'When NOT to use' section naming get_provision as an alternative. Also details supported search syntax (boolean operators, phrase search, prefix matching), providing clear guidance on usage.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
validate_citationA
Validate an Icelandic legal citation against the database.
Parses the citation, checks that the document and provision exist, and returns warnings about status (repealed, amended). This is the zero-hallucination enforcer — never generates citations, only validates against verified data.
Supported Icelandic citation formats:
"L. nr. 90/2018" (full statute reference)
"90/2018 14. gr." (statute with article)
"33/1944" (Constitution by law number)
"HRD 2020 bls. 1234" (Supreme Court decision)
Also supports legacy Nordic formats for cross-referencing.
| Name | Required | Description | Default |
|---|---|---|---|
| citation | Yes | Citation string to validate (e.g., "L. nr. 90/2018 14. gr." or "90/2018") |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It explains that the tool parses the citation, checks document and provision existence, and returns warnings about repealed/amended status. It explicitly states 'never generates citations, only validates against verified data,' which provides clear behavioral expectations.
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, starting with the core purpose, then detailing behavioral traits, and finally listing supported formats in a bullet-like manner. Each sentence adds value, and there is no fluff. The format examples are particularly useful.
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?
Given the tool's simplicity (single parameter, no output schema), the description is complete. It explains what the tool does, what output to expect (warnings about status), and covers all relevant aspects. The inclusion of supported formats ensures the agent knows proper input.
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 schema has 100% coverage, so the description need not add much, but it provides a rich list of supported citation formats with examples (e.g., 'L. nr. 90/2018', '90/2018 14. gr.'), adding significant meaning beyond the simple schema description. This helps the agent understand the required format and scope.
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: 'Validate an Icelandic legal citation against the database.' It specifies the verb (validate) and the resource (Icelandic legal citation), and distinguishes itself from sibling tools like format_citation or search_legislation by emphasizing it is a validation-only, 'zero-hallucination enforcer' that never generates citations.
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 provides clear context by stating it is for validating existing citations against verified data, implying it should be used when you need to confirm a citation's existence and status. However, it does not explicitly exclude usage scenarios or compare to alternatives like get_provision or search_legislation, leaving some ambiguity.
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.
11 tool updates
v1.0.1- First observed
about - First observed
build_legal_stance - First observed
check_currency - First observed
check_data_freshness - First observed
format_citation - First observed
get_preparatory_works - First observed
get_provision - First observed
list_sources - First observed
search_case_law - First observed
search_legislation - First observed
validate_citation
TDQS
Scored across 11 tools
Most tools target distinct actions (search, retrieve, validate, format). The metadata tools (about, check_data_freshness, list_sources) have overlapping purposes but are differentiated by their specific outputs and descriptions.
All tool names use snake_case with a clear verb_noun pattern (e.g., build_legal_stance, get_provision, search_case_law). The naming is uniform and predictable.
11 tools cover the core needs of Icelandic legal research without being excessive. Each tool serves a distinct function, and the count is well-proportioned to the domain.
The set covers search, retrieval, validation, formatting, and metadata for statutes and case law. Minor gaps like direct full-text statute retrieval are addressed by get_provision without section. Overall, it's comprehensive for research.
Maintenance
Related MCP Connectors
Verified, citable German & EU law for any LLM. Daily updates from official sources, hosted in DE.
Verified, citable German & EU law for any LLM. Daily updates from official sources, hosted in DE.
Search national and EU case law, legislation and regulation, with citations you can verify.
Resolve, search and verify legal citations against the official sources, with provenance.
Related MCP Servers
- FlicenseNot gradedqualityNot gradedmaintenanceEnables users to search, retrieve, and validate over 11,000 Philippine statutes and nearly 100,000 provisions through AI-powered legal research tools. It supports full-text search across Republic Acts, the Constitution, and various codes while providing cross-referencing and international law alignment capabilities.1 npm-
- AlicenseNot gradedqualityFmaintenanceEnables querying over 6,800 German federal statutes, case law, and legislative preparatory works with verbatim source text. Integrates EU law cross-references and provides citation validation and legal stance building.86 npm22Apache 2.0
- AlicenseNot gradedqualityFmaintenanceEnables querying 40 Slovenian statutes with full-text search, provision retrieval, and EU law integration, providing verified references from official PISRS sources.38 npmApache 2.0
- AlicenseNot gradedqualityFmaintenanceProvides searchable access to 2,249 Latvian statutes and 57,679 provisions with EU law integration, enabling legal research, citation validation, and cross-referencing through natural language queries.28 npmApache 2.0