Skip to main content
Glama
nestordemeure

ANNO MCP Server

get_snippets

Retrieve page numbers and context snippets for a query within an ANNO newspaper issue, including matched terms in braces and stable citation URLs.

Instructions

Find which pages of one ANNO issue a query appears on, with context.

This is the cheap triage step and the reason ANNO is worth using: a hit resolves to a page with the matched terms in context, so a false positive can be rejected without downloading anything. It also works for periodicals, whose OCR text cannot be downloaded at all.

Args: identifier: Document id from a search result, e.g. "ANNO_dmo19330626" query: Terms to locate within the issue

Returns: Dictionary containing: - identifier: The document id - query: The query used - snippets: List of occurrences with: - page: Page number the occurrence sits on - page_label: Page label as printed - text: Snippet with matched terms in {braces} - url: Stable citation URL for that exact page - image_url: IIIF crop of the matched region

Note: ANNO returns at most 10 snippets per issue however many hits it reports, so a heavily-covered issue shows a sample rather than every occurrence.

Examples: get_snippets("ANNO_dmo19330626", "Hanussen") get_snippets("ANNO_wsb18840309", "Cumberland")

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
queryYes
identifierYes
Behavior4/5

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

No annotations are provided, so the description carries full burden. It discloses the 10-snippet limit, works for periodicals, and explains the return format. However, it does not mention authentication requirements, rate limits, or whether results are cached, leaving minor gaps.

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 well-organized with Args, Returns, Note, and Examples sections. Every sentence adds value, and the purpose is stated upfront. It is appropriately sized for the tool's complexity.

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, the description fully defines the return structure. It covers all necessary aspects: purpose, parameters, return values, limitations, and usage context. Distinguishes from sibling tools effectively.

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

Parameters5/5

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

Schema coverage is 0%, so the description must compensate. It provides clear definitions for both parameters: identifier as 'Document id from a search result, e.g. ANNO_dmo19330626' and query as 'Terms to locate within the issue', plus concrete examples.

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 a specific verb+resource: 'Find which pages of one ANNO issue a query appears on, with context.' This clearly distinguishes from siblings like search_anno and download_text.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

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

Explicitly frames the tool as a cheap triage step, explains why it's useful (false positives can be rejected without download), and notes it works for periodicals where OCR text cannot be downloaded. This provides clear when-to-use guidance.

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

Install Server

Other Tools

Latest Blog Posts

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/nestordemeure/anno-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server