本体查询服务

OLS MCP Server 是一个提供可靠访问和查询本体论的服务,确保获取准确和最新的信息,特别适用于生物和医学领域的本体论查询。

  • by seandavi
  • Python
  • 本地部署
  • 24 星标
  • 更新于
在 GitHub 查看 seandavi/ols-mcp-server

使用说明

OLS MCP服务器

众所周知,大型语言模型不善于处理本体论,经常会产生术语或其标识符的幻觉。该服务器提供了一种可靠的方法来访问和查询本体,确保信息准确和最新。

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

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

不使用(下图顶部)和使用mcp服务器(下图底部):

特性

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

  • 🔍 搜索词:通过灵活的过滤跨本体搜索术语
  • 📚 搜索本体论:发现可用的本体及其元数据
  • ℹ️ 获取本体信息:检索有关特定本体的详细信息
  • 🎯 获取学期信息:获取有关特定条款的全面详细信息
  • 🌳 获得定期子女:在本体层次结构中查找直接的子术语
  • 👨‍👩‍👧‍👦 获取定期祖先:检索父术语和祖先
  • 🤖 查找类似术语:使用LLM嵌入发现语义相似的术语

支持的本体论

服务器可以使用通过EBI本体查找服务提供的任何本体,包括:

  • 去 (基因本体论)
  • EFO (实验因素本体论)
  • 惠普 (人类表型本体论)
  • 盟多 (君主病本体论)
  • 飞燕 (具有生物意义的化学实体)
  • UBERON (优步解剖学本体论)
  • 还有更多。..

安装

先决条件

  • Python 3.12或更高版本
  • 紫外线 包管理器

安装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服务器

# Clone the repository
git clone https://github.com/seandavi/ols-mcp-server.git
cd ols-mcp-server

# Install dependencies
uv sync

# Install as a tool (optional)
uv tool install .

配置

Claude桌面配置

要将此服务器与Claude Desktop一起使用,请将以下配置添加到您的Claude Desktop配置文件中:

macOS: ~/Library/Application Support/Claude/claude_desktop_config.json 视窗: %APPDATA%\Claude\claude_desktop_config.json

{
  "mcpServers": {
    "ols-mcp-server": {
      "command": "uv",
      "args": [
        "tool",
        "run",
        "ols-mcp-server"
      ],
      "env": {}
    }
  }
}

替代配置(如果作为工具安装)

如果您将服务器安装为uv工具,则可以使用以下更简单的配置:

{
  "mcpServers": {
    "ols-mcp-server": {
      "command": "ols-mcp-server",
      "args": [],
      "env": {}
    }
  }
}

使用示例

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

搜索术语

“在人类表型本体中搜索与糖尿病相关的术语”

“在基因本体论中查找所有包含‘凋亡’的术语”

获取本体信息

“告诉我基因本体论”

“化合物有哪些本体论?”

探索术语层次结构

“给我看看GO中‘代谢过程’一词的孩子们”

“HP:0000118的祖先术语是什么?”

查找类似术语

“在基因本体论中找到类似于‘心脏发育’的术语”

开发设置

建立发展环境

  1. 克隆存储库:

    git clone <repository-url>
    cd ols-mcp-server
    
  2. 安装依赖项:

    uv sync --extra dev
    
  3. 激活虚拟环境:

    source .venv/bin/activate  # macOS/Linux
    # or
    .venv\Scripts\activate     # Windows
    

代码质量

# Format code
uv run ruff format

# Lint code
uv run ruff check

# Type checking
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

故障排除

常见问题

  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. 提交拉取请求 ]

致谢