mcpField
F
Fl Medical Exclusions

Fl Medical Exclusions

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

关于 Fl Medical Exclusions

Fl Medical Exclusions 是用于核查佛罗里达州 AHCA Medicaid 制裁最终命令的 MCP 服务,支持按姓名、NPI、执照或 Medicaid 供应商编号匹配。它区分参与资格排除与罚款等其他制裁,并标注姓名匹配仅为候选线索。

主要功能

  1. 01按多种标识核查供应商
  2. 02区分排除与其他制裁
  3. 03返回违规代码及说明
  4. 04提供制裁数据覆盖概况

适用场景

  1. 01筛查佛州 Medicaid 供应商
  2. 02核实 NPI 或执照对应记录
  3. 03查看制裁类型与违规信息

MCP 相关

向 MCP 客户端提供供应商排除核查和数据覆盖概况工具。可经 Pipeworx 网关连接,或作为本地 stdio MCP 服务运行。

配置

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

服务地址https://gateway.pipeworx.io/fl-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/fl-medical-exclusions

佛罗里达州医疗保健管理局(AHCA)Medicaid 制裁提供者筛查——按姓名、NPI、佛罗里达州执照号码或 Medicaid 提供者编号查询提供者,对照 AHCA 根据 s. 409.913, F.S. / Rule 59G-9.070, F.A.C. 发布的约 7,000 项制裁最终命令。这是联邦 HHS OIG LEIE(leie pack)的州级对应项,也是 ny-omig-exclusions(纽约)、ca-medical-exclusions(加利福尼亚州)和 tx-medical-exclusions(德克萨斯州)的同类工具。

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

工具

  • fl_medical_check_exclusion(name?, npi?, license?, medicaid_provider_number?, limit?) — 对照 AHCA 的 Medicaid 制裁最终命令筛查提供者。NPI、执照号码或 Medicaid 提供者编号匹配属于身份确认;姓名匹配——即便完全一致——也仅为候选线索,因为 AHCA 不公布出生日期。每条匹配记录都包含 sanction_class 和 is_participation_exclusion:只有 SUSPENSION(禁止参与一年)或 TERMINATION(禁止参与二十年)才属于排除;罚款和纠正行动计划虽属制裁,但绝不会报告为排除。匹配记录还包含 Rule 59G-9.070 违规代码及 AHCA 发布的说明、罚款金额、AHCA 案件编号、正式/非正式案件编号,以及推导得出的 nominal_preclusion_ends。顶层的 identified_participation_exclusion 是筛查者所需的单比特答案:是否存在与排除令匹配、且达到身份确认级别的记录。
  • fl_medical_exclusion_coverage() — 制裁命令总数、按 sanction_class 分类的数量、参与排除命令数及涉及的不同提供者数量、包含 NPI/执照号码/Medicaid 提供者编号的命令数量、带 AHCA 代码说明的违规代码计数、最早/最新制裁日期,以及本 pack 副本的捕获时间。

身份验证

无需密钥。

数据来源

  • https://apps.ahca.myflorida.com/dm_web/ — AHCA 的 Public Records 搜索。在 Final Orders 下选择“Medicaid Sanctioned Providers”,并将所有筛选条件留空后搜索,即可返回列表。列表由服务端 SSRS ReportViewer 提供,其 Excel 导出包含完整数据集(提供者、Medicaid 提供者编号、执照号码、NPI 号码、提供者类型、呈现日期、制裁类型、违规代码、罚款金额、制裁日期、AHCA 案件编号、正式/非正式案件编号、文档类型)。参见下文“为何需要四次请求的会话”。
  • https://apps.ahca.myflorida.com/dm_web/FinalOrdersInformation.pdf — AHCA 自己的代码说明:违规代码说明(7(A)–8(C))和制裁类型定义(CAP、FINE、SUSPENSION = 禁止参与一年、TERMINATION = 禁止参与二十年),本 pack 原样收录。
为何没有开放数据门户镜像——已核实,并非想当然

佛罗里达州完全没有 Socrata 域名:data.florida.gov、opendata.florida.gov、data.flhealth.gov、open.fl.gov 和 data.myflorida.com 在 api.us.socrata.com/api/catalog/v1 均返回 "Domain not found";在整个目录中搜索 "Florida Medicaid exclusion" / "AHCA sanctioned" 也返回 resultSetSize 0(2026-10-08)。Florida Medicaid Web Portal(portal.flmmis.com)发布了 Provider Master List ZIP,但那是已登记提供者名册,并非制裁名单。AHCA 的 Public Records 搜索是唯一来源。

为什么要进行四次请求,而不是直接访问 URL

搜索应用基于 ASP.NET WebForms,URL 路径中嵌入了会话 ID(/dm_web/(S(<24 chars>))/default.aspx),结果页上还有一个 SSRS ReportViewer。scripts/bake-index.mjs 会重放浏览器的操作:

  1. GET /dm_web/ — 重定向到包含会话信息的路径;保留 Cookie(__cf_bm、ASP.NET_SessionId)。
  2. POST “Medicaid Sanctioned Providers*” 单选按钮的自动回发(__EVENTTARGET=rdlFOMedState$3)。服务器返回一个回发/重定向/获取(post/redirect/get)302,指向同一 URL;跟随重定向并发起 GET。
  3. POST 最终命令搜索(btnSearchFO=Continue,筛选条件留空,ddlFOType=ALL)——由 doc_results_fo.aspx 响应,其中包含已绑定报表的 ExportUrlBase,位于客户端 JSON 中。可见的 “Show Sanction Data(...)” 链接只会展开折叠面板;报表已在服务器端渲染完成。
  4. 在同一会话中,GET ExportUrlBase + "EXCEL" — 获取数据集,格式为旧版 BIFF8 .xls(attachment; filename="FOReport.xls",约 2.3 MB)。

两个陷阱,均于 2026-10-08 实测:每个页面自身以 __ 开头的隐藏字段都必须原样转发(default.aspx 会拒绝它未生成的 __VIEWSTATEENCRYPTED,doc_results_fo.aspx 会拒绝缺少该字段的请求,两者都会报错“Validation of viewstate MAC failed”);查看器拒绝 XML、CSV 和 MHTML(“Specified argument was out of the range of valid values. Parameter name: format”)——只有 EXCEL、PDF、WORD 和 IMAGE 可以渲染,因此 Excel 是唯一结构化导出格式。这就是烘焙脚本自带无依赖 BIFF8 读取器的原因(CFB 容器 + LABEL/RK/NUMBER/MULRK 单元格,按数字格式 ID 解析日期);该读取器已逐行验证与使用 xlrd 解析同一文件的结果完全一致(共 7,014 行)。

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

根据根目录 CLAUDE.md 中针对这种规模表格的常规规定,完整列表(采集时有 7,014 条唯一命令,生成的 TypeScript 约 3.5 MB)由 scripts/bake-index.mjs 烘焙到 src/fl-ahca-index-data.ts,在 workers/gateway/src/pack-baked-indexes.json 中注册,部署时上传到 KV,并注入每次调用的 args._bakedIndex 中——绝不使用静态模块级导入(fleet #2754)。如果缺少注入内容或内容格式错误,就会明确抛出错误,而不会回答“未找到”——参见 src/index.test.ts。上游还是一个需要约 20–40 秒的有状态会话,不应该让任何请求等待这么久。

定期重新运行 node mcps/fl-medical-exclusions/scripts/bake-index.mjs 并提交更新;每个响应中的 data_as_of 都会显示烘焙副本有多陈旧。--from <file.xls> 可离线解析已保存的导出文件;--dump-rows <file.json> 会将解析后的行写入文件,以供交叉核对。

此数据包含的内容 — 每行对应一条命令,且并非每条命令都是排除令

AHCA 的列表每行对应一条制裁最终命令,而不是每家提供方(7,108 行导出数据中有 5,313 个不同名称;在打包时会合并 94 行完全重复的数据)。大多数命令并非参与资格排除:截至 2026-10-08,4,570 条命令涉及罚款,255 条涉及纠正行动计划(无论是否伴有罚款)。只有SUSPENSION(832 条命令)和 TERMINATION(1,247 条)会禁止提供方参与 Florida Medicaid——这是 AHCA 自己的定义。每条响应都会说明这一点(exclusion_vs_sanction_caveat),筛查人员应查看每条匹配记录中的 is_participation_exclusion。

Sanction Type 是一个近似固定词表,但存在拼写变体(13 个原始值:FINE / FINES / FINE ONLY、CAP / CAP ONLY / CAP AND FINE、SUSPENSION RESCINDED,等等);打包脚本会将它们归并到固定的 sanction_class 集合中,并对所有未见过的值发出警告,因此词表的变化会显式呈现,而不会悄无声息。相比之下,Violation Code 属于受控词表——即 Rule 59G-9.070 各款的字母代码;此数据包附带 AHCA 发布的代码对照表。实时数据中有两种形式不在该对照表内(7(A.1),以及单独出现的法规引用 409.913(14) / 409.913(16)),系统会原样保留,并将 description 设为 null,而不会编造描述。

无出生日期,无恢复日期

AHCA 两者都不发布。因此,姓名匹配永远无法确认身份,而且也无法像得克萨斯州的 ReinstatedDate 那样通过字段判断“当前是否被排除”。此数据包根据 sanction_date 和 AHCA 声明的期限(暂停 1 年/终止 20 年)推导出 nominal_preclusion_ends,并在每条匹配记录中将其标记为推导值(derived_end_caveat);单独发布的 ... RESCINDED 命令是排除资格提前解除的唯一信号,并作为独立的 sanction_class 显示。AHCA 说明,2009 年 7 月 1 日之前的制裁并非总会产生最终命令,不过数据本身的起始年份是 2006 年。

匹配

npi 仅匹配完全一致的 10 位数字值(7,014 条命令中有 5,267 条带有此值;每个值的格式都正确)。license 匹配时会忽略字母数字字符的大小写;仅当双方都是纯数字时才忽略前导零,因此 11757 无法匹配 DN11757。medicaid_provider_number 的双方值都会补零至 9 位(SSRS 导出会将此列设为数值类型,因此在打包时会恢复前导零;所有实时值均不超过 9 位,并会严格强制执行此规则)。姓名查询会匹配命令中的提供方名称,不区分大小写和标点,且不要求单词顺序一致。在每个匹配层级内,排除命令会排在罚款之前,并按时间从新到旧排序,因此 limit 不会截掉最重要的那条记录。

可访问性

于 2026-10-08,通过笔记本电脑和在生产账户上运行的一次性 wrangler dev --remote Worker(colo SJC)进行了实时验证,重放完全相同的四请求握手:从 Cloudflare 边缘返回完全一致的 200 响应,附件为 2,284,544 字节的 application/vnd.ms-excel 文件(FOReport.xls)。与另外三个先前发布的州级数据包一样,此主机无需 Supabase 出站中继。

快速开始

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

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

https://gateway.pipeworx.io/fl-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 都连接到同一个网关和相同的 1819+ 个数据源。唯一的区别是直接列出的工具属于哪个工具包;无论连接哪一个,ask_pipeworx 都可以访问所有工具。

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

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

首次调用无需账户。检查任意工具:GET https://gateway.pipeworx.io/v1/tools/fl_medical_check_exclusion。查找工具:使用 {"query":"..."} 向 https://gateway.pipeworx.io/v1/tools/search_packs 发送 POST 请求。

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

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

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

或者直接运行,以确认服务已启动:

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

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

使用 ask_pipeworx

你可以用通俗易懂的语言提问,而不是直接调用工具——在上述工具包端点和完整网关上都适用:

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

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

更多信息

许可证

MIT

评论

支持 Markdown

第一次接触 MCP?

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

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