Ols Mcp Server

Ols Mcp Server

🚀 OLS MCP 服务器

大语言模型在处理本体时表现不佳,常常会虚构术语或其标识符。本服务器提供了一种可靠的方式来访问和查询本体,确保信息准确且最新。

本仓库包含一个模型上下文协议(MCP)服务器,用于访问 本体查询服务(OLS) API。该服务器使 AI 助手能够从各种生物和医学本体中搜索和检索本体术语、概念和层次结构。

本服务器旨在与 Claude Desktop 等 AI 助手无缝协作,允许用户使用自然语言查询本体。它支持广泛的本体,包括基因本体(GO)、人类表型本体(HP)等等。

未启用(下图上半部分)和启用 mcp 服务器(下图下半部分)的对比:

✨ 主要特性

OLS MCP 服务器提供以下工具:

  • 🔍 搜索术语:跨本体搜索术语,并支持灵活过滤
  • 📚 搜索本体:发现可用的本体及其元数据
  • ℹ️ 获取本体信息:检索特定本体的详细信息
  • 🎯 获取术语信息:获取特定术语的全面详细信息
  • 🌳 获取术语子项:查找本体层次结构中的直接子术语
  • 👨‍👩‍👧‍👦 获取术语祖先:检索父术语和祖先
  • 🤖 查找相似术语:使用大语言模型嵌入发现语义相似的术语

📦 安装指南

前提条件

  • Python 3.12 或更高版本
  • uv 包管理器

安装 uv(如果尚未安装)

# macOS/Linux
curl -LsSf https://astral.sh/uv/install.sh | sh

# Windows
powershell -c "irm https://astral.sh/uv/install.ps1 | iex"

安装 OLS MCP 服务器

# 克隆仓库
git clone https://github.com/seandavi/ols-mcp-server.git
cd ols-mcp-server

# 安装依赖
uv sync

# 作为工具安装(可选)
uv tool install .

💻 使用示例

基础用法

在与 Claude Desktop 完成配置后,你可以使用自然语言与 OLS API 进行交互:

# 搜索术语
> "在人类表型本体中搜索与糖尿病相关的术语"
> "在基因本体中查找所有包含 '细胞凋亡' 的术语"

# 获取本体信息
> "告诉我关于基因本体的信息"
> "有哪些适用于化合物的本体?"

# 探索术语层次结构
> "展示基因本体中 '代谢过程' 术语的子项"
> "HP:0000118 的祖先术语有哪些?"

# 查找相似术语
> "在基因本体中查找与 '心脏发育' 相似的术语"

📚 详细文档

开发环境设置

  1. 克隆仓库
    git clone 
    cd ols-mcp-server
    
  2. 安装依赖
    uv sync --extra dev
    
  3. 激活虚拟环境
    source .venv/bin/activate  # macOS/Linux
    # 或者
    .venv\Scripts\activate     # Windows
    

代码质量

# 格式化代码
uv run ruff format

# 代码检查
uv run ruff check

# 类型检查
uv run mypy src/

添加新特性

  1. src/ols_mcp_server/server.py 中使用 @mcp.tool() 装饰器添加新工具
  2. src/ols_mcp_server/models.py创建模型以实现结构化响应
  3. 更新测试以覆盖新功能
  4. 根据需要更新文档

API 文档

服务器与 EBI 本体查询服务 API v2 进行交互。关键端点如下:

  • 搜索https://www.ebi.ac.uk/ols4/api/search
  • 本体https://www.ebi.ac.uk/ols4/api/v2/ontologies
  • 术语https://www.ebi.ac.uk/ols4/api/terms
  • 层次结构https://www.ebi.ac.uk/ols4/api/v2/ontologies/{ontology}/classes/{term}/children

🔧 技术细节

支持的本体

服务器可与通过 EBI 本体查询服务获取的任何本体协同工作,包括:

  • GO(基因本体)
  • EFO(实验因子本体)
  • HP(人类表型本体)
  • MONDO(君主疾病本体)
  • ChEBI(生物相关化学实体)
  • UBERON(超级解剖学本体)
  • 还有更多...

🔧 故障排除

常见问题

  1. 未找到服务器:确保在你的 Claude 配置中服务器的路径正确
  2. 权限错误:确保服务器脚本可执行
  3. 网络错误:检查你的互联网连接和防火墙设置
  4. Python 版本:确保使用的是 Python 3.12 或更高版本

🤝 贡献指南

  1. 分叉仓库
  2. 创建功能分支:git checkout -b feature-name
  3. 进行更改
  4. 运行测试:uv run pytest
  5. 格式化代码:uv run ruff format
  6. 提交拉取请求

📄 许可证

文档中未提及许可证相关信息。

🙏 致谢

  • 0 关注
  • 0 收藏,19 浏览
  • system 提出于 2025-09-20 21:24

相似服务问题

相关AI产品