______________________________________________________________________
标题:Posebusters MCP服务器 表情符号😻 颜色来源:灰色 颜色:粉红色 sdk:毕业 sdk版本:5.36.2 app_file:app.py 固定:false 许可证:bsd-3条款 short_description:'PoseBusters的MCP服务器:验证配体-蛋白质结构'
查看配置参考https://huggingface.co/docs/hub/spaces-config-reference
🧪 PoseBusters MCP服务器
这个拥抱面部空间提供了一个 MCP-兼容API 大约 PoseBusters,一个用于验证的命令行工具 物理和化学合理性 分子对接姿势。
⚠️ 免责声明\ 该项目是非官方的,与《PoseBusters》的原作者无关,也没有得到其认可。
______________________________________________________________________
✅ 特性
✅ 支持分子文件上传\ 接受配体文件(.sdf)蛋白质结构(.pdb)通过以下任一方式:
- 简单的web界面(Gradio选项卡UI),或
- HTTP POST请求使用
multipart/form-data.
🔁 重做验证(可选)\ 如果晶体配体(.sdf)API通过将其与预测的配体姿态进行比较来进行再填充验证。
⚙️ 利用 bust 来自PoseBusters的CLI\ 在内部,此服务器使用PoseBusters命令行工具来评估:
- 摆出合理性
- 化学有效性
- 几何检查
📊 结构化JSON响应\ 输出如下 模型上下文协议(MCP),使其易于使用,结果如下:
- UI面板
- 工作流
- 逻辑流水线
🤖 MCP-兼容API(用于人工智能工作流程)
该项目完全 符合MCP标准,意味着它遵循 模型上下文协议(MCP),在AI驱动的工作流程和UI中公开工具的标准。
- ✅ 显示有效
GET /mcp/context用于工具发现和UI生成。 - ✅ 接受
POST /mcp/predict随着multipart/form-data用于结构化工具执行。 - ✅ 返回结构化JSON格式的结果,可用于代理、聊天机器人或管道。
- ✅ 自行部署时 拥抱面部空间,它作为一个 MCP服务器 可以从MCP徽章添加到您的工具集中。
*🧠 这对你意味着什么?*
如果你正在使用 带拥抱面MCP的VSCode, 克劳德,或 任何其他MCP兼容客户端,您可以:
- 🔹 使用MCP徽章直接从其空间卡添加此工具。
- 🔹 使用标准UI面板或程序化工作流与之交互。
- 🔹 提交文件,如
.sdf和.pdb并接收经过验证的姿态结果。
*备注*
- 该应用程序在一个 Gradio空间 或Docker容器,使用
FastAPI作为其后端。 - 该应用程序是 完全兼容MCP 和 可发现的 一旦部署。
- 您可以将其托管在自己的基础设施上,也可以将其推送到Spaces,以便立即集成到启用MCP的环境中。
______________________________________________________________________
🤗 如何使用(拥抱脸部空间)
👉 空间UI: https://huggingface.co/spaces/lepanto1571/posebusters-mcp-server
- 上传您的
.sdf配体和.pdb蛋白质档案 - (可选)添加
.sdf使用“真实”晶体配体 - 点击 提交
- 结果将显示在交互式表格中
______________________________________________________________________
🐳 使用Docker在本地运行
1.克隆存储库
git clone https://github.com/lepanto1571/posebusters-mcp-server.git
cd posebusters-mcp-server2.构建Docker镜像
docker buildx build --load -t posebusters-mcp-server .3.运行容器
docker run -p 7860:7860 posebusters-mcp-server服务器将于启动http://localhost:7860.
______________________________________________________________________
⚙️ 如何使用API(MCP-兼容)
🔎 1.通过MCP上下文发现API
# Using curl
curl -X GET http://localhost:7860/mcp/context
# Using Python
import requests
response = requests.get("http://localhost:7860/mcp/context")
context = response.json()2.运行验证(配体+蛋白质)
# Using curl
curl -X POST http://localhost:7860/mcp/predict \
-F action=validate_pose \
-F ligand_input=@ligand.sdf \
-F protein_input=@protein.pdb
# Using Python
import requests
files = {
'ligand_input': ('ligand.sdf', open('ligand.sdf', 'rb')),
'protein_input': ('protein.pdb', open('protein.pdb', 'rb'))
}
data = {'action': 'validate_pose'}
response = requests.post(
"http://localhost:7860/mcp/predict",
files=files,
data=data
)
results = response.json()3.运行重复验证(配体+晶体+蛋白质)
# Using curl
curl -X POST http://localhost:7860/mcp/predict \
-F action=redocking_validation \
-F ligand_input=@ligand.sdf \
-F protein_input=@protein.pdb \
-F crystal_input=@crystal.sdf
# Using Python
import requests
files = {
'ligand_input': ('ligand.sdf', open('ligand.sdf', 'rb')),
'protein_input': ('protein.pdb', open('protein.pdb', 'rb')),
'crystal_input': ('crystal.sdf', open('crystal.sdf', 'rb'))
}
data = {'action': 'redocking_validation'}
response = requests.post(
"http://localhost:7860/mcp/predict",
files=files,
data=data
)
results = response.json()响应格式
所有回复均遵循MCP标准格式:
{
"object_id": "validation_results",
"data": {
"columns": ["ligand_id", "status", "passed/total", "details"],
"rows": [
["mol1", "✅", "8/8", "All tests passed"],
# ... more results
]
}
}错误处理
API使用标准HTTP状态代码:
- 200:成功
- 400:无效请求(文件类型错误,缺少所需文件)
- 500:服务器错误(验证失败,内部错误)
错误响应包括详细消息:
{
"object_id": "validation_results",
"data": {
"columns": ["ligand_id", "status", "passed/total", "details"],
"rows": [
["unknown", "❌", "0/0", "Detailed error message"]
]
}
}🧪 开发和测试
运行测试
测试可以直接使用Docker运行:
# Run tests with verbose output
docker run posebusters-mcp-server pytest -v
# Run tests with coverage report
docker run posebusters-mcp-server pytest --cov=. --cov-report=term-missing验证
API使用JSON架构验证:
- MCP上下文(
/mcp/context) - 预测响应(
/mcp/predict) - 文件类型(MIME验证)
架构定义位于 schema.py.
______________________________________________________________________
📚 文档与引文
📖 PoseBusters文档:
完整用法和命令行参考可在 https://posebusters.readthedocs.io/en/latest
🧾 科学论文:
马丁·布滕绍恩、安德烈亚斯·本德(2023)。“PoseBusters:3D蛋白质-配体结合姿势的一致性检查”。 在arXiv上阅读:https://arxiv.org/abs/2308.05777
💡 如果您在工作中使用此服务器或PoseBusters,请考虑引用原始论文。
______________________________________________________________________
📄 许可证和信用证
此项目使用 PoseBusters 作者:马丁·布滕肖恩(©2023),\ 根据 BSD 3条款许可.\ 原始许可证的完整副本可在以下网址获得: third_party/posebusters/LICENSE.
这项服务是 独立包装器 并且是 不隶属于或认可 原作者。
