Skip to main content
Glama
cyanheads

pubmed-mcp-server

by cyanheads

Pubmed Europepmc Search

pubmed_europepmc_search
Read-only

Search Europe PMC's open-access biomedical corpus covering preprints, patents, Agricola, and PubMed. Retrieve results with pagination and source filtering.

Instructions

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.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
sortNoOptional 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.
queryYesEurope 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.
sourcesNoFilter 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.
pageSizeNoResults per page. Max 100 per EPMC API.
cursorMarkNoPagination cursor. Use `*` (default) for the first page; pass the previous response's `nextCursorMark` for subsequent pages.*
resultTypeNo`core` returns abstract, IDs, dates, license; `lite` is a smaller payload with IDs and titles only.core

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
hitsYesMatching Europe PMC records, in the order EPMC returned them
queryYesEffective query string echoed by Europe PMC
noticeNoOptional guidance when results are empty or paging overshot
searchUrlYesEurope PMC's website search URL for this query
cursorMarkYesCursor used for this response (echoed from the request)
totalCountYesTotal matching records across all pages
appliedSourcesYesSources the query was filtered against (defaults applied)
nextCursorMarkNoCursor to pass back as `cursorMark` for the next page. Absent on the final page.
Behavior4/5

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

Adds behavioral traits beyond annotations: describes abstract truncation (abstractSnippet and abstractTruncated), mentions that full abstract can be fetched with pubmed_europepmc_fetch, and notes that P_PDATE_D is ignored for preprint-only results. 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.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two dense paragraphs with no wasted sentences. Front-loaded with purpose and coverage, then details on sources, pagination, and abstracts. Every sentence contributes meaning.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the complexity (6 parameters, pagination, result types, sibling tools), the description covers key aspects: search scope, source selection, pagination, abstract truncation, and reference to fetch tool. Output schema existence compensates for lack of return value detail.

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%, but the description adds value by explaining defaults (sources, pageSize, cursorMark), example sort values, and query syntax. It clarifies which parameters to use for pagination and source filtering, enhancing the schema descriptions.

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 'Search Europe PMC' with specific verb and resource, lists covered sources (MED, PMC, PPR, PAT, AGR), and distinguishes from sibling tools like pubmed_search_articles (PubMed-only) and pubmed_europepmc_fetch (fetch full abstract).

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?

Explicitly says 'Use when additional coverage is needed — preprints and EPMC-only OA records are the typical recovery.' It explains defaults, pagination via cursorMark, and how to include additional sources. While it doesn't explicitly mention when not to use, the context is clear enough.

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/cyanheads/pubmed-mcp-server'

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