io.github.matematicsolutions/es-eli-mcp
MCP server for Spanish BOE consolidated legislation, grounded by id/ELI with verifiable citations.
Versions
0.1.0latestTools 12
es_get_act Fetch consolidated-law metadata from BOE by id. Args: boe_id: a BOE identifier, e.g. ``"BOE-A-2018-16673"``. Returns: ``Act`` with ``eli_uri``, ``human_readable_citation``, ``source_url``.
es_get_index List the block index (articles, titles) of a consolidated law. Args: boe_id: a BOE identifier, e.g. ``"BOE-A-2018-16673"``. Returns: ``IndexResult`` with ``blocks`` (each ``id`` is usable as ``block_id`` in es_get_text).
es_get_text Fetch the consolidated text (XML) of a law, whole or by block. Args: boe_id: a BOE identifier, e.g. ``"BOE-A-2018-16673"``. block_id: optional block id from ``es_get_index`` (e.g. ``"a1"`` for Articulo 1). Omit for the full consolidated text (can be large). Returns: ``LawText`` with ``eli_uri``, ``human_readable_citation``, ``source_url`` and ``content`` (XML).
es_browse_gazette List documents published in the official BOE gazette on a date. Args: date: the publication date as ``YYYYMMDD`` (e.g. ``"20181206"``). Returns: ``GazetteResult`` with the documents (``id`` + ``titulo``) published that day.
es_get_constitutional_ruling Fetch a Tribunal Constitucional ruling (Sentencia/Auto/Declaracion) by internal id. Args: resolution_id: the internal Sistema HJ sequential id (e.g. ``"6670"`` for STC 31/2010). Get this id either from ``es_search_constitutional`` or from a hyperlink inside another ruling's text (``.../Resolucion/Show/{id}``). Returns: ``ConstitutionalRuling`` with ``ecli``, ``human_readable_citation`` (e.g. "STC 31/2010, de 28 de junio"), ``source_url``, ``encabezamiento`` (summary of the case) and ``fallo`` (the operative ruling/holding).
es_search_constitutional Resolve a Tribunal Constitucional citation (number + year) to the full ruling. Args: numero: the citation number, e.g. ``"31"`` for "STC 31/2010". anno: the citation year, e.g. ``"2010"``. tipo: one of ``"SENTENCIA"`` (default, -> STC), ``"AUTO"`` (-> ATC), or ``"DECLARACION"`` (-> DTC). Returns: ``ConstitutionalRuling`` for the matching resolution (same shape as ``es_get_constitutional_ruling``).
es_search_tax_rulings Search DGT tax rulings (consultas tributarias) by free text and/or date. Args: texto: free-text query over the ruling corpus (e.g. ``"aerotermia"``). fecha_desde: earliest ``fecha salida``, ``dd/mm/aaaa``. fecha_hasta: latest ``fecha salida``, ``dd/mm/aaaa`` (requires fecha_desde). database: ``"vinculantes"`` (default, V-numbers, binding) or ``"generales"``. page: 1-based results page (20 hits per page). Returns: ``TaxRulingSearchResult`` with ``total`` and hits carrying ``num_consulta`` (feed it to ``es_get_tax_ruling`` for the full ruling).
es_get_tax_ruling Fetch a full DGT tax ruling by its official number. Args: numero_consulta: the official NUM-CONSULTA, e.g. ``"V0001-25"`` (vinculante) or ``"0001-03"`` (general). Returns: ``TaxRuling`` with ``normativa``, ``descripcion_hechos``, ``cuestion_planteada``, the full ``contestacion``, ``human_readable_citation`` and ``source_url``.
es_search_teac_doctrine Search TEAC doctrine (DYCTEA criterios) by RG segments and/or date range. Args: sede: RG sede segment, e.g. ``"00"`` (TEAC) - first part of RG 00/07082/2025. numero: RG claim number segment, e.g. ``"07082"``. anno: RG year segment, e.g. ``"2025"``. fecha_desde: earliest resolution date, ``dd/mm/aaaa``. fecha_hasta: latest resolution date, ``dd/mm/aaaa``. page: 1-based results page (10 hits per page, portal caps display at 100). Returns: ``TeacDoctrineSearchResult`` with ``total`` and hits carrying ``criterio_id`` (feed it to ``es_get_teac_criterio``). No free-text search exists on DYCTEA.
es_get_teac_criterio Fetch one TEAC criterio (with the full resolution text) by its DYCTEA id. Args: criterio_id: the DYCTEA id from ``es_search_teac_doctrine``, e.g. ``"00/07082/2025/00/0/1"``. Returns: ``TeacCriterioResult`` with ``asunto``, ``criterio``, ``referencias_normativas``, the full ``texto_resolucion``, ``human_readable_citation`` and ``source_url``.
es_search_aepd_resolutions Search AEPD (Spanish DPA) resolutions by full text and/or signature date. Args: texto: full-text query (Solr), e.g. ``"videovigilancia"`` - an expediente number also works as an exact query. fecha_desde: earliest signature date, ``dd/mm/aaaa``. fecha_hasta: latest signature date, ``dd/mm/aaaa``. page: 1-based results page (10 hits per page). Returns: ``AepdSearchResult`` with ``total`` and hits carrying ``expediente`` and the full-text ``pdf_url`` permalink.
es_get_aepd_resolution Resolve an AEPD expediente number to its resolution and full-text PDF permalink. Args: expediente: the AEPD procedure number, e.g. ``"PS-00615-2025"`` (PS = sanciones, PD = derechos, AI = actuaciones de investigacion). Returns: ``AepdResolutionModel`` with ``pdf_url`` (the full resolution PDF), ``fecha_firma``, ``human_readable_citation`` and ``source_url``.
Permissions 3
network medium filesystem low env_vars low