article
README
🚀 UniProt MCP 服务器
UniProt MCP 服务器是一个基于模型上下文协议(MCP)的服务器,它能够让 AI 助手直接从 UniProt 获取蛋白质的功能和序列信息,为蛋白质信息的获取提供了便捷的途径。
🚀 快速开始
- 确保您的系统已安装 Python 3.10 或更高版本。
- 克隆此仓库:
git clone https://github.com/TakumiY235/uniprot-mcp-server.git cd uniprot-mcp-server - 安装依赖项:
# 使用uv(推荐) uv pip install -r requirements.txt # 或使用pip pip install -r requirements.txt
✨ 主要特性
- 可通过 UniProt 访问ion号获取蛋白质信息。
- 支持批量检索多个蛋白质的信息。
- 带有 24 小时过期时间的缓存机制,有效提高性能。
- 具备错误处理和日志记录功能。
- 可提供的信息包括:
- 蛋白质名称
- 功能描述
- 完整序列
- 序列长度
- 生物物种
📦 安装指南
克隆仓库
git clone https://github.com/TakumiY235/uniprot-mcp-server.git
cd uniprot-mcp-server
安装依赖项
pip install -r requirements.txt
启动服务器
python server.py
💻 使用示例
基础用法
在将服务器配置到 Claude Desktop 后,您可以提出如下问题:
能否获取UniProt访问ion号P98160的蛋白质信息?
高级用法
对于批量查询,您可以这样提问:
能否获取并比较P04637和P02747两个 UniProt 访问ion号对应的蛋白质信息?
📚 详细文档
配置
将以下内容添加到您的 Claude Desktop 配置文件中:
- Windows:
%APPDATA%\Claude\claude_desktop_config.json - macOS:
~/Library/Application Support/Claude/claude_desktop_config.json - Linux:
~/.config/Claude/claude_desktop_config.json
{
"mcpServers": {
"uniprot": {
"command": "uv",
"args": ["--directory", "path/to/uniprot-mcp-server", "run", "uniprot-mcp-server"]
}
}
}
API 参考
工具
get_protein_info- 功能:获取单个蛋白质的信息。
- 必要参数:
accession(UniProt 访问ion号)。 - 示例响应:
{ "accession": "P12345", "name": "蛋白质名称", "function": "蛋白质功能描述", "sequence": "MKTMDVLLMVLTALAVLYQRL...", "length": 1024, "species": "Homo sapiens" }
get_batch_proteins- 功能:批量获取多个蛋白质的信息。
- 必要参数:
accessions(包含多个访问ion号的列表)。 - 可选参数:
include_sequence(是否包含序列,默认为 true)。
🔧 技术细节
- 使用
httpx进行 HTTP 请求。 - 基于
OrderedDict实现缓存机制。 - 支持多线程处理并发请求。
- 内置错误处理机制。
错误处理
可能的错误
- 无效访问ion号
- 返回 400 Bad Request。
- 示例响应:
{ "error": "Invalid accession number" }
- 网络错误
- 返回 503 Service Unavailable。
- 示例响应:
{ "error": "Network error occurred while fetching data" }
贡献指南
如何贡献
- 叉仓库:
git clone https://github.com/TakumiY235/uniprot-mcp-server.git - 创建功能分支:
git checkout -b feature/your-feature-name - 提交更改:
git commit -m "你的提交信息" - 推送到远程仓库:
git push origin feature/your-feature-name - 提交拉取请求。
代码规范
- 遵循 PEP8 编码规范。
- 使用有意义的变量名。
- 添加详细的注释,确保代码可读性。
📄 许可证
本项目遵循 MIT 许可证 - 请查看 LICENSE 文件以获取详细信息。
致谢
- UniProt 提供蛋白质数据 API。
- Anthropic 提供模型上下文协议规范。
- 所有贡献者帮助改进此项目。
Scan to contact