OT知识MCP服务器
模型上下文协议(MCP)服务器,提供全面的职业治疗知识库。该服务器使AI助手能够访问精心策划的OT资源,包括临床状况、循证干预、标准化评估、治疗技术和专业术语。
特性
- 条件数据库:按身体系统和年龄组搜索和过滤OT相关条件
- 循证干预:获得具有证据水平和结果衡量标准的干预措施
- 标准化评估:按领域和人群查找加班评估和评价工具
- 处理技术:查找按条件和方法筛选的治疗方法
- 专业术语表:搜索OT术语、缩写和定义
- 临床指南:访问权威的临床实践指南
- Web资源获取:检索web内容并将其转换为markdown格式
- 开放遥测集成:具有跟踪和度量的完全可观察性
- 承载令牌身份验证:通过可配置的身份验证实现API安全访问
MCP工具
search_conditions
使用可选过滤器搜索OT条件数据库。
参数:
query(可选):在条件名称、描述、别名和症状中进行文本搜索bodySystem(可选):按身体系统(神经、肌肉骨骼、心肺、皮肤、感觉、认知、心理社会、发育)过滤ageGroup(可选):按年龄组筛选(儿科、青少年、成人、老年人)
get_treatments
寻找职业治疗技术。
参数:
query(可选):在治疗名称、描述和适应症中进行文本搜索conditionId(可选):按适用条件ID过滤(例如,“笔划”、“tbi”)approachType(可选):按方法筛选(补救、补偿、适应性、预防、教育、基于感觉、认知行为、生物力学、神经发育)ageGroup(可选):按年龄组筛选
lookup_assessments
查找OT评估和评估工具。
参数:
query(可选):在评估名称、描述和首字母缩略词中进行文本搜索domain(可选):按领域筛选(adl、iadl、运动、感觉、认知、心理社会、平衡、上肢、功能表现)conditionId(可选):按适用条件ID筛选ageGroup(可选):按人口年龄组筛选
search_glossary
搜索OT术语表和缩写。
参数:
query(可选):在术语、定义和使用示例中进行文本搜索category(可选):按类别筛选(解剖、评估、干预、理论、概述、立法)
get_interventions
针对特定情况采取循证干预措施。
参数:
conditionId(必填):病情ID(例如,“中风”、“痴呆症”、“自闭症”)evidenceLevel(可选):最低证据级别(强、中、有限、新兴、专家意见)
get_comprehensive_overview
全面了解病情,包括描述、症状、OT作用、治疗、评估和干预措施。
参数:
conditionId(必填):病情ID(例如,“中风”、“帕金森病”、“脑瘫”)
search_clinical_guidelines
搜索与OT相关的精心策划的临床实践指南。
参数:
topic(可选):按主题或状况筛选(例如,“中风”、“关节炎”、“心理健康”)
fetch_web_resource
从web URL获取内容并转换为markdown。
参数:
url(必填):要获取的URL(必须是http或https)includeLinks(可选):在markdown输出中保留超链接(默认值:true)timeout(可选):请求超时(毫秒)(默认值:15000)
安装
先决条件
- Node.js 22或更高版本
- pnpm包管理器
本地开发
- 克隆存储库:
git clone
cd ot-knowledge-mcp- 安装依赖项:
pnpm install- 配置环境变量:
cp .env.example .env编辑 .env 并配置:
API_KEY:使用生成node -e "console.log(require('./dist/middleware/auth.js').generateApiKey())"或设置自己的安全令牌PORT:服务器端口(默认值:3100)LOG_LEVEL:日志记录级别(跟踪、调试、信息、警告、错误、致命)NODE_ENV:环境(开发或生产)OTEL_SERVICE_NAME:遥测服务名称OTEL_EXPORTER_OTLP_ENDPOINT:OpenTetry收集器端点OTEL_TRACES_SAMPLER:跟踪采样策略OTEL_TRACES_SAMPLER_ARG:采样率
- 构建和启动:
pnpm build
pnpm start或者用于自动重建的开发:
pnpm dev服务器将在以下时间可用 http://localhost:3100/mcp
Docker部署
构建Docker镜像
docker build -t ot-knowledge-mcp .使用Docker运行
docker run -d \
-p 3100:3100 \
-e API_KEY=ot_sk_your_secure_token \
-e OTEL_EXPORTER_OTLP_ENDPOINT=http://your-collector:4318 \
--name ot-knowledge-mcp \
ot-knowledge-mcpDocker Compose
version: '3.8'
services:
ot-knowledge-mcp:
build: .
ports:
- "3100:3100"
environment:
- API_KEY=ot_sk_your_secure_token
- PORT=3100
- LOG_LEVEL=info
- NODE_ENV=production
- OTEL_SERVICE_NAME=ot-knowledge-mcp
- OTEL_EXPORTER_OTLP_ENDPOINT=http://otel-collector:4318
- OTEL_TRACES_SAMPLER=parentbased_always_on
restart: unless-stoppedAPI终点
健康检查
GET /health返回服务器运行状况指标,包括PID、内存使用率和CPU使用率。
运行时间
GET /uptime以秒为单位返回服务器状态和正常运行时间。
MCP端点
POST /mcp
Authorization: Bearer ot_sk_your_token_here
Content-Type: application/json用于工具调用的主MCP端点。需要承载令牌身份验证。
认证
服务器使用承载令牌身份验证 /mcp 终点。配置 API_KEY 带有安全令牌的环境变量。
生成API密钥:
node -e "console.log(require('./dist/middleware/auth.js').generateApiKey())"或者按照以下格式手动创建令牌: ot_sk_
发出经过身份验证的请求:
curl -X POST http://localhost:3100/mcp \
-H "Authorization: Bearer ot_sk_your_token_here" \
-H "Content-Type: application/json" \
-d '{"method": "tools/list"}'要禁用身份验证(不建议用于生产),请离开 API_KEY 空空如也 .env.
优雅关闭
服务器实现优雅关机以确保干净终止:
- 手柄
SIGTERM和SIGINT正确停机信号 - 停止接受新的HTTP连接
- 关闭活动的MCP服务器连接
- 刷新OpenTetry跟踪和指标
- 如果优雅关机挂起,则强制关机超时30秒
- 处理未捕获的异常和未处理的promise拒绝
要优雅地停止服务器,请发送 SIGTERM 或按 Ctrl+C (SIGINT).
开放遥测可观测性
该服务器包括OpenTelemetry的全面可观察性:
- 痕迹:跟踪所有HTTP请求和MCP工具调用
- 指标:请求计数器、持续时间和自定义指标
- 仪器仪表:用于HTTP、DNS等的自动Node.js检测
在中配置OpenTetry收集器终结点 OTEL_EXPORTER_OTLP_ENDPOINT 环境变量。跟踪和指标通过HTTP上的OTLP导出。
日志记录
使用Pino进行结构化日志记录:
- 开发模式 (
NODE_ENV=development):打印精美的日志,便于阅读 - 生产模式 (
NODE_ENV=production):用于聚合的JSON格式日志
日志级别: trace, debug, info, warn, error, fatal
项目结构
ot-knowledge-mcp/
├── src/
│ ├── config/ # Configuration (logger, telemetry, metrics)
│ ├── data/ # Knowledge base data (glossary, assessments, interventions)
│ ├── middleware/ # Authentication middleware
│ ├── tools/ # MCP tool implementations
│ ├── types/ # TypeScript type definitions
│ ├── utils/ # Utility functions (web fetch, search, logging)
│ ├── index.ts # Application entry point
│ └── server.ts # MCP server configuration
├── dist/ # Compiled JavaScript output
├── .env.example # Environment variable template
├── Dockerfile # Docker build configuration
├── package.json # Dependencies and scripts
└── tsconfig.json # TypeScript configuration发展
构建
pnpm build开始
pnpm start发展模式
pnpm dev许可证
\[在此处添加您的许可证\]
贡献
\[在此处添加贡献指南\]
支持
\[在此处添加支持信息\]
