UniProt MCP服务器
提供对UniProt蛋白质信息访问的模型上下文协议(MCP)服务器。该服务器允许AI助手直接从UniProt获取蛋白质功能和序列信息。
特性
- 通过UniProt登录号获取蛋白质信息
- 批量检索多种蛋白质
- 缓存以提高性能(24小时TTL)
- 错误处理和日志
- 信息包括:
- 蛋白质名称 - 功能描述 - 完整序列 - 序列长度 - 生物体
快速开始
- 确保您安装了Python 3.10或更高版本
- 克隆此存储库:
git clone https://github.com/TakumiY235/uniprot-mcp-server.git
cd uniprot-mcp-server- 安装依赖项:
# Using uv (recommended)
uv pip install -r requirements.txt
# Or using pip
pip install -r requirements.txt配置
添加到您的Claude Desktop配置文件中:
- 窗户:
%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"]
}
}
}使用示例
在Claude Desktop中配置服务器后,您可以提出以下问题:
Can you get the protein information for UniProt accession number P98160?对于批量查询:
Can you get and compare the protein information for both P04637 and P02747?api参考
工具
get_protein_info
- 获取单一蛋白质的信息 - 必需参数: accession (UniProt登录号) - 示例响应:
{
"accession": "P12345",
"protein_name": "Example protein",
"function": ["Description of protein function"],
"sequence": "MLTVX...",
"length": 123,
"organism": "Homo sapiens"
}get_batch_protein_info
- 获取多种蛋白质的信息 - 必需参数: accessions (UniProt登录号数组) - 返回蛋白质信息对象的数组
发展
建立开发环境
- 克隆存储库
- 创建虚拟环境:
python -m venv .venv
source .venv/bin/activate # On Windows: .venv\Scripts\activate- 安装开发依赖项:
pip install -e ".[dev]"运行测试
pytest代码风格
本项目使用:
- 黑色用于代码格式化
- isort用于导入排序
- 8号棉绒片
- mypy用于类型检查
- 土匪进行安全检查
- 依赖漏洞检查的安全性
运行所有检查:
black .
isort .
flake8 .
mypy .
bandit -r src/
safety check技术细节
- 使用MCP Python SDK构建
- 使用httpx进行异步HTTP请求
- 使用基于OrderedDict的缓存实现24小时TTL缓存
- 处理速率限制和重试
- 提供详细的错误消息
错误处理
服务器处理各种错误情况:
- 无效的登录号(404个响应)
- API连接问题(网络错误)
- 速率限制(429个响应)
- 格式错误的响应(JSON解析错误)
- 缓存管理(TTL和大小限制)
贡献
我们欢迎捐款!请随时提交拉取请求。以下是您如何做出贡献:
- 分叉存储库
- 创建功能分支(
git checkout -b feature/amazing-feature) - 提交您的更改(
git commit -m 'Add some amazing feature') - 推到分支(
git push origin feature/amazing-feature) - 打开拉取请求
请确保根据需要更新测试,并遵循现有的编码风格。
许可证
此项目根据MIT许可证获得许可-请参阅 许可证 文件以获取详细信息。
致谢
- UniProt提供蛋白质数据API
- 模型上下文协议规范的拟人化
- 帮助改进此项目的贡献者
