Skip to main content
Glama

Get Summary

get_summary
Read-onlyIdempotent

Resolve PubMed IDs (from search_pubmed) to citation metadata: title, authors (plain name strings), journal, publication date, DOI, and author_details[] with per-author detail (name, affiliations[] verbatim from the MEDLINE record, and any emails[] found inside those affiliation strings — empty arrays when the record has none), index-aligned with authors[]. Batch up to ~200 IDs per call — pass the array search_pubmed returned, or a comma-separated string — much cheaper than calling per-ID. Use when you have PMIDs and need the citation or a corresponding author's institution/contact; for the abstract text use get_abstract instead.

Input Schema

NameRequiredDescriptionDefault
idsYesPubMed IDs, either as an array (["33579999","34567890"] — what search_pubmed returns) or as a comma-separated string ("33579999,34567890").

Output Schema

NameRequiredDescriptionDefault
articlesYesArray of article metadata summaries

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed6 schema fields changed
    • addedOutput schema / properties / articles / items / properties / author_details
      Added value: +{
      +  "description": "Per-author detail, index-aligned with authors[]: name, affiliations (verbatim from efetch XML), and any emails found inside them",
      +  "items": {
      +    "properties": {
      +      "affiliations": {
      +        "description": "Verbatim AffiliationInfo/Affiliation strings from efetch XML; empty if the record has none",
      +        "items": {
      +          "type": "string"
      +        },
      +        "type": "array"
      +      },
      +      "emails": {
      +        "description": "Email addresses found inside this author's affiliation strings by plain regex; empty if none present",
      +        "items": {
      +          "type": "string"
      +        },
      +        "type": "array"
      +      },
      +      "name": {
      +        "description": "Author name as indexed by esummary (e.g. \"Smith JA\")",
      +        "type": "string"
      +      }
      +    },
      +    "required": [
      +      "name",
      +      "affiliations",
      +      "emails"
      +    ],
      +    "type": "object"
      +  },
      +  "type": "array"
      +}
    • changedOutput schema / properties / articles / items / properties / authors / description
      Previous value: -"Per-author name, affiliations (verbatim from efetch XML), and any emails found inside them"New value: +"Author names as plain strings, e.g. \"Smith JA\" (unchanged shape; see author_details for affiliations/emails)"
    • removedOutput schema / properties / articles / items / properties / authors / items / properties
      Removed value: -{
      -  "affiliations": {
      -    "description": "Verbatim AffiliationInfo/Affiliation strings from efetch XML; empty if the record has none",
      -    "items": {
      -      "type": "string"
      -    },
      -    "type": "array"
      -  },
      -  "emails": {
      -    "description": "Email addresses found inside this author's affiliation strings by plain regex; empty if none present",
      -    "items": {
      -      "type": "string"
      -    },
      -    "type": "array"
      -  },
      -  "name": {
      -    "description": "Author name as indexed by esummary (e.g. \"Smith JA\")",
      -    "type": "string"
      -  }
      -}
    • removedOutput schema / properties / articles / items / properties / authors / items / required
      Removed value: -[
      -  "name",
      -  "affiliations",
      -  "emails"
      -]
    • changedOutput schema / properties / articles / items / properties / authors / items / type
      Previous value: -"object"New value: +"string"
    • changedOutput schema / properties / articles / items / required
      Previous value: -[
      -  "pmid",
      -  "title",
      -  "authors",
      -  "journal",
      -  "pub_date",
      -  "volume",
      -  "issue",
      -  "pages",
      -  "pub_types",
      -  "doi",
      -  "url"
      -]New value: +[
      +  "pmid",
      +  "title",
      +  "authors",
      +  "author_details",
      +  "journal",
      +  "pub_date",
      +  "volume",
      +  "issue",
      +  "pages",
      +  "pub_types",
      +  "doi",
      +  "url"
      +]
  2. Changed4 schema fields changed
    • changedOutput schema / properties / articles / items / properties / authors / description
      Previous value: -"List of author names"New value: +"Per-author name, affiliations (verbatim from efetch XML), and any emails found inside them"
    • addedOutput schema / properties / articles / items / properties / authors / items / properties
      Added value: +{
      +  "affiliations": {
      +    "description": "Verbatim AffiliationInfo/Affiliation strings from efetch XML; empty if the record has none",
      +    "items": {
      +      "type": "string"
      +    },
      +    "type": "array"
      +  },
      +  "emails": {
      +    "description": "Email addresses found inside this author's affiliation strings by plain regex; empty if none present",
      +    "items": {
      +      "type": "string"
      +    },
      +    "type": "array"
      +  },
      +  "name": {
      +    "description": "Author name as indexed by esummary (e.g. \"Smith JA\")",
      +    "type": "string"
      +  }
      +}
    • addedOutput schema / properties / articles / items / properties / authors / items / required
      Added value: +[
      +  "name",
      +  "affiliations",
      +  "emails"
      +]
    • changedOutput schema / properties / articles / items / properties / authors / items / type
      Previous value: -"string"New value: +"object"
  3. Changed4 schema fields changed
    • changedInput schema / examples
      Previous value: -[
      -  {
      -    "ids": "33579999,34567890"
      -  }
      -]New value: +[
      +  {
      +    "ids": [
      +      "33301246",
      +      "32000001"
      +    ]
      +  },
      +  {
      +    "ids": "33579999,34567890"
      +  }
      +]
    • changedInput schema / properties / ids / description
      Previous value: -"Comma-separated PubMed IDs (e.g., \"33579999,34567890\")"New value: +"PubMed IDs, either as an array ([\"33579999\",\"34567890\"] — what search_pubmed returns) or as a comma-separated string (\"33579999,34567890\")."
    • addedInput schema / properties / ids / items
      Added value: +{
      +  "type": "string"
      +}
    • changedInput schema / properties / ids / type
      Previous value: -"string"New value: +[
      +  "string",
      +  "array"
      +]
  4. Changed1 schema field changed
    • changedOutput schema / (root)
      Previous value: -nullNew value: +{
      +  "properties": {
      +    "articles": {
      +      "description": "Array of article metadata summaries",
      +      "items": {
      +        "properties": {
      +          "authors": {
      +            "description": "List of author names",
      +            "items": {
      +              "type": "string"
      +            },
      +            "type": "array"
      +          },
      +          "doi": {
      +            "description": "Digital Object Identifier",
      +            "type": [
      +              "string",
      +              "null"
      +            ]
      +          },
      +          "issue": {
      +            "description": "Journal issue",
      +            "type": [
      +              "string",
      +              "null"
      +            ]
      +          },
      +          "journal": {
      +            "description": "Full journal name",
      +            "type": [
      +              "string",
      +              "null"
      +            ]
      +          },
      +          "pages": {
      +            "description": "Page range",
      +            "type": [
      +              "string",
      +              "null"
      +            ]
      +          },
      +          "pmid": {
      +            "description": "PubMed ID",
      +            "type": "string"
      +          },
      +          "pub_date": {
      +            "description": "Publication date",
      +            "type": [
      +              "string",
      +              "null"
      +            ]
      +          },
      +          "pub_types": {
      +            "description": "Publication types",
      +            "items": {
      +              "type": "string"
      +            },
      +            "type": "array"
      +          },
      +          "title": {
      +            "description": "Article title",
      +            "type": "string"
      +          },
      +          "url": {
      +            "description": "PubMed article URL",
      +            "type": "string"
      +          },
      +          "volume": {
      +            "description": "Journal volume",
      +            "type": [
      +              "string",
      +              "null"
      +            ]
      +          }
      +        },
      +        "required": [
      +          "pmid",
      +          "title",
      +          "authors",
      +          "journal",
      +          "pub_date",
      +          "volume",
      +          "issue",
      +          "pages",
      +          "pub_types",
      +          "doi",
      +          "url"
      +        ],
      +        "type": "object"
      +      },
      +      "type": "array"
      +    }
      +  },
      +  "required": [
      +    "articles"
      +  ],
      +  "type": "object"
      +}
  5. Changed1 schema field changed
    • addedInput schema / examples
      Added value: +[
      +  {
      +    "ids": "33579999,34567890"
      +  }
      +]
  6. First observed

TDQS

A4.8/5.0
Behavior5/5

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

Annotations already declare readOnly/idempotent/non-destructive, so the bar is lower, yet the description still adds real behavioral context: a ~200 ID batch ceiling, cost guidance, and precise return semantics (empty arrays when emails/affiliations are absent, affiliations verbatim from the MEDLINE record, index-alignment with authors[]).

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 with purpose, then format, then batching, then the sibling pointer — a sensible funnel. The first sentence is long and comma-heavy due to the author_details clause, which costs a little readability but every clause carries distinct information.

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?

An output schema exists so return-value explanation is not strictly required, yet the description still clarifies the non-obvious parts (verbatim affiliations, email extraction, index alignment). Combined with annotations and 100% schema coverage, an agent has everything needed to call this correctly.

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 100%, so the baseline is 3, but the description adds value the schema lacks: a concrete batch-size limit (~200 IDs per call) and the intent that the array can be passed straight through from search_pubmed. The per-parameter format detail largely duplicates the schema.

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+resource: resolving PubMed IDs to citation metadata, and enumerates exactly what is returned (title, authors, journal, date, DOI, author_details[]). It explicitly contrasts itself with get_abstract and references search_pubmed as the upstream source, so an agent can place it in the workflow without opening a 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?

Gives an explicit when-to-use ('when you have PMIDs and need the citation or a corresponding author's institution/contact') and a when-not ('for the abstract text use get_abstract instead'), plus a batching instruction that names the cheaper alternative to per-ID calls.

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.