Tx Medical Exclusions について
Tx Medical Exclusionsは、医療機関やコンプライアンス確認向けに、テキサス州HHSC OIGのMedicaid提供者除外リストを名称、NPI、ライセンス番号で照合します。過去に除外された記録を保持し、復帰状況と元データの自由記述による理由を示します。
主な機能
- 01名称、NPI、ライセンス番号で照合
- 02過去と現在の除外記録を区別
- 03理由とデータ基準日の提示
- 04除外リストの収録状況を集計
活用シーン
- 01テキサス州Medicaid提供者のスクリーニング
- 02提供者の復帰状況の確認
- 03除外理由と日付の確認
MCP 対応
テキサス州HHSC OIGの除外リスト照合と収録状況のツールを、Pipeworxのリモートサーバーまたはローカルstdio MCP サーバー経由でMCPクライアントに提供します。
設定
リモートサーバーはインストール不要です。クライアントを選んで設定をコピーするか、ワンクリックで導入できます。
https://gateway.pipeworx.io/tx-medical-exclusions/mcpclaude mcp add --transport http pipeworx-io-tx-medical-exclusions https://gateway.pipeworx.io/tx-medical-exclusions/mcp{"mcpServers":{"pipeworx-io-tx-medical-exclusions":{"type":"http","url":"https://gateway.pipeworx.io/tx-medical-exclusions/mcp"}}}Cursor で開く{"servers":{"pipeworx-io-tx-medical-exclusions":{"type":"http","url":"https://gateway.pipeworx.io/tx-medical-exclusions/mcp"}}}VS Code で開く{"mcpServers":{"pipeworx-io-tx-medical-exclusions":{"type":"http","url":"https://gateway.pipeworx.io/tx-medical-exclusions/mcp"}}}{"mcpServers":{"pipeworx-io-tx-medical-exclusions":{"serverUrl":"https://gateway.pipeworx.io/tx-medical-exclusions/mcp"}}}コマンドはターミナルで実行し、JSON は各クライアントの MCP 設定に貼り付けて再起動します。認可が必要なサーバーは初回接続時にログインを求めます。
ツール
詳細
@pipeworx/tx-medical-exclusions
Texas HHSC Office of Inspector General(OIG)のメディケイド提供者除外データベースの照合 — 提供者名、NPI、またはライセンス番号を照合し、Texas州のメディケイドプログラムから過去に除外された約13,400件の提供者リストを検索します。連邦HHS OIG LEIE(leieパック)の州レベルでの対応データであり、ny-omig-exclusions(New York)およびca-medical-exclusions(California)の姉妹パックです。
Pipeworxの一部です。AIエージェントを1819以上の稼働中データソースに接続するMCPゲートウェイです。これは独立した非公式の連携であり、上流プロバイダーとの提携、承認、公開はありません。
ツール
tx_medical_check_exclusion(name?, npi?, license?, limit?)— HHSC OIG除外データベースと提供者を照合します。NPIまたはライセンス番号の一致は本人確認となります(どちらも提供者固有の完全一致識別子です)。一方、名前の一致は、完全一致であっても候補情報にすぎません。リストには生年月日がなく、同名の提供者を区別するための会社名がない個人の行が大半だからです。一致した場合はすべて、HHSC OIG独自の自由記述による理由と、提供者がその後に再登録されたかどうかから導出したcurrently_excludedフラグが含まれます。tx_medical_exclusion_coverage()— 過去に記録された除外の総数、現在も除外中の件数と再登録済みの件数、NPIまたはライセンス番号が記載されている件数、職業の多様性、最も古い除外日と最も新しい除外日を返します。
認証
キーは不要です。
データソース
- https://oig.hhsc.state.tx.us/oigportal2/exclusions/ctl/dow/mid/384 — HHSC OIGの「除外ファイルのダウンロード」ページです。ダウンロード可能なファイル自体(CompanyName、LastName、FirstName、MidInitial、Occupation、LicenseNumber、NPI、StartDate、AddDate、ReinstatedDate、EligibleToReapplyDate、Waiver、WebComments)は、同じURLへのASP.NET VIEWSTATEポストバックで取得します。詳しくは、以下の「VIEWSTATEポストバックを使用する理由」をご覧ください。
- https://oig.hhsc.state.tx.us/oigportal2/Exclusions — オンラインの「除外対象の個人/事業体リスト検索」です(現在除外されているもののみを掲載。このパックのdata_as_of/source_urlは、このページではなく常にダウンロードファイルを指します)。
オープンデータポータルのミラーがない理由 — 推測ではなく確認済み
CaliforniaのS&Iリストには、CHHS Open Data Portal上に安定したCKAN resource_idのミラーがあります。Texasにはこのデータセットに相当するものはありません。data.texas.govのSocrataカタログ(api.us.socrata.com/api/catalog/v1?domains=data.texas.gov)で「OIG exclusion」、「HHSC exclusion」、「excluded provider」、「inspector general」、「Medicaid exclusion」を検索したところ(2026-10-08)、該当するデータセットは0件でした。HHSC OIGポータルが唯一のソースです。
直接URLではなくVIEWSTATEポストバックを使う理由
HHSC OIGページに表示される「除外データベースファイルのテキスト版をダウンロード」リンクは、通常のhrefではなくjavascript:__doPostBack(...)です。これは典型的なASP.NET WebForms(DotNetNuke)のポストバックで、reference_aspnet_postback_downloads.mdやlouisiana-codeの先例と同様です(VIEWSTATEフォームは障壁ではありません)。scripts/bake-index.mjsがこの手順を再現します。ページをGETし、hidden inputとセッションCookieから__VIEWSTATE/__VIEWSTATEGENERATOR/__EVENTVALIDATIONを抽出してから、ダウンロード用LinkButtonのコントロールIDを__EVENTTARGETに設定し、これらのフィールドをPOSTします。レスポンスはファイル本体(Content-Disposition: attachment;filename=TexasExclusionsData_<today>.txt)です。ファイル名にリクエスト日が含まれることから、HHSCがリクエストのたびにデータベースからこのエクスポートをリアルタイムで生成していると分かります。そのため、このパックでは別途「最終更新」バナーをスクレイピングするのではなく、取得時刻そのものをdata_as_ofとして使用しています(ページにあるliteraldatelastupdプレースホルダーのspanは、新たにGETした場合は空です)。
ライブプロキシではなく、データを組み込んでいる理由
ルートの CLAUDE.md にある、この規模のテーブルに関する恒常的なルールに従い、一覧全体(取得時点で13,443行、生成後のTypeScriptで約4.6MB)は、scripts/bake-index.mjs によって src/tx-oig-index-data.ts に組み込まれ、workers/gateway/src/pack-baked-indexes.json に登録され、デプロイ時に KV にアップロードされます。そして、すべての呼び出しで args._bakedIndex として注入されます。静的なモジュールスコープのインポートは使用しません(fleet #2754:6つのパックでこれを行った結果、各ゲートウェイの分離環境に約48MBの保持ヒープが追加され、Cloudflare 1102によって約4回に1回の呼び出しが失敗しました)。
注入が欠落しているか不正な形式の場合、「見つかりません」と回答するのではなく、明示的にエラーを投げます。src/index.test.ts を参照してください。
定期的に node mcps/tx-medical-exclusions/scripts/bake-index.mjs を再実行してコミットしてください。すべてのレスポンスに含まれる data_as_of で、組み込まれたデータの古さが分かります。
このデータに含まれるもの — 実際のレコードごとの理由フィールドをライブで検証
ca-medical-exclusions を起票したタスク(#2805)では、DHCS がレコードごとの理由フィールドを公開していると想定していましたが、実際には存在しませんでした。このデータセットを、HHSC のカラム一覧を鵜呑みにせず、ライブの13,443行すべてと直接照合して確認しました。WebComments には、実際のレコードごとの理由テキストが含まれています。たとえば、「Federal mandated exclusion」(2,105行)、「License or Certification revoked, suspended or otherwise terminated」(1,243行)、「Conviction relating to Healthcare Fraud」(334行)です。これは統制語彙ではなく、数十年にわたる案件入力からなる自由記述テキストです。13,443行に対して異なる値は1,847種類あり、大文字・小文字の不統一や、ほぼ同じ表現(「Board action」/「Board Action」/「board action」がそれぞれ別に存在)も含まれます。すべてのレスポンスにこのフィールドが reason として含まれます。また、reason_field_caveat には、法令/理由コードとして正規化されたものではなく、自由記述であることを明記しています。
過去に除外されたプロバイダーと現在除外されているプロバイダー
HHSC OIG のページによると、オンライン検索で表示されるのは現在除外されているプロバイダーのみですが、このダウンロードファイルには、後に再登録されたプロバイダーも含め、過去に除外されたすべてのプロバイダーが記載されています。データを直接検証したところ、13,443行のうち1,462行(2026-10-08時点の取得データ)で、ReinstatedDate が空欄ではありませんでした。このパックではすべての行を保持し、reinstated_date が空欄かどうかに基づいて currently_excluded を導出しています。HHSC がこのブール値を公開しているわけではないため、導出値であることを明示し、すべてのレスポンスで ever_vs_current_caveat を通じて説明しています。
マッチング
npi クエリは、10桁の数値NPI値との完全一致のみを対象とします(ソースデータ内の600個のNPI値のうち3つは、正しい形式の10桁文字列ではありません。値はそのまま提示されますが、マッチングには使用されません)。license クエリは、LicenseNumber フィールドを対象に、数字以外を除去し、先頭のゼロを取り除いて照合します。ny-omig-exclusions および ca-medical-exclusions と同じ比較方法です。名前クエリは、プロバイダーの組み立て済み個人名(姓/名/ミドルネームのイニシャル)または会社名を対象に、大文字・小文字や句読点を区別せずに照合します。
到達可能性
2026-10-08に、ノートPCからの curl と、本番アカウント上で一時的に起動した wrangler dev --remote Worker の両方で、正確な GET から POST への VIEWSTATE ハンドシェイクを再現してライブ検証しました。Cloudflare エッジから、同一の 200 と1,837,673バイトのファイル添付を取得しました。ny-omig-exclusions および ca-medical-exclusions と同様、このホストには Supabase のエグレスリレーは不要です。
クイックスタート
MCP クライアント(Claude Desktop、Cursor、Windsurf など)に追加します。
{
"mcpServers": {
"tx-medical-exclusions": {
"url": "https://gateway.pipeworx.io/tx-medical-exclusions/mcp"
}
}
}
このエンドポイントが実際に提供するもの
https://gateway.pipeworx.io/tx-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/tx_medical_check_exclusion \
-H 'Content-Type: application/json' \
-d '{"name":"Gordzelik"}'
最初の呼び出しにアカウントは必要ありません。ツールを確認するには、GET https://gateway.pipeworx.io/v1/tools/tx_medical_check_exclusion を実行します。ツールを探すには、{"query":"..."} を指定して POST https://gateway.pipeworx.io/v1/tools/search_packs を実行します。
スタンドアロン(ゲートウェイアカウント不要)
このパッケージは、ローカルの stdio MCP サーバーとしても実行できます。Pipeworx アカウントも、ゲートウェイへの往復通信も必要ありません。
{
"mcpServers": {
"tx-medical-exclusions": {
"command": "npx",
"args": ["-y", "@pipeworx/mcp-tx-medical-exclusions"]
}
}
}
または、起動を確認するには、直接実行します。
npx -y @pipeworx/mcp-tx-medical-exclusions
stdin/stdout 経由で MCP を使用し、このパックのツールのみを対象に initialize/tools/list/tools/call に応答します。上記のゲートウェイ接続で追加される共有メタツールは含まれません。同じソース、同じツールを利用できますが、ask_pipeworx によるルーティングはありません。
ask_pipeworx を使う
ツールを直接呼び出す代わりに、自然な英語で質問できます。上記のパックエンドポイントでも、フルゲートウェイでも利用できます。
ask_pipeworx({ question: "your question about Tx Medical Exclusions data" })
ゲートウェイが適切なツールを選び、引数を自動的に設定します。
詳細
ライセンス
MIT
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。