Skip to main content
Glama

campus_research_verify_evidence

Read-onlyIdempotent

Verify a quoted excerpt against its exact PDF page or document section, returning a stable evidence ID for research citations.

Instructions

Verify a client-selected excerpt at its exact PDF page or document section. For an indexed PDF, pass documentId, analysisId and original URL to reuse the prepared page and SHA-256 without downloading again; campus_research_index_status with both IDs then reports the evidence for this analysis only. Returns a stable evidenceId. Textual integrity is checked, but the client AI must still judge whether the excerpt supports its claim.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
urlYes
pageNoPágina PDF exacta donde el cliente encontró el fragmento.
claimNoAfirmación concreta que se quiere respaldar con este fragmento. El comprobante queda vinculado a ella; una paráfrasis requiere evaluación semántica del cliente.
formatNoauto
excerptYesFragmento atribuido a la fuente. Campus comprueba que aparezca en el texto extraído de la página o sección indicada.
sectionNoNúmero de sección exacto devuelto por campus_research_read_document.
analysisIdNoID de la consulta devuelto al iniciar el índice; registra lecturas y verificaciones de este análisis por separado.
documentIdNoID de un índice PDF preparado. Reutiliza sus páginas y su SHA-256 sin descargar el PDF otra vez.
expectedSha256NoSHA-256 devuelto por la lectura anterior. Si el documento cambió, la evidencia se rechaza.
inspectPreviousPageNoEn citas textuales PDF, comprueba si las referencias empezaron en alguna página anterior; páginas muy lejanas quedan sin aprobación automática.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed5 schema fields changedv2.0.2
    • addedInput schema / properties / analysisId
      Added value: +{
      +  "description": "ID de la consulta devuelto al iniciar el índice; registra lecturas y verificaciones de este análisis por separado.",
      +  "format": "uuid",
      +  "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$",
      +  "type": "string"
      +}
    • addedInput schema / properties / claim
      Added value: +{
      +  "description": "Afirmación concreta que se quiere respaldar con este fragmento. El comprobante queda vinculado a ella; una paráfrasis requiere evaluación semántica del cliente.",
      +  "maxLength": 4000,
      +  "minLength": 5,
      +  "type": "string"
      +}
    • addedInput schema / properties / documentId
      Added value: +{
      +  "description": "ID de un índice PDF preparado. Reutiliza sus páginas y su SHA-256 sin descargar el PDF otra vez.",
      +  "format": "uuid",
      +  "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$",
      +  "type": "string"
      +}
    • changedInput schema / properties / format / enum
      Previous value: -[
      -  "auto",
      -  "pdf",
      -  "html",
      -  "text",
      -  "markdown",
      -  "xml",
      -  "jats",
      -  "docx",
      -  "epub"
      -]New value: +[
      +  "auto",
      +  "pdf",
      +  "html",
      +  "text",
      +  "markdown",
      +  "xml",
      +  "jats",
      +  "docx",
      +  "epub",
      +  "csv",
      +  "xlsx"
      +]
    • addedInput schema / properties / inspectPreviousPage
      Added value: +{
      +  "default": false,
      +  "description": "En citas textuales PDF, comprueba si las referencias empezaron en alguna página anterior; páginas muy lejanas quedan sin aprobación automática.",
      +  "type": "boolean"
      +}
  2. Addedv2.0.1

TDQS

A4/5.0
Behavior4/5

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

Annotations already declare readOnly/idempotent/non-destructive, but the description adds real behavior: evidence is rejected if expectedSha256 no longer matches, a stable evidenceId is returned, and integrity checking is textual only (semantic judgment left to the caller). That exceeds the annotation payload meaningfully.

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

Conciseness4/5

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

Three sentences, front-loaded with the core action, then reuse mechanics, then the returned artifact and the caller's residual responsibility. Dense but every clause carries information; the metadata-heavy schema itself is what makes it feel long.

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

Completeness4/5

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

For a 10-parameter, no-output-schema tool, the description covers the primary workflow, the reuse path, the failure mode (hash mismatch), and the return handle (evidenceId). Optional params like inspectPreviousPage and expectedSha256 are handled adequately by schema text.

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 coverage is 80%, so baseline is 3, but the description adds cross-parameter semantics the schema cannot express: documentId/analysisId/URL must be passed together to reuse a prepared index instead of re-downloading. Page/section/format details remain in the schema.

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

Purpose4/5

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

States a precise verb and resource: 'Verify a client-selected excerpt at its exact PDF page or document section.' An agent can tell this apart from verify_quote/verify_citation at a high level, though it never explicitly contrasts itself with those close 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?

Gives actionable context: pass documentId+analysisId+original URL to reuse a prepared page and SHA-256, and points to campus_research_index_status for reporting. It also sets the boundary of responsibility ('the client AI must still judge whether the excerpt supports its claim'). Missing an explicit 'use verify_quote instead when...' routing against siblings.

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

Deploy Server

Other Tools