pubmed-mcp-server
Server Details
Search PubMed/Europe PMC, fetch articles and full text (PMC/EPMC/Unpaywall), citations, MeSH terms.
- Status
- Healthy
- Last Tested
- Transport
- Streamable HTTP
- URL
- Repository
- cyanheads/pubmed-mcp-server
- GitHub Stars
- 134
- Server Listing
- pubmed-mcp-server
Glama MCP Gateway
Connect through Glama MCP Gateway for full control over tool access and complete visibility into every call.
Full call logging
Every tool call is logged with complete inputs and outputs, so you can debug issues and audit what your agents are doing.
Tool access control
Enable or disable individual tools per connector, so you decide what your agents can and cannot do.
Managed credentials
Glama handles OAuth flows, token storage, and automatic rotation, so credentials never expire on your clients.
Usage analytics
See which tools your agents call, how often, and when, so you can understand usage patterns and catch anomalies.
Tool Definition Quality
Average 4.3/5 across 10 of 10 tools scored.
Each tool targets a distinct operation: ID conversion, Europe PMC search, article fetch, fulltext fetch, related articles, citation formatting, citation lookup, MeSH lookup, PubMed search, and spell check. No functional overlap.
Tool names consistently use the 'pubmed_' prefix followed by a descriptive phrase, with most following a verb_noun pattern (e.g., pubmed_fetch_articles). However, 'pubmed_europepmc_search' reverses the order (noun_verb), which is a minor inconsistency.
10 tools cover a comprehensive range of PubMed-related tasks without being excessive. Each tool serves a distinct purpose, making the set well-scoped for biomedical literature retrieval.
The tool set covers all major PubMed operations: search, fetch metadata, fetch fulltext, convert IDs, find related articles, format citations, lookup citations, explore MeSH, and spell-check queries. No obvious gaps for a read-only PubMed interface.
Available Tools
11 toolspubmed_convert_idsPubmed Convert IdsARead-onlyInspect
Convert between article identifiers (DOI, PMID, PMCID). Accepts up to 50 IDs of a single type per request. Only resolves articles indexed in PubMed Central — for articles not in PMC, use pubmed_search_articles instead.
| Name | Required | Description | Default |
|---|---|---|---|
| ids | Yes | Article identifiers to convert. All IDs must be the same type. DOIs: "10.1093/nar/gks1195", PMIDs: "23193287", PMCIDs: "PMC3531190" (the "PMC" prefix is optional — bare digits like "3531190" are also accepted). | |
| idType | Yes | The type of IDs being submitted. Required so the API can unambiguously resolve them. |
Output Schema
| Name | Required | Description |
|---|---|---|
| records | Yes | Conversion results, one per input ID |
| totalConverted | Yes | Number of IDs successfully converted |
| totalSubmitted | Yes | Number of IDs submitted |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description discloses the read-only nature (consistent with readOnlyHint=true) and adds behavioral details: single ID type per request, limit of 50, and PMC-only coverage. No contradiction with annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences, front-loaded with the main purpose, and every sentence provides essential information without redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the presence of an output schema and full parameter documentation, the description covers input constraints, limitations, and alternatives, making it fully complete for a conversion tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 100% schema coverage, the description adds valuable formatting examples for each ID type and explains that the PMC prefix is optional. For idType, it clarifies the necessity for unambiguous resolution, exceeding schema documentation.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Convert between article identifiers (DOI, PMID, PMCID)', using a specific verb and resource. It distinguishes from sibling tools like pubmed_search_articles and pubmed_fetch_articles by focusing on identifier conversion.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly limits usage to up to 50 IDs of a single type and notes the restriction to PubMed Central articles, directing users to pubmed_search_articles for non-PMC articles. This provides clear when-to-use and when-not-to-use guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
pubmed_europepmc_fetchPubmed Europepmc FetchARead-onlyInspect
Fetch complete Europe PMC records — including the full, untruncated abstract — for records addressed by source plus epmcId. Pairs with pubmed_europepmc_search, which returns bounded abstractSnippet values and flags cut ones with abstractTruncated: true; pass those hits' source and epmcId here to read the whole abstract. This is the retrieval path for preprint (PPR), patent (PAT), and Agricola (AGR) records, which frequently carry no PMID and no DOI, so pubmed_fetch_articles and pubmed_fetch_fulltext cannot address them. Up to 25 records per call.
| Name | Required | Description | Default |
|---|---|---|---|
| records | Yes | Records to retrieve, each addressed by the `source` and `epmcId` of a `pubmed_europepmc_search` hit. The whole batch resolves in one Europe PMC request. |
Output Schema
| Name | Required | Description |
|---|---|---|
| notice | No | Guidance when one or more requested records could not be resolved. Absent when every record came back. |
| records | Yes | Resolved records, in the order Europe PMC returned them |
| notFound | No | Requested `source` + `epmcId` pairs Europe PMC returned no record for |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and openWorldHint=true. The description adds value by explaining that it returns the full untruncated abstract (beyond the truncated snippet from search), that it pairs with pubmed_europepmc_search, and that up to 25 records can be fetched per call. This provides useful behavioral context beyond the annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise with only three sentences, each focused and front-loaded: first sentence states the core purpose, second explains the pairing with search, third covers edge cases and alternatives. No redundant information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the output schema exists (external), the description does not need to detail return values. It covers the essential contextual points: batch limit, pairing with search, and when this tool is the only option. Completeness is high, though some users might want confirmation of ordering or pagination, but these are not critical for a simple fetch tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% as both parameters (source and epmcId) are described in the schema. The description adds semantic value by instructing to copy values from search hits, specifying that epmcId for MED records is the PMID, and explaining the behavior for PMC records (resolves to canonical MED record). This goes beyond raw schema descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Fetch complete Europe PMC records') and the resource (records addressed by source+epmcId), specifying that it includes the full untruncated abstract. It distinguishes from siblings by explicitly naming pubmed_europepmc_search as the companion tool that returns truncated abstracts, making the purpose unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides explicit guidance on when to use this tool: after pubmed_europepmc_search when abstract is truncated, and for records lacking PMID/DOI (PPR, PAT, AGR) where pubmed_fetch_articles and pubmed_fetch_fulltext cannot be used. It also states the batch limit of 25 records per call, leaving no ambiguity about usage context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
pubmed_europepmc_searchPubmed Europepmc SearchARead-onlyInspect
Search Europe PMC, a broad open-access biomedical corpus. Surfaces preprints (source: PPR), patents (source: PAT), Agricola (source: AGR), plus everything in PubMed (MED) and PMC. Use when additional coverage is needed — preprints and EPMC-only OA records are the typical recovery. Paginate via cursorMark. Defaults to MED, PMC, and PPR; pass sources to include PAT / AGR. Abstracts arrive as a bounded abstractSnippet with abstractTruncated marking the cut ones — pass a hit’s source and epmcId to pubmed_europepmc_fetch for the complete abstract.
| Name | Required | Description | Default |
|---|---|---|---|
| sort | No | Optional EPMC sort: `<field> asc|desc`. Documented sortable fields: `P_PDATE_D` (publication date), `CITED` (citation count), `AUTH_FIRST` (first author surname), `PUB_YEAR` (publication year). Examples: `P_PDATE_D desc` (newest first), `CITED desc` (most cited). Omit for relevance ranking. Fields outside the documented set are rejected by EPMC. Note: `P_PDATE_D` is ignored for preprint-only (`sources: ["PPR"]`) result sets — preprints have no populated publication date, so use `PUB_YEAR` to order preprints by date. | |
| query | Yes | Europe PMC search query. Supports field tokens like `AUTH:"<name>"`, `JOURNAL:"<title>"`, `TITLE:"<words>"`, `PUB_YEAR:[2020 TO 2024]`, `DOI:"..."`, `EXT_ID:<pmid> AND SRC:MED`, `PMCID:PMC<digits>`. Identifier tokens combined with `AND SRC:` must be unquoted — the quoted form matches nothing. Free text is matched broadly across abstract/title/keywords. | |
| sources | No | Filter to specific EPMC sources. Defaults to MED, PMC, PPR when omitted. Pass an explicit array including PAT or AGR to broaden coverage. Allowed values: MED, PMC, PPR, PAT, AGR. | |
| pageSize | No | Results per page. Max 100 per EPMC API. | |
| cursorMark | No | Pagination cursor. Use `*` (default) for the first page; pass the previous response's `nextCursorMark` for subsequent pages. | * |
| resultType | No | `core` returns abstract, IDs, dates, license; `lite` is a smaller payload with IDs and titles only. | core |
Output Schema
| Name | Required | Description |
|---|---|---|
| hits | Yes | Matching Europe PMC records, in the order EPMC returned them |
| query | Yes | Effective query string echoed by Europe PMC |
| notice | No | Optional guidance when results are empty or paging overshot |
| searchUrl | Yes | Europe PMC's website search URL for this query |
| cursorMark | Yes | Cursor used for this response (echoed from the request) |
| totalCount | Yes | Total matching records across all pages |
| appliedSources | Yes | Sources the query was filtered against (defaults applied) |
| nextCursorMark | No | Cursor to pass back as `cursorMark` for the next page. Absent on the final page. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Discloses that abstracts are returned as bounded abstractSnippet with abstractTruncated indicator, and directs to pubmed_europepmc_fetch for full abstract. Notes that P_PDATE_D sort is ignored for preprint-only sets. No contradictions with annotations (readOnlyHint and openWorldHint are consistent).
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single paragraph is well-organized, front-loaded with core purpose, and every sentence contributes essential information. No fluff.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the output schema existence and 100% schema coverage, the description provides complete guidance: sources, pagination, result types, abstract handling, and sorting quirks. Sufficient for effective use.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Adds significant value beyond the input schema, including query field token examples with unquoted identifier rules, sort field limitations for preprints, and clear pagination guidance. All 6 parameters benefit from extra context.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clearly states it searches Europe PMC, a broad biomedical corpus, and lists covered sources (preprints, patents, Agricola, PubMed, PMC). Distinguishes itself from sibling tools like pubmed_search_articles by explicitly mentioning additional coverage for preprints and EPMC-only OA records.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly states when to use ('when additional coverage is needed') and provides default sources, pagination via cursorMark, and how to include additional sources. Does not explicitly exclude sibling tools but provides enough context for agent decision-making.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
pubmed_fetch_articlesPubmed Fetch ArticlesARead-onlyInspect
Fetch full article metadata by PubMed IDs. Returns detailed article information including abstract, authors, journal, MeSH terms.
| Name | Required | Description | Default |
|---|---|---|---|
| pmids | Yes | PubMed IDs to fetch | |
| includeMesh | No | Include MeSH terms | |
| includeGrants | No | Include grant information |
Output Schema
| Name | Required | Description |
|---|---|---|
| notice | No | Optional guidance when no articles were returned — points to discovery tools. Absent on successful fetches. |
| articles | Yes | Parsed articles |
| totalReturned | Yes | Number of articles returned |
| unavailablePmids | No | PMIDs that returned no article data |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds context about the return structure (abstract, authors, etc.) beyond the annotations' readOnlyHint and openWorldHint. However, it does not disclose potential limitations like rate limits or pagination, which are not covered by annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise: two sentences, front-loaded with the action and input, followed by output details. No unnecessary words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a straightforward fetch tool with a full input schema and output schema, the description is adequate. It omits mention of the required parameter but that is clear from the schema. Overall, it provides sufficient context for an agent to understand the tool's role.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With schema coverage at 100%, the baseline is 3. The description mentions return content (MeSH terms) that relates to the includeMesh parameter but does not add detail beyond the schema's own descriptions for pmids, includeMesh, and includeGrants.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: fetching full article metadata by PubMed IDs. It lists specific content (abstract, authors, journal, MeSH terms), distinguishing it from sibling search tools like pubmed_search_articles or pubmed_europepmc_fetch.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives. It does not mention prerequisites, exclusions, or trade-offs compared to sibling tools such as pubmed_fetch_fulltext or pubmed_europepmc_fetch.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
pubmed_fetch_fulltextPubmed Fetch FulltextARead-onlyInspect
Fetch full-text articles from PubMed Central with structured sections and references. When PMC misses, transparently falls back to Europe PMC fullTextXML (structured JATS for records with a PMC counterpart), then to Unpaywall — publisher-hosted or institutional open-access copies as HTML-as-Markdown or PDF-as-text. Provide exactly one of pmcids (PMC IDs directly), pmids (PubMed IDs, auto-resolved), or dois (DOIs, auto-resolved to PMC via the ID Converter; preprints and EPMC-only OA fall through to the Europe PMC and Unpaywall layers).
| Name | Required | Description | Default |
|---|---|---|---|
| dois | No | DOIs to resolve (e.g. ["10.21203/rs.3.rs-9010375/v1"]). Provide exactly one of `pmcids`, `pmids`, or `dois`. Resolved to a PMCID via the PMC ID Converter and returned as structured JATS when the article is in PMC; DOIs with no PMC counterpart (preprints, EPMC-only OA) fall through to Europe PMC, then Unpaywall, when those layers are enabled. | |
| pmids | No | PubMed IDs. Provide exactly one of `pmcids`, `pmids`, or `dois`. Articles in PMC are returned as structured JATS; articles not in PMC fall through to Europe PMC (when EPMC has a `fullTextXML`), then to Unpaywall when `UNPAYWALL_EMAIL` is set and a DOI is available. | |
| pmcids | No | PMC IDs to fetch (e.g. ["PMC9575052"]). Provide exactly one of `pmcids`, `pmids`, or `dois`. PMC IDs with no retrievable full text fall through to Europe PMC, then to Unpaywall on the DOI the chain resolves for them. | |
| sections | No | Filter to specific sections by title, case-insensitive (e.g. ["Introduction", "Methods", "Results", "Discussion"]). Applies to `source=pmc` results only. | |
| maxSections | No | Maximum top-level body sections. Applies to `source=pmc` results only. | |
| overflowMode | No | How to spend `maxCharacters` across an article that exceeds it. truncate: fill sections in document order, so early sections stay whole and sections past the budget are dropped (counted in `truncation.omittedSections`). outline: split the budget evenly so every section keeps its heading, and an excerpt as far as the budget reaches — use it to survey what an article contains before requesting specific `sections`. Ignored when no budget is set, and identical for `source=unpaywall` bodies, which have no headings to preserve. | truncate |
| maxCharacters | No | Per-article budget for body text, in characters. Counts `source=pmc` section and subsection text, or the `source=unpaywall` `content` body; titles, abstracts, identifiers, and references are never counted or shortened. Applied after `sections`, `maxSections`, and `includeReferences`, so semantic filtering is unaffected. The response-wide ceiling is this value times the number of articles returned. Omit for the full body. | |
| includeReferences | No | Include reference list. Applies to `source=pmc` results only. | |
| maxCharactersPerSection | No | Budget for a single top-level body section, in characters, counting the section text plus its subsections. Combine with `maxCharacters` to cap both one section and the article; the tighter of the two wins. Applies to `source=pmc` results only. |
Output Schema
| Name | Required | Description |
|---|---|---|
| notice | No | Optional guidance for a partial or empty body. A `sections`-filter miss names the requested terms and affected article id(s) and suggests retrying without `sections` or using broader headings. A metadata-only record names the id(s) the chain could retrieve as front matter only and points at `pubmed_fetch_articles` for the abstract. A budgeted response names the characters returned versus carried and points at `truncation`. Absent when none of those applies. |
| articles | Yes | Full-text articles |
| truncation | No | Character accounting for full text the budget shortened. Present only when a budget actually removed characters — its absence means every returned article carries its full post-filter body. |
| unavailable | No | Per-identifier explanations for any requested PMIDs, PMCIDs, or DOIs with no returnable full text. `idType` discriminates which branch the id came from. |
| totalReturned | Yes | Number of articles returned |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations declare readOnlyHint and openWorldHint, and the description transparently discloses complex fallback behavior, truncation modes (truncate vs. outline), per-article budget, section filtering, and reference inclusion rules. No contradictions with annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is comprehensive but still well-structured: first sentence summarizes the core function, then fallback layers, then individual parameter guidance. It is slightly lengthy but every sentence adds value. Minor redundancy (e.g., 'Provide exactly one of' repeated) could be tightened.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given 9 parameters, full schema coverage, annotations, and an output schema, the description covers all important aspects: fallback chains, truncation modes, budget constraints, section filtering, and reference inclusion. It is fully adequate for an agent to correctly invoke the tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so baseline 3. The description adds significant context beyond the schema: fallback resolution for each ID type, Unpaywall layer conditions, truncation mode details, and budget interactions. This justifies a score above baseline.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool fetches full-text articles from PubMed Central with structured sections and references, and details multiple fallback layers (Europe PMC, Unpaywall). It distinguishes from sibling tools like pubmed_fetch_articles by emphasizing structured JATS output and fallback behavior.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly instructs to provide exactly one of pmcids, pmids, or dois, and explains when each is appropriate based on fallback logic. It mentions the Unpaywall requirement (UNPAYWALL_EMAIL) and provides guidance on truncation modes. It could be improved by contrasting with siblings like pubmed_fetch_articles for abstract-only use.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
pubmed_format_citationsPubmed Format CitationsARead-onlyInspect
Get formatted citations for PubMed articles in one or more formats (apa, mla, bibtex, ris, vancouver). Pass a single format as a string or multiple as an array.
| Name | Required | Description | Default |
|---|---|---|---|
| pmids | Yes | PubMed IDs to cite | |
| format | No | Citation format(s) to generate — single style as a string or multiple as an array. Allowed values: apa, mla, bibtex, ris, vancouver. | apa |
Output Schema
| Name | Required | Description |
|---|---|---|
| notice | No | Optional guidance when no citations were produced — points to discovery tools. Absent when at least one citation was produced. |
| citations | Yes | Citations per article |
| totalFormatted | Yes | Number of PMIDs successfully formatted |
| totalSubmitted | Yes | Number of PMIDs submitted for citation formatting |
| unavailablePmids | No | Requested PMIDs that did not return article metadata |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and openWorldHint=true, making the tool's safe, read-only nature clear. The description adds the detail that citations are returned in multiple formats, which is consistent with annotations but does not provide additional behavioral context beyond them.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two concise sentences with the action and key details front-loaded. Every word earns its place, making it efficient and easy to parse.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the low complexity (2 parameters), full schema coverage, presence of annotations, and an output schema, the description is sufficiently complete. It lists all supported formats and the parameter usage, leaving no obvious gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so both pmids and format are well-documented in the schema. The tool description restates the ability to pass a single format as a string or multiple as an array, adding marginal clarity but not significantly beyond the schema's explanation.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Get'), the resource ('formatted citations for PubMed articles'), and the specific set of formats. It effectively distinguishes this tool from siblings like pubmed_fetch_articles, which retrieve raw article data.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explains how to pass formats but does not explicitly state when to use this tool versus alternatives like pubmed_fetch_articles. The intended use is implied but not directly contrasted with siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
pubmed_lookup_citationPubmed Lookup CitationARead-onlyInspect
Look up PubMed IDs from partial bibliographic citations. Useful when you have a reference (journal, year, volume, page, author) and need the PMID — deterministic citation matching, more reliable than free-text search for structured references. Each citation must include at least journal or year (ECitMatch primary-keys on journal+volume+page; author-only or volume-only inputs guarantee no match); more fields = better match accuracy.
| Name | Required | Description | Default |
|---|---|---|---|
| citations | Yes | Citations to look up. More fields = better match accuracy. |
Output Schema
| Name | Required | Description |
|---|---|---|
| results | Yes | Match results, one per input citation |
| totalMatched | Yes | Number of citations with PMID matches |
| totalWarnings | Yes | Number of matched citations that carry at least one warning |
| totalSubmitted | Yes | Number of citations submitted |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description reveals deterministic matching behavior, details primary keys (journal+volume+page), and explains accuracy dependence on field completeness. Annotations provide readOnlyHint and openWorldHint, and the description adds context without contradiction.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is three sentences, front-loading the core action and purpose, with each sentence providing essential information without redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the presence of an output schema and full schema coverage, the description thoroughly covers input requirements, failure modes, and accuracy guidance, making it complete for this tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, and the description adds meaning by explaining the ECitMatch logic and providing examples (e.g., 'mann bj') and constraints that go beyond the schema descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Look up PubMed IDs from partial bibliographic citations,' specifies the use case for structured references, and distinguishes from siblings like pubmed_search_articles by noting it is 'more reliable than free-text search for structured references.'
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly advises when to use ('when you have a reference... and need the PMID'), warns about minimal requirements ('at least journal or year'), and explains failure conditions ('author-only or volume-only inputs guarantee no match').
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
pubmed_lookup_meshPubmed Lookup MeshARead-onlyInspect
Search and explore the MeSH (Medical Subject Headings) controlled vocabulary. Returns descriptor records with tree numbers, scope notes, and entry terms, plus pagination via offset for paging past the maxResults cap.
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes | MeSH descriptor name or free-text term to look up | |
| offset | No | Result offset for pagination (0-based). Pass the `nextOffset` from the previous response to get the following page; the exact-descriptor match is pinned to the first page only. | |
| maxResults | No | Maximum results | |
| includeDetails | No | Fetch full MeSH records (scope notes, tree numbers, entry terms) |
Output Schema
| Name | Required | Description |
|---|---|---|
| query | Yes | Original search query |
| notice | No | Optional guidance when no descriptors matched or the offset overshot the result set — suggests spell-check, free-text search, or resetting the offset. Absent on successful result pages. |
| offset | Yes | Result offset this page was read from |
| results | Yes | Matching MeSH records |
| nextOffset | No | Offset to request for the next page. Omitted when this is the last page, so its absence is the end-of-results signal. |
| totalCount | Yes | Total MeSH descriptors matching the query upstream, before the maxResults cap |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations indicate readOnlyHint=true and openWorldHint=true, and the description adds value by detailing the return content (descriptor records, tree numbers, scope notes) and pagination via offset. No contradictions; the description enhances understanding beyond the annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, front-loaded with purpose, no wasted words. The structure efficiently conveys key information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the existence of an output schema and comprehensive annotations, the description covers all essential aspects: purpose, return data, and pagination. No gaps in context.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the baseline is 3. The description does not add significant new meaning beyond what the schema already provides for parameters like query, offset, maxResults, and includeDetails.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool searches and explores the MeSH controlled vocabulary, specifying returned data like tree numbers, scope notes, and entry terms. It effectively differentiates from siblings (e.g., pubmed_search_articles for articles, not MeSH).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies use for MeSH lookups and mentions pagination behavior, but it does not explicitly state when to use this tool versus alternatives or provide exclusion criteria. The context is clear but not exhaustive.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
pubmed_search_articlesPubmed Search ArticlesARead-onlyInspect
Search PubMed with full query syntax, filters, and date ranges. Returns PMIDs and optional brief summaries. Supports field-specific filters (author, journal, MeSH terms), common filters (language, species, free full text), and pagination via offset for paging through large result sets.
| Name | Required | Description | Default |
|---|---|---|---|
| sort | No | Sort order: relevance (default), pub_date (newest first), author, or journal | relevance |
| query | Yes | PubMed search query (supports full NCBI syntax) | |
| author | No | Filter by author name (e.g. "Smith J") | |
| offset | No | Result offset for pagination (0-based). PubMed serves at most the first 9999 records of a result set, so this caps at 9998; narrow the query or add filters to reach anything beyond it. | |
| journal | No | Filter by journal name | |
| species | No | Filter by species | |
| language | No | Filter by language (e.g. "english") | |
| dateRange | No | Filter by date range. The filter is applied only when both `minDate` and `maxDate` are non-empty; either one empty disables the entire date range. | |
| meshTerms | No | Filter by MeSH terms. Multiple terms are AND'd — all must match. | |
| maxResults | No | Maximum results to return | |
| hasAbstract | No | Only include articles with abstracts | |
| freeFullText | No | Only include free full text articles | |
| summaryCount | No | Fetch brief summaries for top N results (0 = PMIDs only). Above the 50 cap, pass the remaining PMIDs to pubmed_fetch_articles. | |
| publicationTypes | No | Filter by publication type (e.g. "Review", "Clinical Trial", "Meta-Analysis"). Multiple values are OR'd — any match qualifies. |
Output Schema
| Name | Required | Description |
|---|---|---|
| pmids | Yes | PubMed IDs |
| query | Yes | Original query |
| notice | No | Optional guidance when the result set does not reflect what was asked for — a field tag PubMed ignored, a phrase it matched nothing for, a dateRange dropped for having one bound, no matches at all, or paging past the end. Absent when nothing applies. |
| offset | Yes | Result offset used |
| searchUrl | Yes | PubMed search URL |
| summaries | Yes | Brief summaries (empty array when summaryCount is 0) |
| totalCount | Yes | Total matching articles |
| appliedFilters | Yes | Normalized filter values that were applied to the PubMed query |
| effectiveQuery | Yes | Sanitized query sent to PubMed after applying all active filters |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations provide `readOnlyHint: true` and `openWorldHint: true`. The description adds behavioral details: dateRange requires both min and max, offset cap at 9998, summaryCount cap at 50, MeSH terms are AND'd, publicationTypes are OR'd, and pagination behavior with offset. No contradictions with annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single paragraph of three sentences, front-loaded with purpose and outputs, followed by filter details. No wasted words or redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity (14 params, nested objects, output schema), the description covers query syntax, filters, date range behavior, pagination limits, and summary behavior. It mentions the output schema exists but does not detail return values (not required as output schema is provided). Slightly incomplete: does not state that default output is only PMIDs.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%. The description adds value beyond the schema by explaining the dateRange activation condition (both min/max required), offset cap rationale, summaryCount guidance, and AND/OR logic for filters. It also references a sibling tool for extended summaries.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool searches PubMed with full query syntax, filters, and date ranges. It specifies outputs: PMIDs and optional summaries. It distinguishes from siblings by mentioning `summaryCount` and directing users to `pubmed_fetch_articles` for more summaries.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for searching and retrieving PMIDs/summaries, and mentions pagination and result caps. It hints at using `pubmed_fetch_articles` for more summaries, but does not explicitly state when to use this tool versus alternatives or provide exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
pubmed_spell_checkPubmed Spell CheckARead-onlyInspect
Spell-check a query and get NCBI's suggested correction. Useful for refining search queries.
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes | PubMed search query to spell-check |
Output Schema
| Name | Required | Description |
|---|---|---|
| original | Yes | Original query |
| corrected | Yes | Corrected query (same as original if no suggestion) |
| hasSuggestion | Yes | Whether NCBI suggested a correction |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations provide readOnlyHint=true and openWorldHint=true, indicating safe behavior. The description adds that the tool returns a suggested correction, which is useful context but does not disclose any further behavioral details (e.g., whether it modifies anything).
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence, front-loaded with the action and purpose. Every word is meaningful, with no fluff or repetition.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple tool with one parameter and a likely straightforward output, the description is adequate. The presence of an output schema (not detailed) reduces the need to describe return values. Slightly more context on the correction format could improve it.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% for the single parameter 'query', with description in the schema. The tool description does not add new semantics beyond what the schema provides, so baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb ('spell-check'), resource ('query'), and outcome ('get NCBI's suggested correction'). It also indicates usefulness for refining search queries, distinguishing it from sibling tools like pubmed_search_articles.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for refining search queries but does not explicitly state when to use or avoid this tool versus alternatives. No exclusions or context for when to choose this tool over siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Claim this connector by publishing a /.well-known/glama.json file on your server's domain with the following structure:
{
"$schema": "https://glama.ai/mcp/schemas/connector.json",
"maintainers": [{ "email": "your-email@example.com" }]
}The email address must match the email associated with your Glama account. Once published, Glama will automatically detect and verify the file within a few minutes.
Control your server's listing on Glama, including description and metadata
Access analytics and receive server usage reports
Get monitoring and health status updates for your server
Feature your server to boost visibility and reach more users
For users:
Full audit trail – every tool call is logged with inputs and outputs for compliance and debugging
Granular tool control – enable or disable individual tools per connector to limit what your AI agents can do
Centralized credential management – store and rotate API keys and OAuth tokens in one place
Change alerts – get notified when a connector changes its schema, adds or removes tools, or updates tool definitions, so nothing breaks silently
For server owners:
Proven adoption – public usage metrics on your listing show real-world traction and build trust with prospective users
Tool-level analytics – see which tools are being used most, helping you prioritize development and documentation
Direct user feedback – users can report issues and suggest improvements through the listing, giving you a channel you would not have otherwise
The connector status is unhealthy when Glama is unable to successfully connect to the server. This can happen for several reasons:
The server is experiencing an outage
The URL of the server is wrong
Credentials required to access the server are missing or invalid
If you are the owner of this MCP connector and would like to make modifications to the listing, including providing test credentials for accessing the server, please contact support@glama.ai.
Discussions
No comments yet. Be the first to start the discussion!
Related MCP Servers
- Alicense-qualityCmaintenanceEnables searching and retrieving biomedical literature from PubMed via the NCBI E-utilities API.131MIT
- Alicense-qualityCmaintenanceEnables searching and retrieving biomedical literature from Europe PMC, including articles, abstracts, references, and citations.8MIT
- AlicenseAqualityDmaintenanceEnables searching and fetching articles from PubMed, a database of biomedical literature.21MIT
- Alicense-qualityDmaintenanceThis server enables searching PubMed articles, fetching metadata, and downloading PMC PDFs.4MIT
Your Connectors
Sign in to create a connector for this server.