How cyanheads/pubmed-mcp-server works
This is a biomedical-literature MCP server: a client invokes registered tools to search and retrieve PubMed/Europe PMC records, resolve identifiers and citations, explore related work, and obtain full text or MeSH context. The entry point registers tools, a database-info resource, and a research-plan prompt, then initializes provider services. The README documents the full-text and related-article fallback tiers; those paths are reflected here, while unsampled tool implementations limit confirmation of finer-grained calls.
Main entry points: index.ts Server entry · ncbi-service.ts NCBI service · europe-pmc-service.ts Europe PMC service · find-related.tool.ts Find related
Components 26
MCP server
- Server entry
src/index.ts - Server config
src/config/server-config.ts
Search and discovery
- Search articles
src/mcp-server/tools/definitions/search-articles.tool.ts - Europe PMC search
src/mcp-server/tools/definitions/pubmed-europepmc-search.tool.ts - Spell check
src/mcp-server/tools/definitions/spell-check.tool.ts - MeSH lookup
src/mcp-server/tools/definitions/lookup-mesh.tool.ts - Find related
src/mcp-server/tools/definitions/find-related.tool.ts
Article retrieval
- Fetch articles
src/mcp-server/tools/definitions/fetch-articles.tool.ts - Fetch full text
src/mcp-server/tools/definitions/fetch-fulltext.tool.ts - Fetch EPMC record
src/mcp-server/tools/definitions/pubmed-europepmc-fetch.tool.ts - Format citations
src/mcp-server/tools/definitions/format-citations.tool.ts - Resolve citations
src/mcp-server/tools/definitions/lookup-citation.tool.ts - Convert identifiers
src/mcp-server/tools/definitions/convert-ids.tool.ts - Database info
src/mcp-server/resources/definitions/database-info.resource.ts
Provider services
- NCBI service
src/services/ncbi/ncbi-service.ts - NCBI API client
src/services/ncbi/api-client.ts - PMC article parser
src/services/ncbi/parsing/pmc-article-parser.ts - Europe PMC service
src/services/europe-pmc/europe-pmc-service.ts - OpenAlex service
src/services/openalex/openalex-service.ts - Unpaywall service
src/services/unpaywall/unpaywall-service.ts
Research support
- Research plan
src/mcp-server/prompts/definitions/research-plan.prompt.ts
Other components
- MCP client
- NCBI E-utilities
- Europe PMC API
- OpenAlex API
- Unpaywall API
Connections 38
- MCP client → Server entry: connects
- Server entry → Search articles: registers
- Server entry → Europe PMC search: registers
- Server entry → Spell check: registers
- Server entry → MeSH lookup: registers
- Server entry → Find related: registers
- Server entry → Fetch articles: registers
- Server entry → Fetch full text: registers
- Server entry → Fetch EPMC record: registers
- Server entry → Format citations: registers
- Server entry → Resolve citations: registers
- Server entry → Convert identifiers: registers
- Server entry → Database info: registers
- Server entry → Research plan: registers
- Server entry → Server config: loads
- Search articles → NCBI service: searches
- Spell check → NCBI service: checks spelling
- MeSH lookup → NCBI service: looks up terms
- Fetch articles → NCBI service: fetches records
- Format citations → NCBI service: fetches records
- Resolve citations → NCBI service: matches citations
- Convert identifiers → NCBI service: converts IDs
- Database info → NCBI service: reads metadata
- Europe PMC search → Europe PMC service: searches
- Fetch EPMC record → Europe PMC service: fetches records
- Find related → NCBI service: checks relations
- Find related → Europe PMC service: fallback search
- Find related → OpenAlex service: fallback search
- Fetch full text → NCBI service: tries PMC
- Fetch full text → Europe PMC service: fallback fetch
- Fetch full text → Unpaywall service: fallback fetch
- NCBI service → NCBI API client: requests
- NCBI API client → NCBI E-utilities: calls
- Europe PMC service → Europe PMC API: calls
- OpenAlex service → OpenAlex API: calls
- Unpaywall service → Unpaywall API: calls
- Europe PMC service → PMC article parser: parses JATS
- NCBI service → PMC article parser: parses PMC