Fl Medical Exclusions について
Fl Medical Exclusions は、氏名、NPI、ライセンス番号、Medicaid プロバイダー番号で Florida AHCA の Medicaid 制裁最終命令を照合する MCP サーバーです。参加資格除外とその他の制裁を区別し、氏名一致は候補情報として扱います。
主な機能
- 01複数の識別情報でプロバイダー照合
- 02除外とその他の制裁の区別
- 03違反コードと説明の返却
- 04制裁データの収録状況の確認
活用シーン
- 01Florida Medicaid プロバイダーの審査
- 02NPI やライセンスに対応する記録の確認
- 03制裁種別と違反内容の調査
MCP 対応
MCP クライアントにプロバイダーの除外照合と制裁データの収録状況を提供します。Pipeworx ゲートウェイ経由、またはローカルの stdio MCP サーバーとして利用できます。
設定
リモートサーバーはインストール不要です。クライアントを選んで設定をコピーするか、ワンクリックで導入できます。
https://gateway.pipeworx.io/fl-medical-exclusions/mcpclaude mcp add --transport http pipeworx-io-fl-medical-exclusions https://gateway.pipeworx.io/fl-medical-exclusions/mcp{"mcpServers":{"pipeworx-io-fl-medical-exclusions":{"type":"http","url":"https://gateway.pipeworx.io/fl-medical-exclusions/mcp"}}}Cursor で開く{"servers":{"pipeworx-io-fl-medical-exclusions":{"type":"http","url":"https://gateway.pipeworx.io/fl-medical-exclusions/mcp"}}}VS Code で開く{"mcpServers":{"pipeworx-io-fl-medical-exclusions":{"type":"http","url":"https://gateway.pipeworx.io/fl-medical-exclusions/mcp"}}}{"mcpServers":{"pipeworx-io-fl-medical-exclusions":{"serverUrl":"https://gateway.pipeworx.io/fl-medical-exclusions/mcp"}}}コマンドはターミナルで実行し、JSON は各クライアントの MCP 設定に貼り付けて再起動します。認可が必要なサーバーは初回接続時にログインを求めます。
ツール
詳細
@pipeworx/fl-medical-exclusions
Florida Agency for Health Care Administration(AHCA)のMedicaid制裁対象
プロバイダーのスクリーニング。プロバイダー名、NPI、Floridaのライセンス番号、
またはMedicaidプロバイダー番号で、AHCAがs. 409.913, F.S. / Rule 59G-9.070, F.A.C.に基づいて
発行した約7,000件の制裁最終命令を照合します。これは連邦HHS OIG LEIE(leie pack)に対応する
州レベルの制度であり、ny-omig-exclusions(New York)、ca-medical-exclusions(California)、
tx-medical-exclusions(Texas)と同系列のパックです。
Pipeworxの一部です。AI エージェントを1819以上のライブデータソースに接続するMCPゲートウェイです。独立した非公式の連携であり、上流プロバイダーとの提携、承認、公開はありません。
ツール
fl_medical_check_exclusion(name?, npi?, license?, medicaid_provider_number?, limit?)— AHCAのMedicaid制裁最終命令に照らしてプロバイダーをスクリーニングします。 NPI、ライセンス番号、またはMedicaidプロバイダー番号の一致は 識別情報による一致です。氏名の一致は、完全一致であっても、 AHCAが生年月日を公開していないため、候補となる手掛かりにすぎません。 各一致にはsanction_classとis_participation_exclusionが含まれます。 除外に該当するのは、1年間の資格剥奪となるSUSPENSIONまたは、 20年間の資格剥奪となるTERMINATIONのみです。罰金と是正措置計画も制裁ですが、 除外として報告されることはありません。一致には、AHCAが公開する説明付きの Rule 59G-9.070違反コード、罰金額、AHCAおよび正式/非公式の案件番号、 さらに導出されたnominal_preclusion_endsも含まれます。 最上位のidentified_participation_exclusionは、スクリーニングに必要な 1ビットの回答で、除外命令に対する本人確認レベルの一致を示します。fl_medical_exclusion_coverage()— 制裁命令の総数、sanction_class別の内訳、 参加除外に該当する命令の数と対象となるプロバイダーの実人数、NPI/ライセンス/ Medicaidプロバイダー番号が記載された命令の数、AHCAのキー付き違反コード別件数、 最古/最新の制裁日、およびこのパックのデータ取得日時。
認証
不要です。
データソース
- https://apps.ahca.myflorida.com/dm_web/ — AHCAの公開記録検索。 Final Ordersで「Medicaid Sanctioned Providers」を選択し、すべてのフィルターを空欄にして 検索すると一覧が返されます。サーバー側のSSRS ReportViewerからExcelにエクスポートすると、 データセット全体(Provider、Medicaid Provider Number、License Number、NPI Number、 Provider Type、Date Rendered、Sanction Type、Violation Code、Fine Amount、Sanction Date、 AHCA Case Number、Formal/Informal Case Number、Document Type)が取得できます。 以下の「4リクエストのセッションが必要な理由」を参照してください。
- https://apps.ahca.myflorida.com/dm_web/FinalOrdersInformation.pdf — AHCA独自のキーです。違反コードの説明(7(A)~8(C))と制裁種別の定義 (CAP、FINE、SUSPENSION=1年間の資格剥奪、TERMINATION=20年間の資格剥奪)が そのままこのパックに含まれています。
オープンデータポータルのミラーがない理由 — 推測ではなく確認済み
Floridaには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の公開記録検索が唯一の情報源です。
直接 URL にアクセスせず、4 回のリクエストでセッションを確立する理由
検索アプリは ASP.NET WebForms で、セッション ID が URL パス(/dm_web/(S(<24 chars>))/default.aspx)に埋め込まれており、結果ページには SSRS ReportViewer があります。scripts/bake-index.mjs はブラウザーの動作を再現します。
GET /dm_web/— セッション情報を含むパスにリダイレクトされます。Cookie(__cf_bm、ASP.NET_SessionId)を保持します。- 「Medicaid Sanctioned Providers*」ラジオボタンの自動ポストバックを
POSTします(__EVENTTARGET=rdlFOMedState$3)。サーバーは同じ URL に戻る post/redirect/get の302を返すので、これを追って GET します。 - Final Orders の検索を
POSTします(btnSearchFO=Continue、フィルターは空、ddlFOType=ALL)。doc_results_fo.aspxから応答が返ります。このページには、バインドされたレポートのExportUrlBaseがクライアント側 JSON に含まれています。表示される「Show Sanction Data(...)」リンクは折りたたまれたパネルを開くだけで、レポートはすでにサーバー側でレンダリングされています。 - 同じセッションで
ExportUrlBase + "EXCEL"にGETします — データセットは、レガシー BIFF8 形式の.xls(attachment; filename="FOReport.xls"、約 2.3 MB)として返されます。
2026-10-08 に確認した落とし穴が 2 つあります。各ページは、そのページ自身の __ で始まる隠しフィールドをそのまま転送する必要があります(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 件中 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> は照合用に解析済みの行を書き出します。
このデータに含まれるもの — ORDER ごとに 1 行であり、すべてのオーダーが資格除外とは限りません
AHCA のリストは、プロバイダーごとではなく、制裁の最終オーダーごとに 1 行です(エクスポートされた 7,108 行のうち、重複のない名前は 5,313 件です。ベイク時に完全一致する 94 行の重複は統合されます)。ほとんどのオーダーは参加資格の除外ではありません。2026-10-08 時点で、4,570 件は罰金、255 件は是正措置計画(罰金の有無を問わず)でした。AHCA 独自の定義によると、プロバイダーを Florida Medicaid から除外するのは SUSPENSION(832 件)と TERMINATION(1,247 件)だけです。すべての応答でこの点を明記しています(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 が公開している対応表が含まれています。ライブデータにはその対応表にない形式が 2 種類あり(7(A.1) と、409.913(14) / 409.913(16) の条文番号のみの記載)、創作した説明を付けず description: null のまま渡されます。
生年月日も、再加入日もありません
AHCA はどちらも公開していません。そのため、名前の一致だけでは本人確認にならず、Texas の ReinstatedDate のようにフィールドから「現在除外中」と判断することもできません。このパックでは、AHCA が示す期間(資格停止は 1 年、資格終了は 20 年)を sanction_date に加算して 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 に、ノート PC と、本番アカウント上の使い捨て wrangler dev --remote Worker(colo SJC)の両方からライブ環境を確認しました。正確な 4 リクエストのハンドシェイクを再現し、Cloudflare エッジから同一の 200 と 2,284,544 バイトの application/vnd.ms-excel 添付ファイル(FOReport.xls)が返されました。先例となる 3 つの州パックと同様、このホストでは 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 サーバーをもう 1 つ追加する必要はありません。現時点では、メタツールなしでパックのエンドポイントをマウントする方法はありません。追加のスキーマがルーティングの利点よりもコンテキストを多く消費する場合は、複数のパックエンドポイントではなく、フルゲートウェイに一度だけ接続してください。
または、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":"..."} を指定して POST https://gateway.pipeworx.io/v1/tools/search_packs を実行します。
スタンドアロン(ゲートウェイアカウント不要)
このパッケージは、ローカルの 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
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。