分子上下文协议服务器

Aurora-MCP是一个模型上下文协议(MCP)服务器,提供自然和合成小分子数据集的访问,专注于识别可能存在于植物物种中的潜在线粒体复合物I抑制剂。

  • by ndaniel
  • Python
  • 本地部署
  • 更新于
在 GitHub 查看 ndaniel/aurora-mcp

使用说明


标题:Aurora-MCP “Emoji”必须翻译为表情符号,原文内容为“🌿”,译文内容即为“🌿”(保持不变,因为“🌿”本身已是表情符号,无需额外翻译) 颜色来自:绿色 颜色转为:靛蓝 SDK:Docker 固定状态:未固定(或“未钉住”)

🌿 极光-MCP(注:Aurora-MCP可能是一个特定项目、技术或产品的名称,根据上下文,“MCP”可能代表多种含义,如“多通道板”、“移动计算平台”等,但在此处直接翻译为“极光-MCP”以保留原名)

模型上下文协议(MCP)服务器,提供对自然数据集的访问 以及合成小分子,重点在于鉴定潜在的 可能存在于植物物种中的线粒体复合体I抑制剂。


🔍 概述

Aurora-MCP 是一个模型上下文协议(MCP)服务器和数据集成层,用于连接天然产物、生物多样性和线粒体抑制剂数据集。 它使大型语言模型(LLMs)和用户能够查询植物物种、小分子与线粒体复合物I抑制之间的关系——连接COCONUT、Laji.fi、GBIF等资源, 并通过结构化连接和元数据模式,获取AI衍生的PubMed数据。

Aurora-MCP 是一个轻量级(的) MCP服务器 + Hugging Face空间 旨在连接两个互补的知识来源:

  1. 🌿(绿叶符号,常用于表示自然、环保、健康等概念) 极光 — 天然产物和植物生物多样性数据,将化合物映射到北欧生态系统中发现的属和物种。
  2. 🧬 这个符号在生物学中通常代表“DNA”(脱氧核糖核酸)。 Aurora-Mito-ETL 翻译为中文是:“极光-线粒体-ETL(或:极光线粒体数据抽取、转换和加载工具)”。不过,具体翻译可能会根据上下文和专业领域的习惯有所调整,但“极光-线粒体-ETL”或类似的表述是较为直接的翻译方式。在这里,“ETL”通常指的是“Extract, Transform, Load”,即数据抽取、转换和加载的过程 — 精选自PubMed的线粒体复合物I(NADH脱氢酶)小分子抑制剂语料库。

它们共同构成了一个对话数据集,其中 ChatGPT (或任何与MCP兼容的大型语言模型)能够对结构化生物数据进行推理,提出问题, 并对小分子化合物、植物以及它们之间的机制联系进行有针对性的搜索。


🧠 概念

目标: 允许与基于领域数据的大型语言模型(LLM)进行科学对话,例如:

“给我展示一些能抑制线粒体复合物I的植物来源化合物。”
“在PubMed中查找关于牛蒡子酚作为复合体I抑制剂的证据。”
“列出代谢产物与已知电子传递链(ETC)抑制剂重叠的北欧植物。”

Aurora-MCP 将您的静态文本/TSV 数据转换为 交互式语义后端,提供用于搜索、链接和推理的程序化工具。 一个基于FastAPI的MCP终端(或:一个使用FastAPI实现的MCP端点)/mcp)ChatGPT(或任何MCP-aware客户端) 可以连接到。它还提供 /healthz 用于状态检查和简单的调试HTTP路由 用于本地测试。


🚀 快速启动(本地)

# 1. Create a clean environment
python3 -m venv .venv
source .venv/bin/activate
pip install -r requirements.txt

# 2. Run the MCP HTTP server
uvicorn mcp_server.server:app --host 0.0.0.0 --port 7860

# 3. Check health
curl -s http://127.0.0.1:7860/healthz | jq

# 4. Optional: test the debug routes
curl -s 'http://127.0.0.1:7860/debug/list_files?path=data' | jq

你应该会看到类似这样的内容:

{
  "ok": true,
  "mcp": "mounted at /mcp",
  "tools": ["list_files","read_text"]
}

🧠 与ChatGPT结合使用(MCP)

  1. 将此仓库部署到一个 Hugging Face Space (Docker SDK) 翻译为中文是:(Docker 开发工具包)。
  2. 等待Space(可能指某个程序或系统)运行起来,然后 /healthz 返回200 OK:
    https://huggingface.co/spaces/<you>/<space>/healthz
  3. 在ChatGPT中 → 设置 → 连接器/MCP → 添加服务器
    • 服务器URL: https://huggingface.co/spaces/<you>/<space>/mcp
  4. 打开一个新的聊天窗口,试着输入例如:
    • list_files(path="data")
    • read_text(path="README.md")
    • (可以类似地添加Aurora域名工具。)

🐳 Docker(用于 Hugging Face 空间)

FROM python:3.12-slim

WORKDIR /app
ENV PYTHONDONTWRITEBYTECODE=1 PYTHONUNBUFFERED=1 PIP_NO_CACHE_DIR=1

RUN apt-get update && apt-get install -y --no-install-recommends     build-essential curl ca-certificates  && rm -rf /var/lib/apt/lists/*

COPY requirements.txt .
RUN pip install --upgrade pip && pip install -r requirements.txt

COPY . .
EXPOSE 7860
ENV PORT=7860

HEALTHCHECK --interval=30s --timeout=5s --start-period=10s --retries=5   CMD curl -fsS http://127.0.0.1:${PORT}/healthz || exit 1

CMD ["uvicorn","mcp_server.server:app","--host","0.0.0.0","--port","7860"]

🧩 架构概述

组件 描述
FastAPI 应用 主办 /mcp 流式传输终端和 /healthz 检查
FastMCP MCP服务器层,将Python函数作为MCP工具暴露出来
工具 简单函数 (list_files, read_text等)可以被MCP客户端调用
极光域 来自您Aurora ETL数据的(未来)植物化合物与抑制剂分析

📂 项目布局

aurora-mcp/
├── mcp_server/
│   ├── server.py          # FastAPI + FastMCP entrypoint
│   ├── tools/
│   │   └── files.py       # Example tools (list_files, read_text)
│   └── __init__.py
├── data/                  # Local data (ignored by git)
├── requirements.txt
├── Dockerfile
├── huggingface.yaml
└── README.md

✅ 健康检查与调试路由

终点 用途
/healthz 轻量级JSON健康检查
/debug/list_files 列出目录内容(无MCP)
/debug/read_text 将文件作为纯文本读取

⚙️ 要求

fastapi>=0.119
uvicorn>=0.37
mcp>=0.17.0
pydantic>=2.11.9
pandas>=2.3.3

使用以下方式进行安装:

pip install -r requirements.txt

🧱 Hugging Face Space 元数据

# huggingface.yaml
title: Aurora-MCP
sdk: docker
emoji: 🌿
colorFrom: green
colorTo: indigo
pinned: false

🔍 故障排除

症状 原因/解决方法
GET /mcp → 307/500 正常;仅MCP客户端可以连接
Task group is not initialized 通过FastMCP启动钩子修复
ModuleNotFoundError: mcp.server.fastapi 安装正确的SDK: pip install mcp fastapi uvicorn
healthz 返回空 Curl 127.0.0.1 不是 0.0.0.0

作者丹尼尔·尼科里奇·赫尔辛基大学
**许可证:**GNU通用公共许可证第3版(GPL v3)
**URL:**https://github.com/ndaniel/aurora-mcp 的中文翻译可以是:“https://github.com/ndaniel/aurora-mcp(GitHub上的Aurora-MCP项目,由ndaniel维护)”。不过,通常在中文语境下,我们可能会直接保留网址,并简要说明其内容或用途,如果上下文已经明确或不需要详细说明,也可以直接说“网址:https://github.com/ndaniel/aurora-mcp”