非官方HPO MCP服务器
提供对人类表型本体(HPO)API的访问的MCP(模型上下文协议)服务器。HPO包含18000多个描述人类表型异常的术语,广泛应用于遗传研究和临床诊断。
由开发 增强自然
特性
此MCP服务器提供了12种全面的工具来与HPO API交互:
核心搜索和信息工具
- search_hpo_terms -通过关键字、ID或同义词搜索HPO术语,并支持分页
- get_hpo_term -通过ID获取特定HPO术语的详细信息
- 获取所有政策条款 -按页码列出所有HPO术语
- batch_get-hpo术语 -在单个请求中检索多个HPO术语(最多20个术语)
分层导航工具
- get_hpo_ancestors -获取所有祖先术语(层次结构中更高的所有术语)
- 获取租金 -获取直接父条款(上一级)
- 家长会_儿童 -获取直接的子术语(向下一级)
- 获取管理员 -获取所有子代术语(层次结构中较低的所有术语)
分析和实用工具
- validate_hpoid -验证HPO ID格式并验证术语是否存在
- get_hpo_term_path -获取从根到特定术语的完整层次路径
- 比较hpo术语 -比较两个术语,找出它们的关系和共同祖先
- 获取政策条款状态 -获取HPO术语的全面统计和分析
先决条件
- Node.js:版本18或更高版本
- Internet连接:访问HPO API时需要
安装
- 克隆或下载此服务器:
cd hpo-server
npm install- 构建服务器:
npm run build用法
运行服务器
npm start
# or
node build/index.js配置
将服务器添加到MCP设置文件中:
{
"mcpServers": {
"hpo-server": {
"command": "node",
"args": ["/path/to/hpo-server/build/index.js"]
}
}
}使用示例
搜索和发现
- 搜索与扣押相关的术语:
Search for HPO terms related to "seizure" using search_hpo_terms- 按页码搜索:
Search for "heart defect" terms with 20 results per page using search_hpo_terms- 获取详细的学期信息:
Get detailed information about seizure (HP:0001250) using get_hpo_term分层导航
- 探索术语层次结构:
Get all ancestors of seizure term using get_hpo_ancestors- 查找相关术语:
Get direct children of nervous system abnormality using get_hpo_children- 浏览术语后代:
Get all descendant terms of seizure using get_hpo_descendants分析和实用程序
- 验证HPO ID:
Validate if "HP:0001250" is a correct HPO ID using validate_hpo_id- 获取分层路径:
Show the complete path from root to seizure term using get_hpo_term_path- 比较两个术语:
Compare seizure and nervous system abnormality terms using compare_hpo_terms- 获取学期统计数据:
Get comprehensive statistics for seizure term using get_hpo_term_stats- 批量处理:
Get information for multiple terms (HP:0001250, HP:0000707, HP:0001626) using batch_get_hpo_terms- 列出所有术语:
Browse all HPO terms with pagination using get_all_hpo_termsAPI功能
HPO ID格式支持
HPO ID可以以多种格式提供:
- 完整格式:
HP:0001250 - 简短格式:
0001250 - 服务器自动处理格式转换
分页支持
搜索和列表工具支持分页:
max-每页最大结果(因工具而异)offset-要跳过的结果数(默认值:0)
参数详细信息
- 本我 (字符串,大多数工具都需要):HPO术语ID
- 怎么翻译 (字符串,搜索时必需):搜索查询-关键字、HPO ID或同义词
- 类别 (数组,可选):按特定HPO类别筛选
- 最大 (数字,可选):返回的最大结果
- 偏移 (数字,可选):分页偏移
API详细信息
- 基本URL: https://ontology.jax.org/api/hp/
- 认证:不需要(公共API)
- 速率限制:由客户端管理,超时30秒
- 错误处理:全面的错误消息和优雅的降级
项目结构
hpo-server/
├── src/
│ ├── index.ts # Main MCP server implementation
│ ├── types/
│ │ └── hpo.ts # TypeScript interfaces for HPO data
│ ├── utils/
│ │ └── api-client.ts # HPO API HTTP client
│ └── handlers/
│ └── hpo-handlers.ts # MCP tool implementations
├── build/ # Compiled JavaScript output
├── package.json
├── tsconfig.json
└── README.md发展
构建服务器
cd hpo-server
npm run build依赖项
@modelcontextprotocol/sdk-用于服务器实现的MCP SDKaxios-用于HPO API请求的HTTP客户端
关于人类表型本体论
HPO提供了人类疾病中遇到的表型异常的标准化词汇。每个术语都描述了一种表型异常,如“房间隔缺损”或“智力残疾”。HPO是:
- 该公司的旗舰产品 君主倡议
- 部分 全球基因组学与健康联盟 (GA4GH)
- 积极利用医学文献、Orphanet、DECIPHER和OMIM进行开发
- 用于表型驱动的鉴别诊断和基因组分析
错误处理
服务器包括全面的错误处理:
- 尽可能正确格式化无效的HPO ID
- 网络错误提供清晰的用户友好消息
- API错误通过上下文传递
- 带有有用错误消息的参数验证
局限性
- 执行最大结果限制以防止压倒性的反应
- 为了稳定,网络超时设置为30秒
- 某些HPO API端点可能有自己的速率限制(妥善处理)
