MGnify MCP 服务器
这个仓库实现了一个MCP服务器,该服务器通过模型上下文协议(Model Context Protocol)提供MGnify的资源和工具。
先决条件
- 推荐使用 Python 3.10+(该
mcpSDK 要求 Python 版本 >= 3.10。项目元数据使用标记来跳过安装mcp在较旧的 Python 版本上无法运行,但服务器无法在没有它的情况下运行。 - pip 版本大于等于 21
- 可选:Docker
快速入门(Python 3.10+)
- 创建并激活虚拟环境
- macOS/Linux: 使用 Python 3 创建虚拟环境 .venv 激活虚拟环境(位于源目录下的venv/bin/activate脚本) - Windows(PowerShell): 使用 Python 3.10 创建虚拟环境 .venv .venv\\Scripts\\Activate.ps1 翻译为中文是:“.venv 目录下的 Scripts 文件夹中的 Activate.ps1 脚本”。不过,通常我们不会直接这样翻译文件名,而是根据上下文理解其用途。在这个上下文中,可以理解为:“激活虚拟环境的 PowerShell 脚本文件”。但为了保持原文件名的直观性,直接翻译文件名如上所述也是可接受的
- 安装(可编辑的)包及其依赖项
使用 pip 安装当前目录下的包,并以可编辑模式(editable mode)安装。
- 配置环境(可选)
- 将 .env.example 文件复制为 .env 文件,并根据需要调整值 复制 .env.example 文件到 .env 文件 - 可用变量: - MG_BASE_URL:覆盖MGnify API的基础URL(默认:https://www.ebi.ac.uk/metagenomics/api/v1) - MG_API_KEY:如果您有API令牌,它将作为Bearer身份验证发送 - BIND, PORT:仅在server.py中启用HTTP传输时使用
- 可选:运行本地冒烟测试(无需MCP客户端)
运行 Python 脚本:scripts/smoke_test.py
- 这将通过随附的客户端调用MGnify API,以确保本地操作正常运行。
- 运行MCP服务器(stdio传输)
magnify-mcp(注:原译文“mgnify-mcp”存在拼写错误,已更正为“magnify-mcp”,但在此处仅说明更正情况,不作为实际翻译输出)
- 服务器将通过标准输入输出(stdio)运行,直到客户端断开连接。请使用与MCP兼容的客户端/工具进行连接。
与Claude桌面版一起使用(示例)
- 添加到您的
claude_desktop_config.json或者配置MCP服务器的用户界面(UI):
{ "mcpServers": { "放大": { "command": "/路径/to/venv/bin/mgnify-mcp",, "env": { "MG_BASE_URL": "https://www.ebi.ac.uk/metagenomics/api/v1" 翻译成中文为:“元基因组基础URL”: “https://www.ebi.ac.uk/metagenomics/api/v1” } } } } 将命令替换为你的虚拟环境(venv)脚本的绝对路径。
备选方案:Docker
- 构建
使用 Docker 构建镜像,并将其标记为 mgnify-mcp。
- 运行(在Docker中使用stdio不实际)。如果您想使用HTTP传输,请在mgnify_mcp/server.py中取消注释serve_http并重新构建,然后:
运行以下命令:\docker run --rm -p 8173:8173 --env-file .env mgnify-mcp\ 然后配置您的客户端以连接到 http://localhost:8173
故障排除
- pip 无法找到 mcp / 忽略版本要求 Python >=3.10
升级到 Python 3.10 或更高版本。服务器依赖于 mcp SDK。
- SSL或网络错误至MGnify API
检查MG_BASE_URL和您的网络。公共API无需API密钥即可访问;某些终端点可能会限制速率。
- 速率限制
服务器返回429错误,来自MGnify的提示是“请稍后重试”。请稍后再次尝试。
开发技巧
- 运行你偏好的单元测试/代码规范检查工具。该代码使用 Pydantic v2 作为输入模式,并使用 Requests 进行 HTTP 请求。
- 入口点在 pyproject.toml 中定义为:mgnify-mcp -> mgnify_mcp.server:main
