使用说明
🏥 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/<username>/Documents/latitude_health/ncd_lookup.db
🚀 运行MCP服务器
npm start
或手动:
node build/index.js
预期控制台输出:
✅ Connected to SQLite database at /Users/<username>/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('%<title>%') LIMIT 1; -
CMS获取
从CMS Coverage API检索策略数据:https://api.coverage.cms.gov/v1/data/ncd/?ncdid=<id>&ncdver=<version> -
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 --构建/运行时安全
