Skip to main content
Glama

leer_pdf

Extract text from official Melilla gazette PDFs (BOME) or legacy portal PDFs using a CVE identifier or direct URL, with pagination for long documents and detection of scanned pages.

Instructions

Texto del PDF de cualquier CVE: boletín, sumario (BOME-S), artículo (BOME-A) o página (BOME-P / BOME-PX); o, con url en vez de cve, de un PDF del portal antiguo de melilla.es.

Da exactamente uno: cve, o url (solo las URL https://www.melilla.es/mandar.php/... que devuelven buscar_bome_antiguo y ver_bome_antiguo, por página o del boletín entero; se rechaza cualquier otra). Las páginas sin texto extraíble (escaneadas, frecuentes en los boletines antiguos) salen con sin_texto=true y un aviso. Paginación: devuelve páginas enteras hasta max_caracteres (1000-100000, por defecto 20000), siempre al menos una; una página más larga que max_caracteres se corta ahí (cortada=true). Si 'siguiente' no es null, vuelve a llamar con desde_pagina y desde_caracter de 'siguiente'; null significa que no queda más.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
cveNo
urlNo
desde_paginaNo
desde_caracterNo
max_caracteresNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.0.4

TDQS

A4.7/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full burden and does so thoroughly. It discloses scanned-page behavior (sin_texto=true and a warning), truncation behavior (cortada=true), page-count guarantees, and the meaning of a null 'siguiente' as end of results. This is rich behavioral detail beyond the schema.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is dense but every sentence earns its place: purpose first, then input constraints, then edge-case behavior, then pagination. It is well-structured in short paragraphs and avoids filler.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given no output schema and no annotations, the description is remarkably complete. It covers input selection, URL restrictions, scanned-page handling, truncation, pagination continuation, and termination conditions. An agent has enough information to call the tool correctly and interpret its results.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must compensate. It explains cve and url formats, the exclusivity between them, max_caracteres range and default, and how desde_pagina/desde_caracter are used for continuation. The two pagination parameters are described indirectly via 'siguiente' rather than with their own precise definitions, but the meaning is recoverable.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states exactly what the tool returns: the text of a PDF identified by a CVE or by a specific old-portal URL. It distinguishes the accepted document types (boletín, sumario, artículo, página) and the URL source, making the tool's scope clear relative to its 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/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives explicit input constraints: exactly one of cve or url, only URLs returned by buscar_bome_antiguo and ver_bome_antiguo, and rejection of any other URL. It also explains the pagination loop with 'siguiente'. It does not explicitly name sibling tools as alternatives, but the context is clear enough for correct invocation.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.