mcpField
O
Oh Medical Exclusions

Oh Medical Exclusions

远程服务
pipeworx.io法律与政务02 周前更新

关于 Oh Medical Exclusions

Oh Medical Exclusions 是用于筛查俄亥俄州 Medicaid 排除和暂停名录的 MCP 服务。它支持精确标识符核对和姓名候选查询,并提供状态及名录覆盖情况,适用于合规审查。

主要功能

  1. 01按姓名、NPI 或 Provider ID 筛查
  2. 02匹配逗号分隔的标识符
  3. 03返回排除状态及标记
  4. 04汇总名录覆盖范围和日期区间
  5. 05查询烘焙存储的州名录

适用场景

  1. 01在参与 Medicaid 前核查提供者
  2. 02核对 NPI 或 ODM Provider ID
  3. 03按生效日期区间统计排除记录
  4. 04识别状态未知的记录

MCP 相关

向 MCP 客户端提供提供者筛查和名录覆盖情况工具。可作为独立的 stdio MCP 服务运行,也可通过 Pipeworx 网关使用。

配置

远程服务无需本地安装。选择你使用的客户端,复制配置或使用一键安装。

服务地址https://gateway.pipeworx.io/oh-medical-exclusions/mcp
一键复制安装命令
Claude CodeTerminal
Cursor.cursor/mcp.json
VS Code.vscode/mcp.json
Claude Desktopclaude_desktop_config.json
Windsurf~/.codeium/windsurf/mcp_config.json

命令在终端中运行;JSON 粘贴到对应客户端的 MCP 配置后重启。需要授权的服务会在首次连接时提示登录。

工具

详细介绍

@pipeworx/oh-medical-exclusions

俄亥俄州医疗补助部(ODM)提供者排除与暂停名单 筛查——按姓名、NPI 或 ODM Provider ID 查询提供者是否在约 2,122 条记录的名单中。名单涵盖被排除在俄亥俄州医疗补助计划之外或被暂停参与该计划的个人和组织,是联邦 HHS OIG LEIE(leie pack)的州级对应名单,也是 ny-omig-exclusions(纽约)、ca-medical-exclusions(加利福尼亚)、tx-medical-exclusions (得克萨斯)、fl-medical-exclusions(佛罗里达)、pa-medical-exclusions (宾夕法尼亚)和 ga-medical-exclusions(佐治亚)的姊妹项目。

属于 Pipeworx——一个将 AI Agent 接入 1831+ 个实时数据源的 MCP 网关。这是一个独立的非官方集成,与上游提供方无关联、未获其认可,也非由其发布。

工具

  • oh_medical_check_exclusion(name?, npi?, provider_id?, limit?) — 根据 ODM 排除/暂停名单筛查提供者。NPI 或 Provider ID 匹配属于身份识别(两者都是精确标识符;如果提供者因多个注册而被排除,两者都可能以逗号分隔的列表形式出现在同一行);姓名匹配——即使完全一致——也只能作为候选线索,因为该名单不包含出生日期。每条匹配记录都包含 ODM 自身的 status,以及根据该状态计算出的 currently_excluded 标记。
  • oh_medical_exclusion_coverage() — 返回总记录数(个人加组织)、当前被排除/暂停的记录数与状态未知的记录数、包含 NPI 的记录数,以及最早/最新的排除生效日期。传入 year 或 start_date/end_date,则改为统计整个名单中生效日期落在该范围内的排除记录。

身份验证

无需密钥。

数据来源

普通 curl 请求会收到列表页面的 404——这是 UA 屏蔽,并非页面失效

已于 2026-10-17 验证:不带浏览器风格 User-Agent 的请求会从俄亥俄州 CDN 收到过时的 CloudFront 404 回退响应;带浏览器风格 UA 字符串的相同请求则返回 200。这属于“公共数据就是公共数据”裁定已涵盖的 UA 嗅探类型——不是登录墙,也不是 CAPTCHA。scripts/bake-index.mjs 仍如实标识该 pack(UA 字符串会标明身份并附带联系 URL);该字符串是为了通过机器人过滤器而设置,并非冒充浏览器。实际提供 .xlsx 文件的资源 CDN 不需要此设置——只有列出当前 URL 的页面才需要。

下载链接并不稳定——每次烘焙时都会重新解析

链接指向的 .xlsx 文件位于俄亥俄州资源 CDN (dam.assets.ohio.gov/raw/upload/medicaid.ohio.gov/...),其文件名中包含发布日期(例如 ExclusionSuspensionList_10_15_2026-3.xlsx)。scripts/bake-index.mjs 每次运行时都会从列表页面解析当前链接——这与 ga-medical-exclusions 和 scripts/ingest-dmepos.mjs 对各自不稳定上游文件名采用的“从列表页面解析,绝不猜文件名”原则相同。

为什么这是烘焙数据,而不是实时代理

按照根目录 CLAUDE.md 针对这类规模表格的既定规则,完整名单(捕获时共 2,122 条记录)会被烘焙到 src/oh-odm-index-data.ts,登记在 workers/gateway/src/pack-baked-indexes.json 中,部署时上传到 KV,并作为 args._bakedIndex 注入每次调用——绝不通过静态模块作用域导入(fleet #2754)。如果缺少注入数据或数据格式错误,就会明确抛出错误,而不是回答“未找到”——参见 src/index.test.ts。

不依赖外部 XLSX 库——手动实现,遵循同级 pack 的相同规范

复用了 ga-medical-exclusions/scripts/bake-index.mjs 中纯 Node zip 读取器(它本身来自 scripts/ingest-dmepos.mjs:使用 Node 内置的 zlib.inflateRawSync 遍历中央目录,不用 unzip CLI,也不需要 npm 包)。此工作簿需要按名称解析工作表( "Individuals" 对应 rId2/worksheets/sheet2.xml,"Organizations" 对应 rId3/worksheets/sheet3.xml——而不是第一张表,其中是 "Instructions" 说明文字),与 ga-medical-exclusions 不同,后者只需处理工作簿的第一张表。

两张表,一种统一的行结构

ODM 将其发布为 Individuals(抓取时有 1,867 行:姓名、DOB、 NPI、Provider ID、Status、Action Date、Date Added、Provider Type)和 Organizations(255 行:NPI、组织名称、地址、Provider ID、 Status、Action Date、Date Added、Provider Type)。两者都烘焙为一种行结构,并标记 record_type: 'individual' | 'organization'。

日期是 Excel 序列值,只有两行是纯文本

直接核验了约 2,122 行中的全部数据:Action Date 和 Date Added 除了 Individuals 中的 2 行以外,都是未标类型的数值单元格(Excel 日期序列值);这两行中,ODM 自己录入的数据把字面文本 "9/24/2025" 放进了单元格。 bake-index.mjs 根据单元格类型(字符串还是数值)解码这两种格式,而不是根据数值大小;因为此文件不存在 ga-medical-exclusions 的 SANCDATE 列那样的 8 位 YYYYMMDD 歧义。

Action Date 与 Date Added——与以往每个 pack 都有相同的陷阱

直接核验:在同时包含这两个日期的行中,Individuals 有 1,035/1,064 行、Organizations 有 123/133 行的值不同。 Action Date 是排除/暂停生效的日期;Date Added 是 ODM 将该行添加到此发布文件的日期。此 pack 只按 Action Date 统计,绝不使用 Date Added。

NPI、Provider ID 和 Provider Type 可能是逗号连接的列表

31 行 Individuals 记录和 11 行 Organizations 记录在单行中包含多个 NPI(同一人员/实体因多个 Medicaid 注册而被排除),例如 "1447317433, 1598934424",并对应一组 Provider ID:"2744918, 2798898"。匹配时会按逗号拆分并逐个比较,因此查询任一值都能找到该行。

Status 存在空格、大小写和拼写变体

除规范的 "Excluded"/"Suspended" 外,实时文件中还有 " Excluded" (前导空格)、"Excluded "(尾随空格)、"suspended" (小写)、一个拼错的 "susepnded"、少数 "Terminated",以及几个空单元格。此 pack 会先去除首尾空格并转为小写,再自行分类为有效/无效(只有可识别的 Excluded/Suspended 值才会令 currently_excluded: true;其他情况——包括拼写错误和 "Terminated"——都会令 currently_excluded: null 且 status_unknown: true),但提供的状态文本会保留原样,仅去除首尾空格,不会“纠正”。

不包含家庭住址或出生日期

Individuals 工作表包含出生日期列,Organizations 工作表包含完整街道地址(Address 1/2、City、 State、Zip)。此 pack 不会收录这两项——本任务的内部规则是提供与此前六个州级 pack 相同的字段,不添加其他个人标识符或地址;这些 pack 均不提供街道地址或出生日期。bake-index.mjs 只会读取这两列以便跳过它们。

匹配

npi 查询仅匹配完全一致的 10 位数字 NPI 值,并会检查行中逗号分隔的每个片段。provider_id 查询匹配 ODM 自有的 Provider ID,可忽略前导零,也会检查每个片段。姓名查询会匹配拼接后的个人姓名或组织名称,不限词序,且不区分大小写和标点。

可访问性

已于 2026-10-17 实时核验:列表页(使用模拟浏览器的 UA)可解析出当前下载链接;该链接返回 200,文件为 Excel 2007+ 格式,两个工作表共包含 2,122 行数据。

快速开始

添加到你的 MCP 客户端(Claude Desktop、Cursor、Windsurf 等):

{
  "mcpServers": {
    "oh-medical-exclusions": {
      "url": "https://gateway.pipeworx.io/oh-medical-exclusions/mcp"
    }
  }
}
此端点实际提供的内容

https://gateway.pipeworx.io/oh-medical-exclusions/mcp 上的 tools/list 会返回上表中的工具,以及共享的 Pipeworx 元工具——ask_pipeworx、 discover_tools、search_within、remember/recall 和其他整个网关共用的工具。因此,你看到的工具数量会多于此表:目前,单个工具包端点除了列出该工具包自己的工具,还会列出约 30 个共享工具。连接的 initialize 响应会说明其确切范围,是了解当天实际情况的权威依据。

这是有意为之,并非意外的多路复用。元工具让范围受限的连接也能回答此工具包未涵盖的问题——通过 ask_pipeworx 跨整个目录进行路由——而无需你再添加第二个 MCP 服务。目前无法挂载不带这些元工具的工具包端点;如果额外的架构定义所需上下文超过了路由带来的价值,那么请连接一次完整网关,而不是连接多个工具包端点。

或者,连接完整的 Pipeworx 网关,直接列出每个工具包的所有工具,而不只是此工具包的工具:

{
  "mcpServers": {
    "pipeworx": {
      "url": "https://gateway.pipeworx.io/mcp"
    }
  }
}

两个 URL 都会连接到同一个网关和相同的 1831+ 个数据源。唯一的区别是直接列出哪个工具包的工具;无论连接哪一个,ask_pipeworx 都可以访问所有工具。

没有 MCP 客户端?通过 HTTP 调用

curl -X POST https://gateway.pipeworx.io/v1/tools/oh_medical_check_exclusion \
  -H 'Content-Type: application/json' \
  -d '{"name":"Abdi"}'

首次调用无需账户。查看任意工具:GET https://gateway.pipeworx.io/v1/tools/oh_medical_check_exclusion。查找工具:使用 {"query":"..."} 调用 POST https://gateway.pipeworx.io/v1/tools/search_packs。

独立运行(无需网关账户)

此软件包也可以作为本地 stdio MCP 服务运行——无需 Pipeworx 账户,也无需通过网关往返:

{
  "mcpServers": {
    "oh-medical-exclusions": {
      "command": "npx",
      "args": ["-y", "@pipeworx/mcp-oh-medical-exclusions"]
    }
  }
}

或者直接运行,确认它可以启动:

npx -y @pipeworx/mcp-oh-medical-exclusions

它通过 stdin/stdout 使用 MCP 通信,并针对仅限此工具包的工具响应 initialize/tools/list/tools/call——不包含上方网关连接提供的任何共享元工具。代码来源相同,工具相同,但没有 ask_pipeworx 路由。

使用 ask_pipeworx

你可以用通俗的英语提问,而不必直接调用工具——此功能既适用于上方的工具包端点,也适用于完整网关:

ask_pipeworx({ question: "your question about Oh Medical Exclusions data" })

网关会选择合适的工具并自动填充参数。

更多信息

许可证

MIT

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。