Skip to main content
Glama

Entrez Document Summaries

eutils_esummary
Read-onlyIdempotent

Fetch compact summaries for a set of UIDs to screen records by title, authors, journal, and date before downloading full records. Returns DocSums for UID lists or stored history sets.

Instructions

Fetch compact summaries (DocSums) for a set of UIDs.

Use this to screen records by title, authors, journal, and date before paying the cost of downloading full records.

Args:

  • db (string, optional): database, for example "pubmed". Required unless history is given.

  • uids (string[] | string, optional): UIDs or accessions.

  • history (object, optional): handle from eutils_esearch, eutils_epost, or eutils_elink.

  • retstart (number, optional): first record index, for history sets. Default 0.

  • retmax (number, optional): records to return for a history set. Default 20, max 500.

  • response_format ('markdown' | 'json'): output format. Default 'markdown'.

Supply either uids or history, never both.

Returns: { database, total, count, offset, has_more, next_offset?, batches?, records: [{ uid, title, authors[], journal, source, pubdate, volume, issue, pages, doi?, pmcid?, pubtype[], lang[] }] }

Non-PubMed databases return whichever scalar fields the DocSum carries.

Examples:

  • Use when: "show me the titles of these PMIDs" -> db="pubmed", uids=["31452104"]

  • Use when: screening a large result set -> pass history from eutils_esearch

  • Don't use when: you need the full abstract or sequence (use eutils_efetch)

Error Handling:

  • Refuses more than 500 UIDs per call and batches larger lists internally

  • Refuses to combine uids and history in one call

  • Rejects retmax above 500 rather than silently truncating

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
dbNoEntrez database, for example "pubmed". May be omitted when history is given.
uidsNoUIDs or accession.version identifiers, as an array or a comma-separated string. Example: ["31452104", "31452105"].
retmaxNoMaximum summaries to return when using history (default 20, max 500).
historyNoPointer to a UID set stored on the NCBI History server. Pass back the object returned by a previous call, unchanged.
retstartNoIndex of the first summary to return. Use with history.
response_formatNoOutput format: 'markdown' for human-readable text, or 'json' for machine-readable data. Default: 'markdown'.markdown

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
countYes
totalYes
offsetYes
batchesNoPresent when the UID list needed more than one request.
recordsYes
databaseYes
has_moreYes
next_offsetNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.1.0

TDQS

A4.6/5.0
Behavior4/5

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

Annotations already declare read-only, idempotent, non-destructive, open-world behavior, so the safety profile is covered. The description adds genuinely useful disclosure beyond that: internal batching above 500 UIDs, refusal to combine uids and history, and rejection of retmax >500 rather than silent truncation. It loses a point for paying output-format detail that the output schema already supplies.

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?

Front-loaded one-line purpose, then cleanly labelled Args/Returns/Examples/Error Handling sections that are easy to scan. The Returns block restates what the output schema already provides and the Args list largely mirrors the schema, so a small amount of redundancy keeps it just short of a 5.

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 a read-only summarizer with a full output schema and rich annotations, everything an agent needs is present: the either/or parameter rule, defaults, caps, batching behavior, and failure modes. Nothing about correct invocation is left to inference.

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 goes further by stating the cross-parameter constraint ("Supply either uids or history, never both") and the retmax default/max in prose form. That inter-parameter rule is the kind of semantics a schema rarely makes explicit.

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 ("Fetch compact summaries (DocSums) for a set of UIDs") and immediately scopes it against the heavier alternative: "Don't use when: you need the full abstract or sequence (use eutils_efetch)". An agent can distinguish this from eutils_efetch and eutils_esearch without opening any schema.

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?

Provides explicit "Use when" scenarios (screening titles by PMID, screening a large result set via history) and a "Don't use when" routing to eutils_efetch. It also names the sibling tools that produce the history handle, closing the loop on the prescreen-then-fetch workflow.

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