← Back to directory
P

Pubmed MCP Server

Community
Search PubMed and Europe PMC biomedical literature via MCP.
Category
Other #38 of 230
Stars
★ 163 Very popular
Transport
stdio (local process) · Streamable HTTP
Runtime
Hosted (no local runtime) · Bun 1.3.2+ · Node.js · Docker
Credentials
No credential needed
License
Apache-2.0
Last commit
Tools
11
65FMRS · C

The source documents 11 tools, 1 resource, and 1 prompt for PubMed, PMC, and Europe PMC workflows, with STDIO and Streamable HTTP support. It is suited to biomedical literature retrieval and organization and should not be described as an official upstream server.

Strongest · Documentation 16/20 Weakest · Reliability 9/20

Reliability
9/20
Security and permissions
13/20
Maintenance
13/20
Documentation
16/20
Setup experience
14/20
Why each score
Reliability 9/20
The static material declares 11 tools, a resource, and a prompt, and describes retries, timeouts, partial failures, and structured errors. However, no reviewable implementation source, CI workflow, or committed test evidence was supplied, so MCP initialization, tool-list consistency, startup commands, and key edge cases cannot be verified. The score reflects plausible happy paths but deducts for unverified execution and dependency behavior.
Security and permissions 13/20
The material shows a default HTTP bind to 127.0.0.1, support for none/jwt/oauth authentication, environment-based credential handling, and no delete, payment, deployment, or remote-command tools. External requests are disclosed as going to NCBI, Europe PMC, and Unpaywall. However, HTTP authentication defaults to none, the public hosted instance has no documented access control, retention, or isolation policy, queries and contact emails are sent to external services, and least-privilege or confirmation behavior is not evidenced in implementation. Main risks are visible, but permission and data-flow controls are incomplete.
Maintenance 13/20
The project states an Apache-2.0 license, version 2.10.2, is not archived, and has zero open issues; the README also documents contribution and check commands. This supports basic ownership and versioning intent, but the supplied material lacks commit or release cadence, dependency-update evidence, a vulnerability disclosure channel, and a clear security-response process. Points are deducted for insufficient evidence of sustained maintenance and governance.
Documentation 16/20
The README covers installation, STDIO and Streamable HTTP, client configuration, the tool inventory, environment variables, batch limits, pagination, the full-text fallback chain, truncation behavior, failure statuses, and known full-text limitations. Documentation quality is therefore strong. Points are deducted because practical authentication setup, cost and rate-risk guidance, and systematic troubleshooting are limited, and README and manifest claims cannot substitute for source verification.
Setup experience 14/20
The project provides a hosted HTTP endpoint, Bun, npx, Docker, and configuration examples for several mainstream clients, with runtime and major environment variables documented. The setup path is generally actionable. Points are deducted because production authentication, reverse-proxy, and security configuration are underspecified, the manifest's Bun package arguments are not verified against implementation, and cross-platform compatibility is not demonstrated.

Static review · not runListed 2026-07-30

Read the FMRS scoring method →

Fit and risk

What it can accessUses the network

Best for

  • Researchers and biomedical agents needing programmatic PubMed or Europe PMC access
  • Workflows requiring structured literature metadata, full text, and citation output
  • Literature-management tasks involving DOI, PMID, and PMCID identifiers

Not for

  • Users seeking searches across non-biomedical databases
  • Workflows requiring guaranteed full-text availability for every article
  • Users that need this server to be treated as an official PubMed or NCBI server

Required permissions

  • The server needs access to NCBI services; Europe PMC access is needed when Europe PMC features are enabled.
  • Full-text fallback through Unpaywall requires UNPAYWALL_EMAIL and access to Unpaywall.
  • API keys and contact emails are optional; NCBI_API_KEY can increase the NCBI rate limit.
  • Streamable HTTP deployments can use none, jwt, or oauth authentication; the default is none.

Risks and side effects

  • Full-text retrieval depends on PMC, Europe PMC, or legal open-access sources and may return unavailable or truncated results.
  • Unpaywall results may include best-effort warnings and may be returned as HTML Markdown or PDF text.
  • The source does not provide further details about authentication or availability of the public hosted instance.
  • NCBI and Europe PMC requests are affected by rate limits, timeouts, and retry settings.

Setup

Before you start

Runtime:Hosted (no local runtime) · Bun 1.3.2+ · Node.js · Docker

NCBI_API_KEY optionalsecret NCBI API key, free from your NCBI account settings page; raises rate limits from 3 to 10 req/s. Optional.
Other optional settings (24)
MCP_TRANSPORT_TYPE optional Transport: stdio or http, defaults to stdio.
MCP_LOG_LEVEL optional Minimum log level (e.g. debug, info, warn), defaults to info.
MCP_HTTP_HOST optional HTTP server hostname, defaults to 127.0.0.1.
MCP_HTTP_PORT optional HTTP server port, defaults to 3010.
MCP_HTTP_ENDPOINT_PATH optional Endpoint path where MCP is mounted, defaults to /mcp.
MCP_PUBLIC_URL optional Public origin override when deployed behind a TLS-terminating reverse proxy (e.g. https://mcp.example.com).
MCP_AUTH_MODE optional Authentication mode: none, jwt, or oauth; defaults to none.
NCBI_ADMIN_EMAIL optional Contact email sent with NCBI requests (recommended by NCBI). Optional.
NCBI_REQUEST_DELAY_MS optional Minimum gap between NCBI request starts in ms, defaults to 334 (100 with a key).
NCBI_MAX_CONCURRENT optional Max concurrent in-flight NCBI requests, defaults to 8.
NCBI_MAX_RETRIES optional Retry attempts for failed NCBI requests, defaults to 6.
NCBI_TIMEOUT_MS optional Per-request NCBI HTTP timeout in ms, defaults to 30000.
NCBI_TOTAL_DEADLINE_MS optional Total deadline across all retries for one NCBI call in ms, defaults to 60000.
UNPAYWALL_EMAIL optional Contact email registered with Unpaywall (unpaywall.org); when set, pubmed_fetch_fulltext falls back to Unpaywall OA copies for non-PMC DOIs.
UNPAYWALL_TIMEOUT_MS optional Per-request Unpaywall timeout in ms, defaults to 20000.
EUROPEPMC_ENABLED optional Enables the Europe PMC search tools and the fulltext fallback chain; set false to disable.
EUROPEPMC_EMAIL optional Optional contact email sent with Europe PMC requests (EBI courtesy).
EUROPEPMC_REQUEST_DELAY_MS optional Minimum gap between Europe PMC request starts in ms, defaults to 200.
EUROPEPMC_MAX_RETRIES optional Retry attempts for failed Europe PMC requests, defaults to 3.
EUROPEPMC_TIMEOUT_MS optional Per-request Europe PMC timeout in ms, defaults to 20000.
LOGS_DIR optional Directory for log files (Node.js only), defaults to <project-root>/logs.
STORAGE_PROVIDER_TYPE optional Storage backend: in-memory, filesystem, supabase, or cloudflare-kv/r2/d1, defaults to in-memory.
MCP_GC_PRESSURE_INTERVAL_MS optional Bun-only forced-GC pressure loop interval in ms, defaults to 0 (disabled).
OTEL_ENABLED optional Enable OpenTelemetry tracing, defaults to false.

Add the Streamable HTTP configuration from install_config to an MCP-capable client. Alternatively, run the npm package in STDIO mode with bunx or npx, or use Docker as documented in the README; local HTTP defaults to http://localhost:3010/mcp.

claude_desktop_config.json
{"mcpServers":{"pubmed-mcp-server":{"type":"streamable-http","url":"https://pubmed.caseyjhand.com/mcp"}}}

Shown for Claude Desktop. Other clients may use a different file or key (VS Code uses "servers") — the configurator below converts it.

.vscode/mcp.json
{
  "servers": {
    "pubmed-mcp-server": {
      "type": "streamable-http",
      "url": "https://pubmed.caseyjhand.com/mcp"
    }
  }
}

Goes in your project's .vscode/mcp.json (VS Code uses a "servers" key).

Terminal
claude mcp add --transport http pubmed-mcp-server https://pubmed.caseyjhand.com/mcp

Run it in a terminal; replace any <…> placeholders with your own values first.

Check that it works

After connecting, the client's tool list should show the 11 pubmed_* tools including pubmed_search_articles. Running a quick search like "search PubMed for article PMID 36925698" and getting results back confirms the connection works.

Troubleshooting

  1. Verify that the client uses https://pubmed.caseyjhand.com/mcp for the hosted Streamable HTTP instance.
  2. For local STDIO, confirm that Bun is installed or use the documented npx configuration.
  3. For unavailable full text, verify the input is a PMID, PMCID, or DOI and inspect unavailable, triedTiers, and structured reason fields.
  4. If Europe PMC tools are missing, check whether EUROPEPMC_ENABLED is set to false.
  5. For NCBI rate-limit issues, configure NCBI_API_KEY and review request-delay and timeout settings.

Things to try

Once connected, you can ask your AI assistant things like:

  • Search PubMed for clinical trials on CAR-T cell therapy for solid tumors since 2023, with brief summaries of the top hits.
  • Fetch the full metadata for PMID 36925698, including abstract, authors, and MeSH terms.
  • Get the full text of the article with DOI 10.1038/s41586-023-06694-4, falling back to Unpaywall if it's not in PMC.
  • Format citations for these PMIDs in APA 7th and BibTeX styles.

Tools 11

pubmed_search_articles read-only
Search PubMed with full query syntax, field filters, date ranges, sorting, and pagination.
pubmed_europepmc_search read-only
Search Europe PMC, including PubMed, PMC, preprints, patents, and Agricola records.
pubmed_europepmc_fetch read-only
Fetch complete Europe PMC records and untruncated abstracts by source and epmcId.
pubmed_fetch_articles read-only
Fetch article metadata by PMID, including titles, abstracts, authors, journals, DOIs, MeSH terms, and grants.
pubmed_fetch_fulltext read-only
Fetch full text by PMID, PMCID, or DOI through PMC, Europe PMC, and optional Unpaywall fallback.
pubmed_format_citations read-only
Generate citations in APA 7th, MLA 9th, BibTeX, RIS, or Vancouver format.
pubmed_find_related read-only
Find similar articles, citing articles, or references for a specified article.
pubmed_spell_check read-only
Check biomedical query spelling with NCBI ESpell and return suggestions.
Show 3 more tools
pubmed_lookup_mesh read-only
Search and explore MeSH vocabulary, including tree numbers, scope notes, and entry terms.
pubmed_lookup_citation read-only
Resolve partial bibliographic references to PMIDs using journal, year, volume, page, and author fields.
pubmed_convert_ids read-only
Convert identifiers between DOI, PMID, and PMCID using the PMC ID Converter.

Use cases

Search and filter biomedical literature
Retrieve article metadata, abstracts, and available full text
Generate references in multiple citation formats
Improve PubMed queries with MeSH vocabulary
Find related, citing, and referenced articles

Supported clients

Claude Desktop
Cursor
VS Code

Listed from the project's documentation, not tested by this site.

Overview

@cyanheads/pubmed-mcp-server is an Apache-2.0-licensed MCP server for searching PubMed and Europe PMC, retrieving article metadata and full text, formatting citations, exploring MeSH vocabulary, and converting DOI, PMID, and PMCID identifiers. It supports STDIO and Streamable HTTP and provides a public hosted instance.

Similar servers

BioMCP 75 · B

One binary. One grammar. Evidence from the biomedical sources you already trust.

★ 659 · Tools 11 Compare with this →

Source revision aebb6615b403 Data synced 2026-10-19 Read the FMRS scoring method