Search PubMed and Europe PMC, fetch articles and full text, citations and MeSH terms.
Setup
Choose your client, copy the config, then fill in any required environment variables.
Local
claude mcp add pubmed --env MCP_TRANSPORT_TYPE='<MCP_TRANSPORT_TYPE>' --env MCP_LOG_LEVEL='<MCP_LOG_LEVEL>' --env NCBI_API_KEY='<NCBI_API_KEY>' -- npx -y @cyanheads/pubmed-mcp-server~/.codex/config.toml
[mcp_servers.pubmed]
command = "npx"
args = ["-y", "@cyanheads/pubmed-mcp-server"]
env = { MCP_TRANSPORT_TYPE = "<MCP_TRANSPORT_TYPE>", MCP_LOG_LEVEL = "<MCP_LOG_LEVEL>", NCBI_API_KEY = "<NCBI_API_KEY>" }
# codex mcp add pubmed --env MCP_TRANSPORT_TYPE='<MCP_TRANSPORT_TYPE>' --env MCP_LOG_LEVEL='<MCP_LOG_LEVEL>' --env NCBI_API_KEY='<NCBI_API_KEY>' -- npx -y @cyanheads/pubmed-mcp-server~/.cursor/mcp.json
{
"mcpServers": {
"pubmed": {
"command": "npx",
"args": [
"-y",
"@cyanheads/pubmed-mcp-server"
],
"env": {
"MCP_TRANSPORT_TYPE": "<MCP_TRANSPORT_TYPE>",
"MCP_LOG_LEVEL": "<MCP_LOG_LEVEL>",
"NCBI_API_KEY": "<NCBI_API_KEY>"
}
}
}
}.vscode/mcp.json
{
"servers": {
"pubmed": {
"type": "stdio",
"command": "npx",
"args": [
"-y",
"@cyanheads/pubmed-mcp-server"
],
"env": {
"MCP_TRANSPORT_TYPE": "<MCP_TRANSPORT_TYPE>",
"MCP_LOG_LEVEL": "<MCP_LOG_LEVEL>",
"NCBI_API_KEY": "<NCBI_API_KEY>"
}
}
}
}~/.gemini/settings.json
{
"mcpServers": {
"pubmed": {
"command": "npx",
"args": [
"-y",
"@cyanheads/pubmed-mcp-server"
],
"env": {
"MCP_TRANSPORT_TYPE": "<MCP_TRANSPORT_TYPE>",
"MCP_LOG_LEVEL": "<MCP_LOG_LEVEL>",
"NCBI_API_KEY": "<NCBI_API_KEY>"
}
}
}
}claude_desktop_config.json
{
"mcpServers": {
"pubmed": {
"command": "npx",
"args": [
"-y",
"@cyanheads/pubmed-mcp-server"
],
"env": {
"MCP_TRANSPORT_TYPE": "<MCP_TRANSPORT_TYPE>",
"MCP_LOG_LEVEL": "<MCP_LOG_LEVEL>",
"NCBI_API_KEY": "<NCBI_API_KEY>"
}
}
}
}.trae/mcp.json
{
"mcpServers": {
"pubmed": {
"command": "npx",
"args": [
"-y",
"@cyanheads/pubmed-mcp-server"
],
"env": {
"MCP_TRANSPORT_TYPE": "<MCP_TRANSPORT_TYPE>",
"MCP_LOG_LEVEL": "<MCP_LOG_LEVEL>",
"NCBI_API_KEY": "<NCBI_API_KEY>"
}
}
}
}Remote
claude mcp add --transport http pubmed https://pubmed.caseyjhand.com/mcp~/.codex/config.toml
[mcp_servers.pubmed]
url = "https://pubmed.caseyjhand.com/mcp"
# codex mcp add pubmed --url https://pubmed.caseyjhand.com/mcp~/.cursor/mcp.json
{
"mcpServers": {
"pubmed": {
"url": "https://pubmed.caseyjhand.com/mcp"
}
}
}.vscode/mcp.json
{
"servers": {
"pubmed": {
"type": "http",
"url": "https://pubmed.caseyjhand.com/mcp"
}
}
}~/.gemini/settings.json
{
"mcpServers": {
"pubmed": {
"httpUrl": "https://pubmed.caseyjhand.com/mcp"
}
}
}claude_desktop_config.json · Customize › Connectors › Add custom connector
{
"mcpServers": {
"pubmed": {
"command": "npx",
"args": [
"-y",
"mcp-remote",
"https://pubmed.caseyjhand.com/mcp"
]
}
}
}.trae/mcp.json
{
"mcpServers": {
"pubmed": {
"url": "https://pubmed.caseyjhand.com/mcp"
}
}
}Environment variables
MCP_TRANSPORT_TYPEMCP_LOG_LEVELNCBI_API_KEY
Replace the placeholders with your own credentials and keep them out of version control.