SNOMED CT术语服务

一个提供SNOMED CT术语服务的模型上下文协议(MCP)服务器,可部署在Cloudflare Workers上,实现无服务器访问SNOMED CT数据。

  • by OrgLance
  • TypeScript
  • 本地部署
  • 3 星标
  • 更新于
在 GitHub 查看 OrgLance/snomed-mcp-server

使用说明

SNOMED CT MCP服务器

一种模型上下文协议(MCP)服务器,提供对SNOMED CT术语服务的访问。此服务器可以部署在Cloudflare Workers上,用于对SNOMED CT数据进行可扩展的无服务器访问。

特性

  • 搜索概念:按术语搜索SNOMED CT概念
  • 概念细节:获取有关特定概念的详细信息
  • 描述:检索概念的所有描述
  • 关系:获取概念关系和层次结构
  • 导航:浏览概念儿童和家长
  • ECL支持:使用表达式约束语言搜索

可用工具

  1. search_concepts -按术语搜索概念
  2. get_concept -按ID获取概念细节
  3. get_concept_descriptions -获取概念的所有描述
  4. get_concept_relationships -获取概念关系
  5. get_concept_children -获取儿童概念
  6. get_concept_parents -获取父概念
  7. search_by_ecl -使用ECL表达式搜索

安装

先决条件

  • Node.js 20或更高版本
  • npm或纱线
  • 克劳德桌面应用程序

从GitHub安装

  1. 克隆存储库:
git clone https://github.com/yourusername/snomed-mcp-server.git
cd snomed-mcp-server
  1. 安装依赖项:
npm install
  1. 构建项目:
npm run build

配置Claude桌面

  1. 打开您的Claude Desktop配置文件:

    • macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
    • 视窗: %APPDATA%\Claude\claude_desktop_config.json
    • Linux: ~/.config/Claude/claude_desktop_config.json
  2. 将SNOMED MCP服务器添加到您的配置中:

{
  "mcpServers": {
    "snomed-mcp-server": {
      "command": "node",
      "args": ["path/to/snomed-mcp-server/dist/index.js"]
    }
  }
}

重要:替换 path/to/snomed-mcp-server 使用克隆存储库的实际路径。

  1. 重新启动克劳德桌面 以使更改生效。

验证安装

重新启动Claude Desktop后,您应该看到以下SNOMED CT工具可用:

  • search_concepts -搜索SNOMED CT概念
  • get_concept -获取详细的概念信息
  • get_concept_descriptions -获取概念描述
  • get_concept_relationships -获取概念关系
  • get_concept_children -获取儿童概念
  • get_concept_parents -获取父概念
  • search_by_ecl -使用ECL表达式搜索

发展

在本地运行:

npm run dev

构建:

npm run build

部署到Cloudflare Workers

  1. 安装牧马人CLI:
npm install -g wrangler
  1. 登录Cloudflare:
wrangler auth login
  1. 部署:
npm run deploy

使用示例

截图

搜索概念

{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "search_concepts",
    "arguments": {
      "term": "heart attack",
      "limit": 10
    }
  }
}

获取概念细节

{
  "jsonrpc": "2.0",
  "id": 2,
  "method": "tools/call",
  "params": {
    "name": "get_concept",
    "arguments": {
      "conceptId": "22298006"
    }
  }
}

使用ECL搜索

{
  "jsonrpc": "2.0",
  "id": 3,
  "method": "tools/call",
  "params": {
    "name": "search_by_ecl",
    "arguments": {
      "ecl": "< 404684003",
      "limit": 20
    }
  }
}

API终点

服务器使用SNOMED国际公共术语服务器:

  • 基本URL: https://browser.ihtsdotools.org/snowstorm/snomed-ct/MAIN
  • 查找 URL : https://snowstorm.ihtsdotools.org/fhir

故障排除

MCP服务器未出现在Claude桌面中

  1. 检查配置文件路径:确保您正在为操作系统编辑正确的配置文件
  2. 验证JSON语法:确保你的 claude_desktop_config.json 具有有效的JSON语法
  3. 检查文件路径:确保路径 dist/index.js 是正确和绝对的
  4. 需要重启:配置更改后始终重新启动Claude Desktop
  5. 先建造:运行 npm run build 在配置Claude Desktop之前

连接问题

  1. 检查构建输出:确保 dist/index.js 运行后存在 npm run build
  2. 本地测试:运行 npm run dev 在本地测试服务器
  3. Node.js版本:确保您使用的是Node.js 20或更高版本
  4. 权限:确保Claude Desktop可以访问文件路径

常见配置错误

  • 在配置中使用相对路径而不是绝对路径
  • 更改后忘记重新启动Claude Desktop
  • 缺少构建步骤(npm run build)
  • 配置文件中的JSON语法错误

获取帮助

如果您继续遇到问题:

  1. 检查克劳德桌面日志
  2. 验证服务器是否运行 npm run dev
  3. 确保所有文件路径正确且可访问

许可证

麻省理工学院

贡献

  1. 分叉存储库
  2. 创建要素分支
  3. 进行更改
  4. 提交拉取请求

免责声明

此服务器使用SNOMED国际公共术语服务器作为参考。它不适用于生产医疗保健系统。请参阅SNOMED International的商业使用许可条款。