通过无缝集成PubMed来增强您的AI代理和研究工具!
</div>一个生产级别的模型上下文协议(MCP)服务器,使AI代理和研究工具能够全面访问PubMed。通过NCBI E-utilities实现高级自动化工作流程,用于搜索、检索、分析和可视化生物医学和科学文献。
基于cyanheads/mcp-ts-template,此服务器采用模块化架构,并具有强大的错误处理、日志记录和安全特性。
此服务器为您的AI提供了与PubMed交互的专用工具:
| 工具名称 | 描述 | 示例 |
|---|---|---|
pubmed_search_articles | 根据查询在PubMed中搜索文章。 | 查看示例 |
pubmed_fetch_contents | 检索PubMed文章的详细信息。 | 查看示例 |
pubmed_article_connections | 查找相关文章(被引用的文章、相似的文章、参考文献)或格式化PMID的引用。 | 示例 1, 示例 2 |
pubmed_research_agent | 从组件细节生成标准化的JSON研究计划大纲。 | 查看示例 |
pubmed_generate_chart | 从给定的输入数据生成图表图像(PNG)。 | 查看示例 |
| 概述 | 功能 | 安装 |
|---|---|---|
| 配置 | 项目结构 | |
| 工具 | 开发与测试 | 许可证 |
PubMed MCP服务器充当桥梁,允许理解模型上下文协议(MCP)的应用程序(MCP客户端)——如高级AI助手(LLMs)、IDE扩展或自定义研究工具——直接高效地与PubMed庞大的生物医学文献数据库进行交互。
无需复杂的API集成或手动搜索,您的工具可以利用此服务器来:
基于强大的mcp-ts-template,此服务器提供了一种标准化、安全且高效的通过MCP标准暴露PubMed功能的方法。它通过与NCBI的E-utilities API集成,确保遵守速率限制并提供全面的错误处理。
开发者提示:此存储库包括一个
.clinerules文件,作为您的LLM编码代理的快速参考指南,包含代码库模式、文件位置和代码片段的快速参考。
利用mcp-ts-template提供的强大实用工具:
McpError),并自动记录。dotenv),使用Zod进行全面验证。zod进行模式验证和自定义清理逻辑。AsyncLocalStorage。Dockerfile,用于创建小型、安全的生产镜像,支持本机依赖项。将以下内容添加到您的MCP客户端配置文件(例如,cline_mcp_settings.json)中。
此配置使用npx运行服务器,如果尚未存在,将自动安装该包。
所有环境变量都是可选的,但建议在生产环境中使用。建议使用NCBI API密钥以避免速率限制问题。
{
"mcpServers": {
"pubmed-mcp-server": {
"command": "npx",
"args": ["@cyanheads/pubmed-mcp-server"],
"env": {
"MCP_LOG_LEVEL": "debug",
"MCP_TRANSPORT_TYPE": "http",
"MCP_HTTP_PORT": "3017",
"NCBI_API_KEY": "YOUR_NCBI_API_KEY_HERE"
}
}
}
}
npm install @cyanheads/pubmed-mcp-server
git clone https://github.com/cyanheads/pubmed-mcp-server.git
cd pubmed-mcp-server
npm install
npm run build
使用环境变量配置服务器。对于本地开发,这些可以在项目根目录中的.env文件或直接在您的环境中设置。否则,您可以在上面所示的MCP客户端配置中设置它们。
| 变量 | 描述 | 默认值 |
|---|---|---|
MCP_TRANSPORT_TYPE | 传输机制:stdio 或 http。 | stdio |
MCP_HTTP_PORT | HTTP服务器端口(如果MCP_TRANSPORT_TYPE=http)。 | 3017 |
MCP_HTTP_HOST | HTTP服务器的主机地址(如果MCP_TRANSPORT_TYPE=http)。 | 127.0.0.1 |
MCP_ALLOWED_ORIGINS | CORS允许的来源列表(逗号分隔,如果MCP_TRANSPORT_TYPE=http)。 | (无) |
MCP_LOG_LEVEL | 日志级别(debug、info、notice、warning、error、crit、alert、emerg)。 | debug |
MCP_AUTH_MODE | HTTP的身份验证模式:jwt 或 oauth。 | jwt |
MCP_AUTH_SECRET_KEY | 对于jwt认证是必需的。 最小32个字符的JWT认证密钥。 | (无) |
NCBI_API_KEY | 建议。 您的NCBI API密钥,用于更高的速率限制和可靠的访问。 | (无) |
LOGS_DIR | 日志文件存储目录。 | logs/ |
NODE_ENV | 运行时环境(development、production)。 | development |
代码库在src/目录内遵循模块化结构:
src/
├── index.ts # 入口点:初始化并启动服务器
├── config/ # 配置加载(环境变量、包信息)
│ └── index.ts
├── mcp-server/ # 核心MCP服务器逻辑和功能注册
│ ├── server.ts # 服务器设置,功能注册
│ ├── transports/ # 传输处理(stdio,http)
│ └── tools/ # MCP工具实现(每个工具子目录)
├── services/ # 外部服务集成
│ └── NCBI/ # NCBI E-utilities API客户端和解析
├── types-global/ # 共享的TypeScript类型定义
└── utils/ # 常用工具函数(日志记录器,错误处理器等)
要查看详细的文件树,请运行npm run tree或参见docs/tree.md。
PubMed MCP服务器提供了一整套工具,用于生物医学文献研究,可通过模型上下文协议调用。
| 工具名称 | 描述 | 关键参数 |
|---|---|---|
pubmed_search_articles | 使用查询、过滤器和日期范围在PubMed中搜索文章。 | queryTerm,maxResults?,sortBy?,dateRange?,filterByPublicationTypes?,fetchBriefSummaries? |
pubmed_fetch_contents | 使用PMID或搜索历史获取详细的文章信息。 | pmids?,queryKey?,webEnv?,detailLevel?,includeMeshTerms?,includeGrantInfo? |
pubmed_article_connections | 查找给定PMID的相关文章、引用和参考文献。 | sourcePmid,relationshipType?,maxRelatedResults?,citationStyles? |
pubmed_research_agent | 生成具有文献搜索策略的结构化研究计划。 | project_title_suggestion,primary_research_goal,research_keywords,organism_focus?,p1_*等 |
pubmed_generate_chart | 从结构化的出版物数据创建可定制的PNG图表。 | chartType,dataValues,xField,yField,title?,seriesField?,sizeField? |
注意:所有工具都支持全面的错误处理,并返回结构化的JSON响应。
每个工具的综合使用示例可在examples/目录中找到。
pubmed_search_articles:查看示例pubmed_fetch_contents:查看示例pubmed_article_connections:示例 1,示例 2pubmed_research_agent:查看示例pubmed_generate_chart:查看示例# 构建项目(编译TS到JS并在dist/中生成可执行文件)
npm run build
# 清理构建工件
npm run clean
# 清理构建工件并重新构建项目
npm run rebuild
# 检查代码库
npm run lint
# 使用Prettier格式化代码
npm run format
# 为文档生成文件树表示
npm run tree
# 使用stdio(默认)启动服务器
npm start
# 或显式:
npm run start:stdio
# 使用HTTP传输启动服务器
npm run start:http
# 使用MCP检查工具(stdio传输)在本地测试服务器
npm run inspector
# 使用MCP检查工具(http传输)在本地测试服务器
npm run inspector:http
本项目根据Apache License 2.0许可 - 详情请参阅LICENSE文件。