使用说明
InterPro MCP 服务器
InterPro API通过模型上下文协议(MCP)与Claude AI集成,提供蛋白质结构域、结构和分类数据的访问。
特点/特性
- 12个API函数 - 6个同步版本 + 6个异步版本
- 6 种数据类型条目,蛋白质,结构,集合,分类学,蛋白质组
- 并发请求 异步函数支持并行API调用
- MCP 集成 - 准备与Claude桌面版一起使用
- 全面测试 - 为同步和异步函数提供完整的测试套件
安装
先决条件
- Python 3.10 或更高版本
- UV包管理器
设置
- 创建虚拟环境:
cd interpro-mcp
uv venv
source .venv/bin/activate # On Windows: .venv\Scripts\activate
- 安装依赖项:
uv pip install requests aiohttp python-dotenv fastmcp
API 函数
同步函数
所有函数都支持相同的参数结构:
source数据库源(可选)accession特定ID/登录号(可选)page_size每页结果数(默认:20,最大:200)extra_fields要包含的额外字段(可选)
可用功能:
get_entry()- 蛋白质结构域条目(InterPro、Pfam、CDD等)get_protein()- 蛋白质序列(UniProtKB)get_structure()- PDB(蛋白质数据库)结构get_set()- 关系集(氏族、家庭)get_taxonomy()- 分类学信息get_proteome()- 蛋白质组集合
异步函数
每个函数都有一个异步版本,其中 _async 后缀:
get_entry_async()get_protein_async()get_structure_async()get_set_async()get_taxonomy_async()get_proteome_async()
使用示例
同步:
from interpro_api import get_protein, get_entry
# Get specific protein
result = get_protein(source='uniprot', accession='P04637')
# Get Pfam entries
entries = get_entry(source='pfam', page_size=50)
异步:
import asyncio
from interpro_api import get_protein_async, get_entry_async
async def fetch_data():
# Run multiple requests concurrently
results = await asyncio.gather(
get_protein_async(source='uniprot', accession='P04637'),
get_entry_async(source='pfam', accession='PF00001'),
get_taxonomy_async(source='uniprot', accession='9606')
)
return results
# Run async function
asyncio.run(fetch_data())
测试
运行同步测试
source .venv/bin/activate
python test_interpro_api.py
运行异步测试
source .venv/bin/activate
python test_async_functions.py
MCP服务器
MCP服务器将所有6个同步函数作为工具提供给Claude Desktop使用:
interpro_get_entryinterpro_get_proteininterpro_get_structureinterpro_get_setinterpro_get_taxonomyinterpro_get_proteome
配置Claude桌面版
添加到 claude_desktop_config.json:
{
"mcpServers": {
"interpro": {
"command": "/path/to/interpro-mcp/.venv/bin/python",
"args": ["/path/to/interpro-mcp/interpro_mcp_server.py"]
}
}
}
运行服务器
source .venv/bin/activate
python interpro_mcp_server.py
项目结构
interpro-mcp/
├── .venv/ # Virtual environment (uv)
├── interpro_api.py # 12 API functions (6 sync + 6 async)
├── interpro_mcp_server.py # MCP server with 6 tools
├── test_interpro_api.py # Synchronous function tests
├── test_async_functions.py # Async function tests
├── pyproject.toml # Project configuration
└── README.md # This file
数据类型
1. 入口/入场
预测蛋白质的功能域和结构域
- 来源InterPro、Pfam、CDD、CATH-Gene3D、HAMAP、PANTHER、PRINTS、PROSITE、SMART、Superfamily
- 示例:
get_entry(source='pfam', accession='PF00001')
2. 蛋白质
来自UniProtKB的蛋白质序列
- 来源已审核,未审核,Uniprot(注:Uniprot是一个蛋白质数据库)
- 示例:
get_protein(source='uniprot', accession='P04637')
3. 结构
来自PDB的高分子结构
- 来源pdb(Python调试器)
- 示例:
get_structure(source='pdb', accession='1UBQ')
4. 设定/设置
条目(氏族、家族)之间的关系
- 来源Pfam,CDD,PIRSF
- 示例:
get_set(source='pfam', accession='CL0001')
5. 分类学
来自UniProtKB的分类信息
- 来源Uniprot(注:Uniprot是一个生物信息学数据库,用于存储和提供蛋白质序列和功能信息,此处直接使用其英文名称,因为中文中没有广泛使用的对应译名)
- 示例:
get_taxonomy(source='uniprot', accession='9606')
6. 蛋白质组
来自全基因组测序的蛋白质集合
- 来源Uniprot(一个蛋白质数据库)
- 示例:
get_proteome(source='uniprot', accession='UP000005640')
演出
- 异步函数支持并发请求以提高性能
- 超时每个请求30秒
- 分页每页最多显示200个结果
- 速率限制尊重EBI API指南
许可证
麻省理工学院许可证
做出贡献
欢迎贡献!请提交拉取请求。