es-eli-mcp
Server Quality Checklist
Latest release: v0.4.2
- Disambiguation5/5
Each tool targets a distinct resource and action: get_act/get_index/get_text cover different aspects of a law, and each search/get pair covers a separate legal source. There is no ambiguity between tools.
Naming Consistency3/5The 'es_' prefix and verb+object pattern are consistent, but there are notable inconsistencies: search_tax_rulings vs get_tax_ruling (plural vs singular), search_teac_doctrine vs get_teac_criterio (different object nouns), and es_search_constitutional omits the noun 'ruling'.
Tool Count5/512 tools is well within the ideal 3-15 range and appropriately scoped for covering multiple Spanish legal sources (BOE, Constitutional Court, DGT, TEAC, AEPD) with search and retrieval operations.
Completeness3/5The toolset provides strong search/get coverage for most sources, but there is no search for BOE laws by text or metadata—only browsing by date. This is a notable gap for the core 'consolidated law' functionality.
Average 3.9/5 across 12 of 12 tools scored.
See the Tool Scores section below for per-tool breakdowns.
- No community issues in the last 6 months
- 14 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 Apache 2.0.
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.
This repository includes a glama.json configuration file.
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
- Behavior3/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and non-destructive behavior, so the safety profile is well covered. The description adds a modest behavioral constraint by specifying that the tool expects a 'consolidated law' and returns articles/titles, but it does not disclose any operational behaviors such as pagination, error handling, or special cases, which would be valuable beyond the annotations.
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 a single, front-loaded sentence with no redundancy or filler. It directly states the tool's function in minimal space, making it highly efficient and easy to parse.
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 simple one-parameter tool with strong annotations and an output schema, the description sufficiently conveys the core purpose. However, terms like 'consolidated law' and 'block index' are left undefined, and there is no mention of edge cases or return value semantics beyond the schema, so it is not fully complete for an agent unfamiliar with the legal domain.
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 input schema fully documents the sole parameter boe_id with an example, achieving 100% schema description coverage. The description contributes no additional parameter-level detail, so the baseline score of 3 is appropriate given the schema's completeness.
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 the specific verb 'list' and identifies the resource as 'block index (articles, titles)' of a 'consolidated law', which clearly distinguishes it from sibling tools like es_get_text or es_get_act. The parenthetical clarifies the content of the index, making the purpose unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines2/5Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no explicit guidance on when to use this tool versus alternatives like es_get_text or es_get_act, nor does it mention exclusions or prerequisites. The only implied usage is derived from the purpose statement itself, offering essentially no strategic direction for an agent deciding between tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior3/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false, so the description does not need to repeat that. The term 'resolve' suggests a deterministic lookup, but no additional behavioral context (e.g., error handling, authentication needs, or rate limits) is provided. This is acceptable given the strong annotation coverage.
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 a single, direct sentence that is front-loaded with the primary action and resource. It contains no filler and communicates the core function efficiently.
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?
The tool is a simple, low-complexity lookup. The input schema and annotations fully cover safety and parameter semantics, and the presence of an output schema means return values are already documented. The concise description adequately covers the tool's purpose without needing additional elaboration.
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 coverage is 100% and each parameter has a clear description. The description mentions 'number + year' but does not add meaning for the optional 'tipo' parameter or go beyond what the schema already provides. The baseline of 3 applies because the schema carries the full explanatory burden.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose4/5Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states a specific action ('resolve') on a specific resource (Tribunal Constitucional citation) with the outcome being the full ruling. However, it does not distinguish this tool from the sibling 'es_get_constitutional_ruling', which likely serves a similar purpose, so it falls short of a 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines3/5Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies the tool should be used when the user has a citation number and year, but it provides no explicit guidance on when to prefer this tool over siblings like 'es_get_constitutional_ruling' or other search tools. There are no exclusions or alternative scenarios mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior3/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare the tool as read-only, open-world, and idempotent, so the description does not need to repeat those. It adds context that the target is 'DYCTEA criterios', but does not disclose behavioral details such as result limits, pagination behavior, or handling of no matches. With strong annotations, the added value is moderate, so a 3 is appropriate.
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 a single, information-dense sentence. It front-loads the primary purpose and covers the key dimensions without any redundant wording or filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness3/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's moderate complexity (6 optional parameters, output schema provided, and strong annotations), the description is minimally sufficient. It tells the agent what the tool searches for and by what criteria, but lacks guidance on edge cases, result formatting, and how it relates to sibling tools. The output schema presumably covers return values, so this score reflects only what the description itself contributes.
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?
The schema covers all parameters with descriptions (100% coverage), but the description adds conceptual grouping by stating 'RG segments and/or date range', clarifying that 'anno', 'sede', and 'numero' are RG segments while 'fecha_desde' and 'fecha_hasta' are date filters. This helps the agent quickly map the parameters to the stated search dimensions.
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 ('Search') and resource ('TEAC doctrine (DYCTEA criterios)'), and specifies the search dimensions ('by RG segments and/or date range'). It distinguishes itself from sibling 'get' tools by indicating a search operation rather than retrieval of a single item.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines2/5Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit guidance is given on when to use this tool versus alternatives. It does not name sibling tools like 'es_get_teac_criterio' or 'es_search_tax_rulings', nor does it state when not to use it (e.g., when a specific criterio ID is known). The intended usage is only implied by the word 'Search'.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior3/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, openWorldHint, idempotentHint, and non-destructive, so the safety profile is covered. The description adds the functional scoping (full text/date) but does not add behavioral traits like pagination behavior, rate limits, or response format beyond what the schema provides.
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 a single front-loaded sentence with no filler words. It conveys the essential information efficiently.
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 search tool with full schema coverage, good annotations, and an output schema, the one-sentence description is adequate to understand its purpose. It could add examples of expediente-number queries or clarify behavior with no filters, but these are already covered by the schema descriptions, so no critical gaps exist.
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 each parameter (page, texto, fecha_desde, fecha_hasta) already described in detail. The tool description adds no parameter-specific meaning, so the baseline 3 applies.
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 ('Search'), a specific resource ('AEPD resolutions'), and the search dimensions ('by full text and/or signature date'), which distinguishes it from sibling tools like es_get_aepd_resolution (retrieval) and es_search_constitutional (different authority).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines3/5Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage (use when searching by text or date) but does not explicitly state when not to use it or name alternatives. The distinction from es_get_aepd_resolution is implicit through the verb 'search' versus 'get', but no alternative guidance is provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior3/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, openWorldHint, idempotentHint, and destructiveHint, covering the safety profile. The description adds the date scoping but no additional behavioral traits like pagination, limits, or error conditions. It is consistent with annotations and does not contradict them.
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 a single, front-loaded sentence with no filler or repetition. Every word contributes to the purpose, making it highly concise and efficiently structured.
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 listing tool with one parameter and an output schema, the description is complete. It specifies what is listed (documents in the BOE gazette) and the condition (on a date), while the output schema and annotations cover return structure and safety. No additional explanation is needed.
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 input schema fully describes the single 'date' parameter with format and example, so schema coverage is 100%. The description adds no new semantic detail beyond referencing 'on a date', which aligns with the parameter but does not enhance or clarify further. 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 the verb 'List' and the resource 'documents published in the official BOE gazette on a date', making the scope and action unambiguous. It distinguishes itself from sibling tools like es_get_act or es_search_tax_rulings by focusing on browsing all documents for a given date.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines3/5Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage (browse documents by date) but does not explicitly state when to use this tool over siblings or provide exclusions. There is no mention of alternatives, such as 'use es_get_act to retrieve a specific document'. The context is clear but not explicit about decision boundaries.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior3/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and destructiveHint, covering the safety profile. The description adds 'full' to indicate completeness, but no further behavioral context (e.g., pagination, error cases) is provided. This is adequate given annotation coverage.
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?
A single, front-loaded sentence that communicates the essential purpose without unnecessary words. It is appropriately concise and well structured.
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?
This is a simple one-parameter tool with an output schema present, so return values are already documented. The description sufficiently identifies the input and the nature of the output ('full ruling'). No additional context is needed for correct invocation.
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 the parameter description including format examples ('V0001-25' and '0001-03'). The tool description does not add additional parameter semantics beyond what the schema already provides, so the baseline of 3 applies.
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 a specific verb ('Fetch') and resource ('full DGT tax ruling') with the key input ('official number'). It clearly distinguishes from sibling 'get' tools by specifying DGT tax rulings as opposed to constitutional rulings or TEAC criteria.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines3/5Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies that the tool requires an official number, which suggests prior search usage, but it does not explicitly state when to use this tool versus alternatives or mention any exclusions. The context is clear but lacks explicit guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior3/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations already declare readOnly, idempotent, and non-destructive behavior, lowering the bar. The description adds that the tool returns a resolution and PDF permalink, but provides no additional context such as error handling, rate limits, or behavior when the number is invalid. This is acceptable but not rich.
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 a single, focused sentence that states the action and the expected output. No wasted words or information.
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?
Given the simple one-parameter input, clear schema, presence of an output schema, and strong annotations, the description is nearly complete. A small gap is the lack of explicit usage guidance relative to the sibling search tool, but overall the tool is well-specified.
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 input schema has 100% parameter description coverage, so the baseline is 3. The description adds no extra meaning beyond what the schema already provides for the 'expediente' parameter.
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 a specific verb ('Resolve') and clearly identifies the resource ('AEPD expediente number') and the outcome ('its resolution and full-text PDF permalink'). This distinguishes the direct-lookup tool from its sibling search tool (es_search_aepd_resolutions).
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 implies the tool is used when you already have a specific expediente number, which is clear context. However, it does not explicitly mention alternatives or exclude search-based workflows, so it falls short of 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?
Annotations already declare read-only, idempotent, and non-destructive behavior, and the description complements them by specifying the output format (XML) and the ability to fetch whole or by block. It does not add details like rate limits or auth, but the bar is lower given the existing annotations and the simple nature of the operation.
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 a single, front-loaded sentence that efficiently communicates the core function and scope. No unnecessary words or repetition of schema/annotation information, making it an exemplar of concise writing.
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?
Given the simple tool with 2 parameters and an existing output schema, the description provides sufficient context. It clarifies the return format (XML) and the optional block scope, which complements the schema. A higher score would require more explicit context such as size warnings, but these are not essential for this straightforward read operation.
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 provides full coverage (100%) with clear descriptions for both boe_id and block_id, including an example and guidance on omitting block_id. The description adds no additional parameter semantics, so the 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 the tool fetches the consolidated text (XML) of a law, with the option for whole or by block. This verb+resource combination is specific and distinguishes it from siblings like es_get_index (which likely provides block identifiers) and es_get_act (which may handle different act data).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines3/5Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies the tool is used to retrieve law text, but it does not explicitly state when to use this over alternatives like es_get_index or es_get_act. The schema mentions block_id from es_get_index, hinting at a workflow, but the description itself lacks direct guidance on tool selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior3/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare the tool as read-only, idempotent, and non-destructive. The description adds no extra behavioral context beyond the search criteria; it does not mention pagination, result limits, or any caveats. This is acceptable given the annotations but not particularly rich.
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 a single, front-loaded sentence that directly states the action, resource, and search criteria. Every word earns its place; there is no fluff 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 search tool with 5 optional parameters, a full output schema, and rich annotations, the description is minimally sufficient. It names the resource and criteria, while the schema and annotations handle the rest. Slightly more context (e.g., that this is for Spanish tax agency rulings) could improve it, but it is not incomplete.
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 descriptions cover 100% of parameters, each with meaningful detail (e.g., 'free-text query over the ruling corpus', 'earliest fecha salida, dd/mm/aaaa'). The tool description adds no semantic value beyond the schema, so a baseline 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 ('Search'), a specific resource ('DGT tax rulings (consultas tributarias)'), and search criteria ('by free text and/or date'). This distinguishes it from sibling tools like es_search_teac_doctrine or es_get_tax_ruling.
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 gives clear context on what is searched (DGT tax rulings) and the two search dimensions (free text and date). It implicitly indicates that this tool is for searching rather than retrieving a specific ruling, but it does not explicitly mention alternatives or exclusions.
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?
Annotations already declare readOnlyHint=true, openWorldHint=true, idempotentHint=true, and destructiveHint=false, covering the safety profile. The description adds the key behavioral distinction that this tool returns 'metadata' (not the full legal text), which sets expectations for what the agent receives. It does not describe error handling or return format, but the output schema exists, so the description need not cover those.
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 a single, front-loaded sentence with no fluff. It immediately states the verb and object, making it easy to scan. Every word contributes to the meaning.
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?
The tool is a simple read-only lookup by ID. The description clearly states the purpose and scope, the schema documents the parameter, annotations cover safety, and an output schema exists. There are no complex side effects or hidden requirements, so the description is fully complete for an agent to select and invoke the tool.
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 input schema has one parameter (boe_id) with a clear example (e.g., 'BOE-A-2018-16673'), and schema description coverage is 100%. The tool description only says 'by id', which adds no semantic detail beyond what the schema already provides. A baseline score of 3 is appropriate because the schema fully documents the parameter.
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 is precise: 'Fetch consolidated-law metadata from BOE by id.' It specifies a clear verb ('Fetch'), a specific resource ('consolidated-law metadata from BOE'), and a lookup method ('by id'). This differentiates it from sibling tools like es_get_text (which likely retrieves full text) and es_browse_gazette (which likely browses the gazette).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines3/5Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies that the tool should be used when you have a BOE identifier and need metadata for a consolidated law, but it does not explicitly contrast it with alternatives (e.g., 'for full text, use es_get_text'). There are no stated exclusions or when-not-to-use conditions, so the guidance remains implicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior3/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, openWorldHint, idempotentHint, and destructiveHint, so the safety profile is covered. The description adds context about the internal id system and ruling types, but no additional behavioral traits such as side effects, permissions, or limitations beyond what annotations provide.
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 a single, front-loaded sentence with no redundant information. It is appropriately sized for the tool's simplicity.
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?
Given the tool's low complexity (one parameter), rich annotations, and existing output schema, the description provides sufficient context for an agent to select and invoke the tool correctly. The essential facts—what it fetches and how—are present.
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 the parameter description already explaining what resolution_id is, how to obtain it, and including an example. The tool description adds no parameter-level meaning beyond the schema, so the baseline of 3 applies.
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 action ('Fetch'), the specific resource ('Tribunal Constitucional ruling'), and the distinguishing method ('by internal id'). It also specifies the ruling types (Sentencia/Auto/Declaracion), which differentiates it from sibling getter tools for other jurisdictions or document types.
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 implies usage when an internal id is available, but it does not explicitly name alternatives or when-not-to-use. The parameter description provides further guidance on obtaining the id, but the main description lacks direct contrasting with sibling search tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior3/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare the tool as read-only and idempotent, which the description's 'Fetch' aligns with. The description adds that the response includes the 'full resolution text,' which is useful but also covered by the output schema. No extra behavioral context (e.g., errors, pagination) is provided, so a mid-range score is appropriate.
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?
A single, front-loaded sentence delivers all essential information without any filler. Every word contributes to understanding the tool's purpose, making it an exemplary concise description.
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?
Given the simple get-by-id operation, the presence of a full output schema, and strong annotations, the description is sufficient. It correctly identifies the tool's purpose and key identifier, and no critical operational details are missing.
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 description for 'criterio_id' is thorough, explaining the source (es_search_teac_doctrine) and providing an example format, giving 100% coverage. The tool description itself merely restates 'by its DYCTEA id,' adding no further semantic value 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 action ('Fetch'), the resource ('one TEAC criterio'), and the distinguishing scope ('with the full resolution text', 'by its DYCTEA id'). This differentiates it from sibling get-tools that target other document types, making the purpose unambiguous.
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 implies the tool is used when you have a specific DYCTEA id, and the schema explicitly references es_search_teac_doctrine as the source of that id, providing clear context. However, it does not explicitly name alternatives or exclusions, so it stops short of a 5.
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/matematicsolutions/es-eli-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server