OLS MCP服务器
众所周知,大型语言模型不善于处理本体论,经常会产生术语或其标识符的幻觉。该服务器提供了一种可靠的方法来访问和查询本体,确保信息准确和最新。
此存储库包含一个模型上下文协议(MCP)服务器,提供对 本体查找服务(OLS) API该服务器使AI助手能够从各种生物和医学本体中搜索和检索本体术语、概念和层次结构。
该服务器旨在与Claude Desktop等人工智能助手无缝协作,允许用户使用自然语言查询本体。它支持广泛的本体论,包括基因本体论(GO)、人类表型本体论(HP)和许多其他本体论。
The mcp server in action in Claude Desktop.
不使用(下图顶部)和使用mcp服务器(下图底部):
With and without mcp server in claude desktop.
特性
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的祖先术语是什么?”
查找类似术语
“在基因本体论中找到类似于‘心脏发育’的术语”
开发设置
建立发展环境
- 克隆存储库:
git clone
cd ols-mcp-server- 安装依赖项:
uv sync --extra dev- 激活虚拟环境:
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/添加新功能
- 添加新工具 在……里面
src/ols_mcp_server/server.py使用@mcp.tool()装饰器 - 创建模型 在……里面
src/ols_mcp_server/models.py用于结构化响应 - 更新测试 涵盖新功能
- 更新文档 根据需要
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
故障排除
常见问题
- 找不到服务器:确保Claude配置中指向服务器的路径正确
- 权限错误:确保服务器脚本可执行
- 网络错误:检查您的互联网连接和防火墙设置
- Python版本确保你使用的是Python 3.12或更高版本
贡献
- 分叉存储库
- 创建要素分支:
git checkout -b feature-name - 进行更改
- 运行测试:
uv run pytest - 格式代码:
uv run ruff format - 提交拉取请求
\]
