医保预授权检查工具

一个用于医疗保健自动化工作流的工具,通过本地SQLite数据库和CMS Coverage API检索医保政策数据,支持预授权和覆盖资格验证。

  • by Satya-Bharadwaj
  • TypeScript
  • 本地部署
  • 更新于
在 GitHub 查看 Satya-Bharadwaj/mcp-priorauth-checker

使用说明

🏥 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"
}

🧠 运作原理

  1. 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;
    
  2. CMS获取
    从CMS Coverage API检索策略数据:

    https://api.coverage.cms.gov/v1/data/ncd/?ncdid=<id>&ncdver=<version>
    
  3. HTML清理
    使用正则表达式删除标签并压缩空白。

  4. 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 --构建/运行时安全

🔗 相关存储库