🏥 MCP工具:priorauth检查器
概述
priorauth-checker 是一个 模型上下文协议(MCP) 服务器实现于 TypeScript.\ 它检索 CMS国家覆盖范围确定(NCD) 用于事先授权和承保资格工作流的策略数据。\ 该工具使用 本地SQLite数据库 为了快速查找和 CMS覆盖API 用于实时检索策略详细信息。
该项目是医疗自动化工作流程的一部分:\ → *结构化临床记录(通过raw2structure)* → priorauth检查器 → *CMS覆盖验证+推理*
______________________________________________________________________
🧩 主要特点
- 🔍 SQLite支持的查找 使用本地数据库制定非传染性疾病政策(
ncd_lookup.db) - 🔗 CMS覆盖API集成 用于实时策略检索
- 🧠 自动标题→ ID/版本解析 使用SQL
LIKE查询 - 🧹 HTML清理 用于模型友好输出
- ⚙️ 符合MCP标准的服务器 使用
@modelcontextprotocol/sdk和zod - 🪶 LLM管道的轻量级和确定性
______________________________________________________________________
🏗️ 建筑
| 图层 | 描述 |
|---|---|
| MCP服务器 | 用途 McpServer 定义 fetch_ncd_policy 工具 |
| SQLite数据库 | 本地 ncd_lookup.db 商店NCD标题→ ID/版本映射 |
| 抓取器 | 从以下位置检索实时CMS数据 https://api.coverage.cms.gov/v1/data/ncd/ |
| 清洁工 | 删除HTML和多余的空格以获得一致的文本 |
| 传输层 | 用途 StdioServerTransport 用于MCP I/O |
______________________________________________________________________
⚙️ 设置和安装
# Clone repository
git clone https://github.com/Satya-Bharadwaj/mcp-priorauth-checker.git
cd mcp-priorauth-checker
# Install dependencies
npm install
# Build project
npm run build确保SQLite数据库路径在您的系统中有效:\ /Users//Documents/latitude_health/ncd_lookup.db
______________________________________________________________________
🚀 运行MCP服务器
npm start或手动:
node build/index.js预期控制台输出:
✅ Connected to SQLite database at /Users//Documents/latitude_health/ncd_lookup.db
🚀 MCP server 'priorauth-checker' running — database lookup active______________________________________________________________________
🧩 暴露的MCP工具
工具名称: fetch_ncd_policy
说明:\ 使用以下任一方法获取CMS NCD策略数据 基于标题 数据库查找或直接 ID/版本 查询。
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
ncd_id | string | 可选 | NCD数字标识符(例如。, "240") |
ncd_ver | string | 可选 | 版本号(例如。, "1") |
title | string | 可选 | SQLite查找的策略标题 |
______________________________________________________________________
🧠 示例用法
1.️⃣ 按标题查询
输入:
{
"title": "Electrical Nerve Stimulators"
}控制台日志:
✅ Matched title "Electrical Nerve Stimulators" → NCD 240 v1
⚙️ Retrieving NCD 240 v1答复:
{
"document_id": "240",
"document_version": 1,
"title": "Electrical Nerve Stimulators",
"benefit_category": "Durable Medical Equipment",
"indications_limitations": "Covered for chronic pain unresponsive to conservative therapy...",
"transmittal_number": "R240NCD",
"transmittal_url": "https://www.cms.gov/medicare-coverage-database/view/ncd.aspx?ncdid=240"
}______________________________________________________________________
2.️⃣ 按ID和版本查询
输入:
{
"ncd_id": "313",
"ncd_ver": "2"
}控制台日志:
⚙️ Retrieving NCD 313 v2答复:
{
"document_id": "313",
"document_version": 2,
"title": "Lumbar Artificial Disc Replacement",
"benefit_category": "Surgery",
"indications_limitations": "Non-covered for patients over 60 years of age...",
"transmittal_number": "R313NCD",
"transmittal_url": "https://www.cms.gov/medicare-coverage-database/view/ncd.aspx?ncdid=313"
}______________________________________________________________________
🧠 运作原理
- SQLite标题查找\
在本地数据库中搜索NCD ID/版本:
SELECT NCD_mnl_sect_title, NCD_id, NCD_vrsn_num
FROM ncd_lookup
WHERE LOWER(NCD_mnl_sect_title) LIKE LOWER('%%')
LIMIT 1;- CMS获取\
从CMS Coverage API检索策略数据:
https://api.coverage.cms.gov/v1/data/ncd/?ncdid=&ncdver=- HTML清理\
使用正则表达式删除标签并压缩空白。
- JSON输出\
返回具有干净文本的结构化策略对象。
______________________________________________________________________
📁 文件结构
mcp-priorauth-checker/
├── src/
│ └── index.ts # Main MCP server
├── ncd_lookup.db # SQLite database for title → ID mapping
├── package.json
├── package-lock.json
├── tsconfig.json
├── .gitignore
└── README.md______________________________________________________________________
🧩 依赖项
- Node.js ≥ 20
- 更好平方3 --用于本地数据库查找
- @模型上下文协议/sdk --MCP运行时
- 黄道带 --模式验证
- TypeScript --构建/运行时安全
______________________________________________________________________
