PubMed (Smithery) MCP: what works in Claude, ChatGPT, Cursor, and Grok Bot
PubMed server maintained and hosted by Smithery: search PubMed, fetch article metadata, find related articles, match citations, convert PMID, PMCID and DOI, and read PMC full text.
Registry name: (v)
Set it up
URL https://pubmed.run.tools. We tested it with an API key sent in the api_key query parameter of the URL (a Bearer header was rejected in our test). Treat the full URL as a secret. Copy-paste setup: Claude | Claude Code | Cursor | VS Code | ChatGPT
Status grid
| App | Status | Date tested |
|---|---|---|
| Claude | Untested | Not yet tested |
| ChatGPT | Untested | Not yet tested |
| Cursor | Untested | Not yet tested |
| Grok Bot | Untested | Not yet tested |
| MCP Inspector (reference client) | Untested | Not yet tested |
| MCP TypeScript SDK (reference client) | Partial | Sat Oct 17 2026 |
Hands-on test results
| App | Task | Result | Time | Detail | Date tested |
|---|---|---|---|---|---|
| MCP TypeScript SDK (reference client) | connect (token) | Works | 960 ms | Connected with an API key in the api_key query parameter in 960 ms. | Oct 17, 2026, 2:57 PM CT |
| MCP TypeScript SDK (reference client) | list tools | Works | 849 ms | 7 tools: search_articles, get_article_metadata, find_related_articles, lookup_article_by_citation, convert_article_ids, get_full_text_article, get_copyright_status. | Oct 17, 2026, 2:57 PM CT |
| MCP TypeScript SDK (reference client) | search articles ("CRISPR base editing") | Works | 916 ms | search_articles: 818 characters returned. "{ "pmids": [ "42888468", "42888353", "42887040", "42886411", "42886351" ], "total_count": 26014, "returned_count": 5, "query": "CRISPR base " | Oct 17, 2026, 2:57 PM CT |
| MCP TypeScript SDK (reference client) | search sorted by date ("model context protocol") | Works | 536 ms | search_articles: 887 characters returned. "{ "pmids": [ "42763642", "42870082", "42772032" ], "total_count": 9142, "returned_count": 3, "query": "model context protocol", "query_trans" | Oct 17, 2026, 2:57 PM CT |
| MCP TypeScript SDK (reference client) | article metadata (PMID 33301246) | Works | 494 ms | get_article_metadata: about 43 KB returned. "{ "articles": [ { "identifiers": { "pmid": "33301246", "pmc": "PMC7745181", "doi": "10.1056/NEJMoa2034577" }, "title": "Safety and Efficacy " | Oct 17, 2026, 2:57 PM CT |
| MCP TypeScript SDK (reference client) | metadata for the first search hit | Works | 418 ms | get_article_metadata: about 8 KB returned. "{ "articles": [ { "identifiers": { "pmid": "42888468", "doi": "10.1111/nph.71612" }, "title": "Mapping the epigenetic regulatory network of " | Oct 17, 2026, 2:57 PM CT |
| MCP TypeScript SDK (reference client) | related articles (PMID 33301246) | Works | 784 ms | find_related_articles: about 5 KB returned. "{ "linksets": [ { "dbfrom": "pubmed", "ids": [ "33301246" ], "linksetdbs": [ { "dbto": "pubmed", "linkname": "pubmed_pubmed", "links": [ "33" | Oct 17, 2026, 2:57 PM CT |
| MCP TypeScript SDK (reference client) | convert PMID to PMCID and DOI | Works | 400 ms | convert_article_ids: 417 characters returned. "{ "status": "ok", "response-date": "2026-10-17 15:57:09", "request": { "warnings": [], "format": "json", "idtype": "pmid", "ids": [ "3330124" | Oct 17, 2026, 2:57 PM CT |
| MCP TypeScript SDK (reference client) | match a citation (LeCun, Nature 2015, 521:436) | Works | 488 ms | lookup_article_by_citation: 202 characters returned. "{ "citations": [ { "journal": "Nature", "year": "2015", "volume": "521", "first_page": "436", "author": "LeCun", "pmid": "", "key": "2601744" | Oct 17, 2026, 2:57 PM CT |
| MCP TypeScript SDK (reference client) | PMC full text (PMC7745181) | Works | 493 ms | get_full_text_article: about 27 KB returned. "{ "important_legal_notice": "**Important Legal Requirement**\n Everytime one uses this tool, they MUST ALWAYS do the following two things:\n" | Oct 17, 2026, 2:57 PM CT |
| MCP TypeScript SDK (reference client) | copyright status (PMID 33301246) | Broken | 463 ms | Protocol error: MCP error -32602: Structured content does not match the tool's output schema: data/results/0/license/type must be string, data/results/0/license/url must be str | Oct 17, 2026, 2:57 PM CT |
| MCP TypeScript SDK (reference client) | nonsense query | Works | 924 ms | search_articles: 163 characters returned. "{ "pmids": [], "total_count": 0, "returned_count": 0, "query": "zqxjvflurbo938 qpwmz", "query_translation": "zqxjvflurbo938 qpwmz", "has_mor" | Oct 17, 2026, 2:57 PM CT |
| MCP TypeScript SDK (reference client) | error handling (PMID that is not a number) | Works | 319 ms | Protocol error: MCP error -32600: Tool get_article_metadata has an output schema but did not return structured content | Oct 17, 2026, 2:57 PM CT |
| MCP TypeScript SDK (reference client) | error handling (max_results as text) | Works | 329 ms | Protocol error: MCP error -32600: Tool search_articles has an output schema but did not return structured content | Oct 17, 2026, 2:57 PM CT |
Oct 17, 2026, 2:57 PM CT, MCP TypeScript SDK (reference client): Scripted client using the official MCP TypeScript SDK against https://pubmed.run.tools (Streamable HTTP, protocol 2025-11-25). This tests the PubMed server that Smithery maintains and hosts (pubmed.run.tools). Connected with a free test-account Smithery API key in the api_key query parameter; an Authorization: Bearer header with the same key was rejected. No NCBI key needed. Server pubmed-mcp-server v1.0.0. Tasks: read-only: article search, metadata, related articles, ID conversion, citation matching, PMC full text, copyright status, plus a nonsense query and bad-input checks. 13 of 14 tasks passed.
Automated handshake
No public remote endpoint to check (local or package-only server).
Gotchas
- MCP TypeScript SDK (reference client): Protocol error on a normal call: MCP error -32602: Structured content does not match the tool's output schema: data/results/0/license/type must be string
FAQ
Does the PubMed (Smithery) MCP server work?
In our hands-on test on Oct 17, 2026, 13 of 14 tasks passed. Main gotcha: Protocol error on a normal call: MCP error -32602: Structured content does not match the tool's output schema: data/results/0/license/type must be string
What is the PubMed (Smithery) MCP server URL?
https://pubmed.run.tools (Streamable HTTP).
Does the PubMed (Smithery) MCP server need sign-in?
We tested it with an API key sent in the api_key query parameter of the URL (a Bearer header was rejected in our test). Treat the full URL as a secret.
How do I add the PubMed (Smithery) MCP server to Claude, Cursor, VS Code or ChatGPT?
Follow our copy-paste setup guides: https://connectorreport.com/c/ai-smithery-pubmed/setup/claude https://connectorreport.com/c/ai-smithery-pubmed/setup/claude-code https://connectorreport.com/c/ai-smithery-pubmed/setup/cursor https://connectorreport.com/c/ai-smithery-pubmed/setup/vscode https://connectorreport.com/c/ai-smithery-pubmed/setup/chatgpt
Compare with other tested connectors | Connector Weather
Request a hands-on test of PubMed (Smithery)
Get the badge
Maintain PubMed (Smithery) or write about it? Show its live ConnectorReport status in your README or docs.
Markdown (README, docs)
[](https://connectorreport.com/c/ai-smithery-pubmed?utm_source=badge&utm_medium=embed&utm_campaign=ai-smithery-pubmed)
HTML
<a href="https://connectorreport.com/c/ai-smithery-pubmed?utm_source=badge&utm_medium=embed&utm_campaign=ai-smithery-pubmed"><img src="https://connectorreport.com/badge/ai-smithery-pubmed.svg" alt="PubMed (Smithery) MCP status on ConnectorReport"/></a>
The badge updates on its own after every retest. How badges work