Connect an agent over MCP
HANK_CLAIMCLEANER exposes its claim validation and cleaning tools over the
Model Context Protocol,
so any MCP-capable agent (ChatGPT, Claude Desktop, Claude Code, Cursor, OpenAI
Agents, or your own client) can validate and scrub medical claims as a
first-class tool, using the exact same cleaning engine as the REST API and the
web app. The server is token-gated. Two tools: clean_claim and
service_info.
Your endpoint
Send MCP requests to the metered Hank edge (not the backend host, so they are metered and authenticated at the edge):
The trailing slash is required. This server is not tenant-scoped, so every caller shares the one endpoint; your access token identifies your organization.
Step 1: get an access token
This MCP server is token-gated. Generate or copy an access token in the Hank
console, then drop it into one of the configs below in place of
YOUR_TOKEN.
Step 2: add the server to your client
Clients that send an auth header
Recommended: the token stays out of the URL.
Claude Code (CLI)
claude mcp add --transport http hank-claimcleaner https://api.hank.ai/v1/claimcleaner/mcp/ \ --header "Authorization: Bearer YOUR_TOKEN"
Claude Desktop (claude_desktop_config.json)
Desktop has no header field. Bridge it with mcp-remote so the token rides in a header, not the URL:
{
"mcpServers": {
"hank-claimcleaner": {
"command": "npx",
"args": ["-y", "mcp-remote", "https://api.hank.ai/v1/claimcleaner/mcp/", "--header", "Authorization: Bearer YOUR_TOKEN"]
}
}
}
Cursor (~/.cursor/mcp.json)
Settings > MCP > Add new global MCP server, or edit
~/.cursor/mcp.json (project-local: .cursor/mcp.json):
{
"mcpServers": {
"hank-claimcleaner": {
"url": "https://api.hank.ai/v1/claimcleaner/mcp/",
"headers": { "Authorization": "Bearer YOUR_TOKEN" }
}
}
}
OpenAI API / Agents SDK / Codex
MCP tool block (Responses API shape):
{
"type": "mcp",
"server_label": "hank-claimcleaner",
"server_url": "https://api.hank.ai/v1/claimcleaner/mcp/",
"headers": { "Authorization": "Bearer YOUR_TOKEN" }
}
Generic MCP client
Bare entry for agents that take a URL and headers:
{ "hank-claimcleaner": { "url": "https://api.hank.ai/v1/claimcleaner/mcp/", "headers": { "Authorization": "Bearer YOUR_TOKEN" } } }
URL-only connectors
The ?token= form is accepted only on /mcp
paths, and it is redacted from all Hank access logs.
ChatGPT (Apps / Developer mode)
Settings > Apps > Advanced settings > enable Developer mode > Create app > paste this URL, Authentication = No authentication:
https://api.hank.ai/v1/claimcleaner/mcp/?token=YOUR_TOKEN
Claude.ai / Claude Desktop "Add custom connector"
Settings > Connectors > Add custom connector > paste this URL (use when you are not bridging with mcp-remote):
https://api.hank.ai/v1/claimcleaner/mcp/?token=YOUR_TOKEN
The tools
-
clean_claim(line_items, cleaners?, dos?, specialty?, zipcode?, ...)runs the IDENTICAL flow asPOST /api/clean: validates CPT/ICD codes and modifiers and applies the selected CMS edits (NCCI / NLCD / PFS / frequency / anesthesia crosswalk / active-code), then returns the cured claim alongside the issues found. -
service_info()is a cheap liveness and identity check: version, DB backend, and whether the cleaner data has finished loading. Call it first; ifreadyis false,clean_claimwill error until the background boot completes.
Full tool schemas are served by the MCP tools/list method after the
initialize handshake.