rechtspraak-mcp
Server Quality Checklist
Latest release: v0.1.1
- Disambiguation5/5
Each tool has a clearly distinct purpose: search returns summaries with facets, get returns full text by ECLI, bulk variants handle multiple ECLIs, list_waardelijsten provides filter vocabulary, and lido_related maps citations. Even the overlap between search_uitspraken and get_uitspraak when given an ECLI is unambiguous because one returns a summary and the other full text.
Naming Consistency4/5The set predominantly follows a consistent verb_noun pattern (search_*, get_*, list_*) with a uniform _bulk suffix for batch operations. The sole deviation is 'lido_related', which uses a noun-adjective form instead of a verb, but it is still clear and does not disrupt overall predictability.
Tool Count5/5Six tools is well-scoped for a case law search and retrieval server. Each tool serves a distinct aspect: searching, fetching, bulk operations, value lists, and citation analysis, with no redundancy or glaring omissions.
Completeness4/5The server covers the core workflow: discover filter values, search for summaries, retrieve full texts, bulk-fetch multiple decisions, and explore citations. Minor gaps like lack of search by case number or free-text search are noted, but the official API does not support these, so the surface is appropriate.
Average 4.4/5 across 6 of 6 tools scored.
See the Tool Scores section below for per-tool breakdowns.
- No community issues in the last 6 months
- 5 commits in the last 12 weeks
- Last stable release on
- No critical vulnerability alerts
- No high-severity vulnerability alerts
- No code scanning findings
- CI is passing
This repository is licensed under MIT License.
This repository includes a README.md file.
No tool usage detected in the last 30 days. Usage tracking helps demonstrate server value.
Tip: use the "Try in Browser" feature on the server page to seed initial usage.
Add a glama.json file to provide metadata about your server.
If you are the author, simply .
If the server belongs to an organization, first add
glama.jsonto the root of your repository:{ "$schema": "https://glama.ai/mcp/schemas/server.json", "maintainers": [ "your-github-username" ] }Then . Browse examples.
Add related servers to improve discoverability.
How to sync the server with GitHub?
Servers are automatically synced at least once per day, but you can also sync manually at any time to instantly update the server profile.
To manually sync the server, click the "Sync Server" button in the MCP server admin interface.
How is the quality score calculated?
The overall quality score combines two components: Tool Definition Quality (70%) and Server Coherence (30%).
Tool Definition Quality measures how well each tool describes itself to AI agents. Every tool is scored 1–5 across six dimensions: Purpose Clarity (25%), Usage Guidelines (20%), Behavioral Transparency (20%), Parameter Semantics (15%), Conciseness & Structure (10%), and Contextual Completeness (10%). The server-level definition quality score is calculated as 60% mean TDQS + 40% minimum TDQS, so a single poorly described tool pulls the score down.
Server Coherence evaluates how well the tools work together as a set, scoring four dimensions equally: Disambiguation (can agents tell tools apart?), Naming Consistency, Tool Count Appropriateness, and Completeness (are there gaps in the tool surface?).
Tiers are derived from the overall score: A (≥3.5), B (≥3.0), C (≥2.0), D (≥1.0), F (<1.0). B and above is considered passing.
Tool Scores
- Behavior4/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden and discloses important behavior: per-ECLI results with body, metadata, relations, links, and error handling for unpublished/not-found ECLIs. It does not mention rate limits or auth, but for a public read API the disclosed return and error semantics are valuable.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness5/5Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, front-loaded with the main purpose and followed by a concise summary of the return format and error behavior. No redundancy or filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness4/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
There is no output schema, so the description reasonably covers return values and error cases. It explains the per-ECLI result and the count limit. It could optionally include a small example, but the provided info is sufficient for an agent to understand the tool's use.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters3/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, with both parameters described. The description adds context about the result structure (body, metadata, relations, links) but does not elaborate on parameter semantics beyond what the schema already states. Baseline of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose5/5Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states a specific verb ('Fetch'), resource ('multiple Dutch court decisions by ECLI'), and scope ('1–10 ECLIs in one call'). It distinguishes itself from siblings like get_uitspraak (single) and search_uitspraken (search-based) by emphasizing the bulk-by-ECLI nature.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines4/5Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear context for when to use the tool: when fetching multiple court decisions by known ECLI identifiers. It implicitly excludes single-fetch and search scenarios, though it does not explicitly name alternatives 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.
- Behavior4/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden. It discloses the data source (official Open Data API), the return contents (metadata fields like court, date, rechtsgebied, zaaknummer, plain-text body, relations, links), and the behavior when content is missing (states it, do not invent). This is solid transparency, though it omits potential details like rate limits or authentication, which are not critical for a simple read tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness5/5Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences, front-loaded with the primary action and resource, then provides necessary detail on return values and edge-case behavior. Every clause adds value, with no redundant or filler content.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness5/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a relatively simple fetch tool with 3 parameters and no output schema, the description thoroughly covers what the tool returns (including metadata fields, body, relations, and links) and how it behaves when the ECLI is invalid or has no body. It is complete enough for an agent to invoke the tool correctly and interpret results.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters3/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema already describes all three parameters with 100% coverage: id (alias for ecli), ecli (with example and alias), metadataOnly (boolean). The description adds no new parameter-level details beyond reinforcing that the tool works by ECLI, so it meets the baseline of 3 but does not exceed it.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose5/5Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool 'Fetch the full text and metadata of a single Dutch court decision by ECLI', specifying a concrete action (fetch), a precise resource (single court decision), and the key identifier (ECLI). It naturally distinguishes itself from sibling tools like search_uitspraken (searching) and bulk tools by emphasizing 'single'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines4/5Does the description explain when to use this tool, when not to, or what alternatives exist?
It implies when to use: when you have a specific ECLI and need the full decision or metadata. The caution 'If the ECLI is not published or has no body text, the tool says so — do not invent or cite it' gives explicit guidance on handling missing results. However, it does not explicitly mention alternatives like search_uitspraken for discovery, so it earns a 4 rather than a 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior4/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are present, so the description carries the full burden. It discloses the tool is read-only and bounded (limit 100/250), states the data source (KOOP's live LiDO service), and clarifies the output is structure, not full text. It does not mention latency or failure modes, but covers key behavioral traits.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness5/5Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise at three sentences, front-loaded with the core purpose. Every sentence adds value: scope, data source, use case, and behavioral constraints. No filler or redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness4/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 4-parameter tool with no output schema, the description explains return content well: citing/cited rulings, statute articles, publications, and typed link labels. It also distinguishes from text retrieval. Minor gaps like pagination or error handling are inferable from the bounded limit.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters3/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the baseline is 3. The description adds no new parameter semantics beyond what the schema already documents, but it does reinforce the limit behavior and link type examples, which are already present in the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose5/5Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource: 'Get the LiDO citation graph around a Dutch ECLI'. It clearly distinguishes from sibling tools by specifying graph relationships and explicitly referencing get_uitspraak for text retrieval.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines5/5Does the description explain when to use this tool, when not to, or what alternatives exist?
It provides explicit when-to-use guidance: 'Use it to position a ruling (is it a landmark? what does it cite?)'. It also names the alternative get_uitspraak for full text, making the boundary clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior4/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are supplied, so the description carries the full burden. It discloses the API source, the faceted-search behavior, the absence of free-text matching, the ECLI lookup behavior, and the output elements (ECLIs, links, viewer). It does not mention pagination or auth, but these are at least partly visible in the schema, and the core behavioral caveats are present.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness5/5Is the description appropriately sized, front-loaded, and free of redundancy?
Four sentences, led by the action and output, with all content earning its place. It is front-loaded and compact, avoiding restatement of the schema properties.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness4/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 9-parameter tool with no output schema, the description gives a complete conceptual model: what is searched, how to filter, what is ignored, and where to get identifiers. It falls slightly short by not describing pagination defaults or the shape of a 'summary', but the schema covers parameter details and the core orientation is sufficient.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters4/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and parameter descriptions already include details like OWMS URIs, date formats, and defaults, so the baseline is 3. The description adds value by framing the API as facet-only, clarifying that `query` is exclusively an ECLI and non-ECLI values are ignored, and pointing to list_waardelijsten for valid identifiers, pushing it above baseline.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose5/5Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific verb ('Search') and resource ('Dutch case law') and clearly distinguishes this from free-text and ECLI lookup modes. The tool's faceted nature and unique output (ECLIs + links + PrudAI viewer) are stated in the first sentence, so an agent can tell it apart from bulk or retrieval siblings.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines4/5Does the description explain when to use this tool, when not to, or what alternatives exist?
It explicitly warns that the tool has no free-text keyword matching and directs users to list_waardelijsten for valid facet identifiers, giving clear when-to-use guidance. It also describes the ECLI-as-query use case. However, it does not explicitly contrast against the bulk or single-decision sibling tools, so the exclusion guidance is partial.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior4/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the burden of behavioral disclosure. It reveals that certain lists return identifiers/URIs and that omitting the parameter lists available names, which are not evident from the schema alone. It doesn't explicitly state read-only behavior or output format, but the nature of 'list' and the described usage make this a minor gap.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness5/5Is the description appropriately sized, front-loaded, and free of redundancy?
The description is three sentences, each contributing essential information: the function and list names, the mapping to search parameters, and the default behavior. No redundancy, well-structured, and fully front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness5/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple list tool with one optional parameter and no output schema, the description is complete: it names the lists, explains how to use them for search filters, and describes the no-argument behavior. It also references the primary consumer tool (search_uitspraken), providing sufficient context for correct invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters4/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, providing the enum and a basic description, so baseline is 3. The description adds value by explaining the functional role of the parameter values (e.g., 'rechtsgebieden' and 'instanties' produce identifiers for search_uitspraken) and the effect of omitting the parameter, which goes beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose5/5Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool lists Rechtspraak value lists (waardelijsten) for building valid search filters, enumerating the specific lists available. It also explains the relationship to search_uitspraken parameters, which distinguishes it from the search/get sibling tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines4/5Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear context: this tool supplies filter values for search_uitspraken, with explicit mention that 'rechtsgebieden' and 'instanties' return identifiers/URIs to pass. It also instructs to call without a name to see available lists, giving actionable guidance. However, it doesn't explicitly address when not to use it, but as a reference tool this is sufficient.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior4/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It discloses a key behavioral trait: 'Open Data has no free-text matching, so non-ECLI terms fall back to facet-only results.' This goes beyond the schema and helps the agent anticipate fallback behavior. It doesn't detail rate limits or return format, but provides the most important caveat.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness5/5Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences, each adding distinct information: purpose, ECLI nuance, and when-to-use guidance. No filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness4/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a bulk lookup tool with no annotations or output schema, the description covers the core behavior, the limitation about free-text matching, and the relationship to sibling tools. It also implies return value (summaries). A small gap is the lack of explanation of 'facet-only results,' but overall it's adequate.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters4/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the baseline is 3. The description adds extra meaning by specifying that terms should be ECLIs and 'phrased differently,' which goes beyond the schema's min/max constraints. This raises it slightly.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose5/5Does the description clearly state what the tool does and how it differs from similar tools?
The description uses specific verbs ('Run several Open Data lookups at once', 'Pass ECLIs to resolve a batch') and clearly identifies the resource (Open Data lookups, decisions' summaries). It also distinguishes from siblings by directing users to get_uitspraken_bulk when ECLIs are already available and get_uitspraak for narrowing down.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines5/5Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly states when to use this tool vs alternatives: 'prefer get_uitspraken_bulk when you already have the ECLIs' and 'Use to cast a broad net before narrowing down via get_uitspraak.' It also warns about Open Data's lack of free-text matching, providing context for when the tool is appropriate.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
GitHub Badge
Glama performs regular codebase and documentation scans to:
- Confirm that the MCP server is working as expected.
- Confirm that there are no obvious security issues.
- Evaluate tool definition quality.
Our badge communicates server capabilities, safety, and installation instructions.
Card Badge
Copy to your README.md:
Score Badge
Copy to your README.md:
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/Prudai/rechtspraak-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server