BioContextAI - 知识库MCP是一个用于生物医学研究的模型上下文协议(MCP)服务器,它为人工智能系统和生物医学资源之间提供了一个标准化的连接层。更多文档和使用指南请访问:https://biocontext.ai
BioContextAI知识库MCP是针对常见生物医学资源的MCP服务器实现,它使具有智能代理能力的大语言模型(LLM)能够检索经过验证的信息并执行特定领域的任务。与之前需要为每个资源进行自定义集成的方法不同,BioContextAI KB MCP通过模型上下文协议提供了一个统一的访问层,实现了AI系统与特定领域数据源之间的互操作性。
知识库MCP有以下两种使用方式:
⚠️ 重要提示
若条件允许,建议您在本地运行BioContextAI知识库MCP,以避免速率限制,并确保依赖远程托管的应用程序的服务可用性。
知识库MCP是更广泛的 BioContextAI项目 的一部分。BioContextAI注册表 对公开生物医学数据库和分析工具的社区服务器进行编目,为社区提供工具发现和分发的资源。注册表索引可在以下链接找到:https://biocontext.ai/registry。
如果我们的工作对您的研究有帮助,请按以下方式引用:
TBA.
BioContextAI知识库MCP公开了多个外部生物医学API。您可以将BioContextAI视为LLM的浏览器,使其能够在这些知识库中查找相关信息。使用BioContextAI知识库MCP时,请务必遵守各个服务的使用限制(例如速率限制)。如果您在研究中使用了这些服务的数据,请务必同时引用BioContextAI以及相应的数据源/工具。
⚠️ 重要提示
通过这些API访问的数据不在BioContextAI知识库MCP许可证的覆盖范围内。您有责任确保您对数据的使用符合许可规定。
FastMCP 允许将遵循OpenAPI规范的REST端点轻松转换为MCP服务器。我们添加了代码,可根据配置文件中提供的模式自动创建此类服务器,以便部署自己版本的BioContextAI的用户可以轻松扩展可用工具列表。配置文件位于 src/biocontext_kb/openapi/config.yaml。默认情况下,不包含任何OpenAPI服务器,但您可以编辑配置文件来添加服务。
克隆此仓库的最新版本:
git clone https://github.com/biocontext-ai/core-mcp-server.git
cd core-mcp-server
# 构建Docker容器
docker build -t biocontext_kb:latest .
docker run -p 127.0.0.1:8000:8000 biocontext_kb:latest
此方式将在 http://127.0.0.1:8000/mcp/ 公开您的MCP服务器。
⚠️ 重要提示
对于公共部署,您应该禁用不必要的端口,并通过反向代理(例如Nginx或Caddy)访问MCP服务器。您可能还需要配置运行用户和目录以限制权限,在无root权限的设置中使用Docker或podman,并采取额外的安全措施,如使用Cloudflare进行DDoS保护或使用fail2ban。
uv 进行本地部署,支持可流式HTTP和uvicornuv build
export MCP_ENVIRONMENT=PRODUCTION
export PORT=8000
biocontext_kb
uv 进行本地部署,使用标准输入输出传输uv build
export MCP_ENVIRONMENT=DEVELOPMENT
biocontext_kb
claude_desktop_config.json){
"mcpServers": {
"biocontext_kb": {
"command": "uvx",
"args": [
"biocontext_kb@latest"
],
"env": {
"UV_PYTHON": "3.12"
}
}
}
}
别忘了重启Claude以使更改生效。
.vscode/mcp.json)、Cursor(.cursor/mcp.json)或WindSurf(.codeium/windsurf/mcp_config.json)中与编码代理一起进行本地部署{
// VS Code: "servers"
"mcpServers": {
"biocontext_kb": {
// 如果无法正常工作,请替换为 `which uvx` 的路径(建议在macOS上通过Homebrew安装)
"command": "uvx",
"args": [
"biocontext_kb@latest"
]
}
}
}
在Windows和WSL2环境中,上述配置需要进行如下调整:
{
// VS Code: "servers"
"mcpServers": {
"biocontext_kb": {
"command": "wsl",
"args": [
"~/.local/bin/uvx", // 设置为您的 `uvx` 路径
"biocontext_kb"
]
}
}
}
本项目采用Apache License 2.0许可 - 详情请参阅LICENSE文件。
⚠️ 重要提示
Apache 2.0许可证仅适用于此仓库中提供的代码。对于各个集成API的使用限制和许可证,用户应直接参考相应的API提供商。以下是相关概述:
| 数据源 | 许可证 | URL | 备注 |
|---|---|---|---|
| AlphaFold (EMBL-EBI) | CC BY 4.0 | https://alphafold.ebi.ac.uk/ | |
| 抗体注册表 (RRIDs) | CC0(元数据:CC-NC) | https://www.antibodyregistry.org/faq | 部分元数据有商业再利用限制 |
| bioRxiv/medRxiv | CC BY 4.0 | https://www.biorxiv.org/about/FAQ | 预印本内容许可证各不相同 |
| ClinicalTrials.gov API | 使用条款 | https://clinicaltrials.gov/about-site/terms-conditions | 需要注明出处 |
| Ensembl | 无限制* | https://www.ensembl.org/info/about/legal/disclaimer.html | *部分第三方数据可能有限制 |
| EuropePMC | 多种/版权保护 | https://europepmc.org/Copyright | 个别文章许可证各不相同 |
| 谷歌学术 | 使用条款 | https://scholar.google.com/intl/en/scholar/terms.html | 有速率限制;请合理使用 |
| Grants.gov API | 使用条款 | https://www.grants.gov/api/terms-conditions | 需要注明出处 |
| 人类蛋白质图谱 | CC BY-SA 4.0 | https://www.proteinatlas.org/about/licence | |
| InterPro | CC0 1.0通用 | https://www.ebi.ac.uk/interpro/ | 包括InterPro、Pfam、PRINTS和SFLD数据 |
| KEGG | 专有(免费学术使用) | https://www.kegg.jp/kegg/legal.html | 不允许提供商业服务或远程托管 |
| 本体查找服务 (EMBL-EBI) | 一般为CC0/CC BY | https://www.ebi.ac.uk/licencing/ | 请参考EMBL-EBI通用许可 |
| Open Targets | CC0 1.0 | https://platform-docs.opentargets.org/licence | |
| OpenFDA | CC0 1.0通用* | https://open.fda.gov/license/ | *部分数据可能有限制 |
| PanglaoDB | 公共数据 | https://panglaodb.se/about.html | 所有数据均为公共数据 |
| PRIDE | CC0/CC BY 4.0* | https://www.ebi.ac.uk/pride/markdownpage/license | *2018年6月以后的数据集为CC0,衍生资源为CC BY 4.0 |
| Reactome | CC0 | https://reactome.org/license | |
| STRING | CC BY 4.0 | https://string-db.org/cgi/access?footer_active_subpage=licensing | |
| UniProt | CC BY 4.0 | https://www.uniprot.org/help/license |
用户在通过此MCP服务器访问数据时,应独自承担确保遵守所有适用许可条款和条件的责任。 上述列出的许可证和条款可能会发生变化,特定数据集或出版物可能会有额外的引用要求。在将任何数据用于商业目的、重新分发或出版之前,请直接从每个数据源审查当前的许可条款。某些数据源可能有未在此摘要中完全涵盖的额外限制。
特别需要注意的是,对于KEGG数据,虽然允许学术使用,但根据其专有许可条款,不允许使用KEGG数据提供商业服务或进行远程托管。