Skip to main content
Glama

AMIRA — Africa Multiple Research Data

Fetch one AMIRA record

fetch
Read-onlyIdempotent

Retrieve one AMIRA record by an id from the search tool. Returns { id, title, text, url, metadata } — text concatenates the record's descriptive fields, url is the citable AMIRA/Omeka page, and DOI / watch / listen URLs appear in metadata when available. Large text is OPT-IN: video and podcast transcripts, and publications' extracted PDF full text, are omitted by default (metadata reports has_transcript / transcript_length and has_fulltext / fulltext_length) because either can run to tens of thousands of characters. Set the matching include_* flag to append one, and page it with the offset/max_chars pair — the window is sized to what max_chars leaves after the metadata header, and *_returned_chars is exactly what landed in text, so the next page starts at offset + returned_chars with no gap.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
idYesA typed record id from search: item:7392 | pub:30001 | video:39218 | podcast:39121 | project:37700 | section:218
max_charsNoCap on the whole returned text body, default/max 25000
fulltext_offsetNoStart offset into the full text (chars), with include_fulltext
include_fulltextNoDefault false — set true to append a publication's extracted full text
transcript_offsetNoStart offset into the transcript (chars), with include_transcript
fulltext_max_charsNoMax full-text characters to return (default/max 25000)
include_transcriptNoDefault false — set true to append the video/podcast transcript
transcript_max_charsNoMax transcript characters to return (default/max 25000)

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
idNo
urlNo
textNo
errorNoPresent instead of the record when the id is unknown
titleNo
metadataNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A4.6/5.0
Behavior5/5

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

Annotations already declare readOnly/idempotent/non-destructive, but the description goes well beyond them: it discloses that transcripts and PDF full text are omitted by default, that metadata flags (has_transcript/transcript_length, has_fulltext/fulltext_length) signal availability, and precisely how the returned window is computed. That is exactly the kind of non-obvious behavioral detail annotations cannot convey.

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?

Purpose is front-loaded and every sentence carries information about return shape or pagination with no filler. It is a dense paragraph, and the pagination sentence is demanding to parse, but nothing is wasted.

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?

For an 8-parameter read tool with default-suppressed large fields, the description covers the return shape, the omission-by-default behavior, the enabling flags, and the paging protocol. Even with an output schema present, the pagination contract would otherwise be ambiguous, and it is fully specified here.

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 100%, so the baseline is 3, but the description adds genuine derivation semantics the schema lacks: the interaction between include_* flags, the offset/max_chars pair, how the window is sized against the metadata header, and the offset + *_returned_chars pagination rule. This is real added meaning rather than restating field docs.

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?

States a specific verb and resource ('Retrieve one AMIRA record') and immediately constrains the input source ('by an `id` from the search tool'). This clearly distinguishes it from the typed get_* siblings, since the agent knows this is the generic id-based fetch rather than a per-type getter.

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?

It tells the agent where the required `id` comes from (the search tool) and explains the opt-in workflow for large payloads, which is actionable context. However, it never names an alternative tool or states when to prefer get_research_item/get_video/get_podcast over this generic fetch, so the routing guidance is implicit rather than explicit.

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

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.