Skip to main content
Glama

@pipeworx/ny-omig-exclusions

New York State OMIG Medicaid provider exclusion screening — check a provider by name, NPI or license number against the NY Office of the Medicaid Inspector General's exclusion list, the state-level counterpart to the federal HHS OIG LEIE (leie pack) for New York specifically.

Part of Pipeworx — an MCP gateway connecting AI agents to 1867+ live data sources. This is an independent, unofficial integration — not affiliated with, endorsed by, or published by the upstream provider.

Tools

  • ny_omig_check_exclusion(name?, npi?, license?, limit?) — screens a provider against the ~9,100-row NY OMIG exclusion list. An NPI or license match is an identification (both are exact, provider-specific identifiers); a name match — even an exact one — is a candidate lead only, since OMIG's list carries no date of birth or address to tell same-named providers apart.

  • ny_omig_exclusion_coverage() — total exclusions held, how many carry an NPI or license number, provider-type diversity, the oldest/newest exclusion date, and OMIG's own "data last updated" date for the baked copy this pack serves.

Related MCP server: leie

Auth

Keyless.

Data sources

Why this is baked, not a live proxy

OMIG publishes the list only as flat files. Per root CLAUDE.md's standing rule for exactly this shape, the table (~9,117 rows, ~1.3MB as generated TypeScript) is baked by scripts/bake-index.mjs into src/ny-omig-index-data.ts, registered in workers/gateway/src/pack-baked-indexes.json, uploaded to KV at deploy, and injected into every call as args._bakedIndex — never a static module-scope import (fleet #2754: six packs doing that put ~48MB of retained heap into every gateway isolate and cost about one call in four as a Cloudflare 1102). A missing or malformed injection throws loudly rather than answering "not found" — see src/index.test.ts.

Re-run node mcps/ny-omig-exclusions/scripts/bake-index.mjs periodically to refresh the copy and recommit; data_as_of on every response says how stale it is relative to OMIG's own "last updated" banner, so staleness is visible rather than silent.

What this data does NOT include

Every OMIG export — tab-delimited, Excel, and the HTML formatted list — carries only provider name, license number, NPI, provider type and the exclusion effective date. There is no exclusion reason, statutory authority or case citation in this data, unlike the federal LEIE's statutory exclusion-type code. Per-record detail, if OMIG holds any, sits behind an ASP.NET VIEWSTATE postback tied to a freshly-loaded search session rather than a stable queryable endpoint, and was not pursued for this first cut. Every response says this plainly rather than inventing a field OMIG does not publish.

Reachability

Verified live 2026-10-07 from both a laptop curl and a throwaway wrangler dev --remote Worker on the prod account: identical 200 / 535,395 bytes from the Cloudflare edge on tabdelimited.aspx. Unlike oklahoma-code / utah-code / new-hampshire-code, this host needs no Supabase egress relay.

Quick Start

Add to your MCP client (Claude Desktop, Cursor, Windsurf, etc.):

{
  "mcpServers": {
    "ny-omig-exclusions": {
      "url": "https://gateway.pipeworx.io/ny-omig-exclusions/mcp"
    }
  }
}

What this endpoint actually serves

tools/list at https://gateway.pipeworx.io/ny-omig-exclusions/mcp returns the tools in the table above plus the shared Pipeworx meta-tools — ask_pipeworx, discover_tools, search_within, remember/recall and the rest of the gateway-wide set. So the tool count you see is larger than this table: a single-pack endpoint currently lists roughly 30 shared tools alongside the pack's own. The connection's initialize response states its exact scope, and is the authoritative answer for a given day.

This is deliberate, not multiplexing by accident. The meta-tools are what let a scoped connection answer a question this pack does not cover — via ask_pipeworx, which routes across the whole catalog — without you adding a second MCP server. There is currently no way to mount a pack endpoint without them; if the extra schemas cost you more context than the routing is worth, connect to the full gateway once rather than to several pack endpoints.

Or connect to the full Pipeworx gateway to get every pack's tools listed directly, instead of just this one's:

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

Both URLs reach the same gateway and the same 1867+ data sources. The only difference is which pack's tools are listed directly; ask_pipeworx reaches all of them from either one.

No MCP client? Call it over HTTP

curl -X POST https://gateway.pipeworx.io/v1/tools/ny_omig_check_exclusion \
  -H 'Content-Type: application/json' \
  -d '{"name":"1 STOP PHARMACY AND FOOD MART INC"}'

No account needed for the first calls. Inspect any tool: GET https://gateway.pipeworx.io/v1/tools/ny_omig_check_exclusion. Find one: POST https://gateway.pipeworx.io/v1/tools/search_packs with {"query":"..."}.

Run it from npm

@pipeworx/mcp-ny-omig-exclusions is a local stdio bridge to the Pipeworx gateway: your MCP client starts it with npx, and it forwards every call to the same https://gateway.pipeworx.io/ny-omig-exclusions/mcp endpoint shown above. It needs network access; there is no offline mode.

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

Without a key it calls anonymously, capped at 50 calls a day. A free account raises that to 200 a day: get a key at https://pipeworx.io/signup and add "env": { "PIPEWORX_API_KEY": "<your key>" } to the server entry. The key is sent as a Bearer token, the same way a hosted connection sends it, so calls are metered and billed exactly as they are there.

It lists only this pack's tools by default. Set PIPEWORX_META_TOOLS=1 to also list ask_pipeworx and the other gateway-wide tools.

Behind an HTTPS proxy: Node's built-in fetch does not read HTTPS_PROXY by default. Newer Node releases honour it when NODE_USE_ENV_PROXY=1 is set; check your Node version's documentation.

Using with ask_pipeworx

Instead of calling tools directly, you can ask questions in plain English — this works on the pack endpoint above as well as on the full gateway:

ask_pipeworx({ question: "your question about Ny Omig Exclusions data" })

The gateway picks the right tool and fills the arguments automatically.

More

License

MIT

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    B
    maintenance
    Enables checking whether a healthcare provider is barred from US federal health programs by screening against the HHS OIG List of Excluded Individuals/Entities, returning candidate matches with confidence levels and coverage details.
    653 npm
    MIT
  • A
    license
    Not graded
    quality
    C
    maintenance
    Enables screening a provider by name, NPI, or ODM Provider ID against Ohio Medicaid's ~2,122-row roster of suspended and barred individuals and organizations, returning status and active-flag details for each hit, along with a companion tool that reports list coverage and counts by effective-date range.
    288 npm
    MIT
  • A
    license
    Not graded
    quality
    C
    maintenance
    Screens providers by name, NPI, license number, or FEIN against Pennsylvania DHS's Medicheck list of roughly 6,750 individuals and businesses ever precluded from the state's Medical Assistance program, flagging current status and noting when DHS's own status field is blank. Also reports coverage statistics such as total rows, currently precluded vs. ended counts, identifier coverage, distinct status values, and date ranges.
    277 npm
    MIT