MCP (Model Context Protocol) server for accessing the Spanish Official State Gazette (Boletín Oficial del Estado) API to query consolidated legislation, daily summaries, and auxiliary tables.
The server demonstrates solid schema coverage with 31 tools, most with explicit descriptions and proper JSON Schema input validation. However, there are consistent gaps in parameter descriptions, limited error handling guidance, and insufficient context about tool relationships and composition. Tool naming is generally clear and action-oriented (search_, get_, list_), and descriptions are present for all tools. Output schemas are partially documented but lack explicit field-level descriptions. The server shows good use of regex patterns for law_id validation. Main weaknesses: many parameters lack descriptions (e.g., limit defaults without explanation of constraints), no recovery guidance in error scenarios, and minimal support for chaining tools through shared ID fields. The auxiliary tools (17-26) are less mature than legislation tools (1-9).
Compare versions of a law between two dates
Returns a compact structural summary of a law: list of levels with type, id, title and number of direct children. More concise than get_law_structure, ideal for quickly understanding the organization.
Find laws related to a given law through modifications, derogations, and references
Get the daily BOE summary for a specific date
Get BOE summary documents for a date range
Get the BORME (Spanish Commercial Gazette) summary
Get the description for a specific code from auxiliary tables
Auxiliary table tools (get_legal_ranges_table, get_scopes_table, get_consolidation_states_table) lack meaningful descriptions
Many parameters lack descriptions explaining their purpose and constraints, particularly 'limit' and 'max_items' parameters across summary tools which do not specify min/max bounds
No error handling guidance or recovery patterns visible in tool definitions. LLMs cannot determine what to do when a law_id is invalid or when a search returns no results
Inferred effective spec: <=2025-11-25.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-22 | D | 56 | <=2025-11-25 | v2 |
| 2026-03-09 | F | 30 | - | v1 |
Get consolidated law details including metadata, analysis, and full text
Get the table of law consolidation states
Get the table of government departments/ministries
Get lightweight metadata for a law without full text
Get the structural hierarchy of a law (chapters, articles, sections, etc.)
Get the complete text of a specific block (article, section, etc.) within a law
Get the table of legal/normative ranges (Ley, Real Decreto, Orden, etc.)
Get the table of legal matters/subjects
Get the table of scopes (estatal, autonómico, local)
Get a weekly summary of BOE publications
Group BOE summary documents by department/ministry
List laws related to a given law with granular control over relationship types
List all topics/matters associated with a specific law
Converts a free text reference to a law or BOE into a normalized form. Accepts texts like 'Ley 40/2015', 'Real Decreto 123/2020', 'Orden TED/1234/2023', 'BOE del 3 de mayo de 2024, sec. I', etc. Returns the type, normalized identifier and other extracted fields.
Returns the text of a law in manageable fragments. Allows the LLM to read long laws piece by piece without loading them entirely. Uses the cursor returned in next_cursor to get the next fragment.
Read and parse BOE PDF documents
Search across all auxiliary tables using a single query
Search consolidated legislation using a query string
Advanced search in the departments table with filters
Search for articles within a law by text
Search recent BOE publications by search terms over a date range
Suggest relevant filters for auxiliary table searches based on context
Returns a skeleton of the law: list of blocks (preamble, articles, dispositions) with their title and first paragraph of each one, without full text. Useful for getting a quick overview of the content before diving deeper.
Search for BOE changes matching keywords over recent days
Output schemas not documented in tool definitions. The field structure returned by each tool is not visible to LLMs, preventing proper chaining
Date parameters (from_date, to_date, date) specify 'YYYYMMDD format' in descriptions but do not include regex patterns in schema to enforce this constraint
Tools returning paginated results (search_consolidated_legislation, search_law_articles, etc.) do not indicate presence of pagination cursors or next_token fields in responses
Tool composition lacks guidance on when to use overlapping tools. e.g., get_consolidated_law vs get_law_text_block vs paginate_law_text vs summarize_law_sections are all ways to retrieve law content but lack selection guidance
suggest_auxiliary_filters returns filter suggestions but no documentation of what filters it suggests or which auxiliary tables they apply to