KeepMD MCP for EOB Decoder
An MCP server that allows AI assistants to decode Explanation of Benefits (EOB) and medical bills by looking up ICD-10-CM, HCPCS II, and CPT codes, explaining insurance terms, and verifying billing math. It operates in a read-only, privacy-first manner without storing user data or requiring accounts.
Endpoint and access
No sign-in to connect and list tools. Individual tools may still need a vendor account, credentials, or permissions; check the documented prerequisites.
https://mcp.keepmd.org/eobWhat its tools do
5 tools, grouped by the hints the server advertises. Hints are self-declared, not verified behavior.
Checks and signals
Each line is separate evidence, not a trust score.
- Passed Endpoint answered the live check ·
- Passed Official MCP Registry namespace is tied to keepmd.org ·
- Passed Endpoint is on the registry namespace domain ·
- Availability 1 of 1 checks passed in 30 days
What you can do with it
- Decode medical billing codes like Z00.00 or CO-45
- Explain insurance terms such as deductible and coinsurance
- Check EOB math to identify balance billing errors
- Get guidance on disputing denied claims
Source and maintenance
- Maintenance checked
Protocol and capabilities
- Server
- keepmd-mcp-eob-decoder 0.1.3
- MCP protocol negotiated in check
- 2025-11-25
- Tools
- 5 advertised
- Resources
- 2 advertised
- Resource templates
- 0 advertised
- Prompts
- 1 advertised
{
"tools": {
"listChanged": true
},
"prompts": {
"listChanged": true
},
"resources": {
"listChanged": true
}
}Server-provided instructions
Untrusted server output shown for inspection. It is not Koskamo guidance and is excluded from knowledge search.
Tools
5 advertised
lookup_codes — Look up EOB codes
Checks codes against the current official releases, which change every year, and reports whether each is valid, billable or terminated today. Returns the official descriptor for ICD-10-CM diagnosis codes, HCPCS Level II service/supply/drug codes and HCPCS modifiers found on an Explanation of Benefits or medical bill, plus the chapter, a plain-language note where KeepMD has one, the data version, and licensing notices for CPT, dental, NDC and X12 remark codes (which are recognized but not described). Use it for any code a user asks about, including common ones such as Z00.00, 99213, J0696 or CO-45. Accepts every code from a statement in one call.
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"codes"
],
"properties": {
"codes": {
"type": "array",
"items": {
"type": "string",
"maxLength": 20,
"minLength": 1
},
"maxItems": 50,
"minItems": 1,
"description": "Codes exactly as printed on the statement, for example [\"E11.9\", \"J0696\", \"99213\", \"CO-45\", \"GT\"]. Up to 50 per call; one call per statement."
},
"system": {
"enum": [
"auto",
"icd10cm",
"hcpcs2",
"modifier",
"carc",
"rarc"
],
"type": "string",
"default": "auto",
"description": "Which code set to assume. auto tries ICD-10-CM, HCPCS Level II and the licensed patterns. Use carc or rarc for remark/reason codes, modifier for two-character modifiers."
}
}
}{
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}search_codes — Search diagnosis and service codes
Finds ICD-10-CM diagnosis codes and HCPCS Level II service, supply and drug codes whose official description matches words from a statement (everyday wording such as "flu shot" or "x-ray" is translated to the clinical terms), or whose code starts with the given characters. Use it when the statement prints a description but no code, or the code is partly illegible. CPT (5-digit) physician-service codes such as office visits and lab panels are not searchable because their text is licensed.
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"query"
],
"properties": {
"limit": {
"type": "integer",
"default": 10,
"maximum": 25,
"minimum": 1
},
"query": {
"type": "string",
"maxLength": 120,
"minLength": 2,
"description": "Words from a service or diagnosis description in everyday or clinical wording (\"flu shot\", \"influenza vaccine administration\", \"type 2 diabetes\"), or the start of a code (\"E11\", \"J069\")."
},
"system": {
"enum": [
"both",
"icd10cm",
"hcpcs2"
],
"type": "string",
"default": "both"
}
}
}{
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}explain_insurance_term — Explain an insurance term
Returns KeepMD's plain-language definition, a worked example and related terms for an insurance or medical-billing term from its glossary (allowed amount, deductible, coinsurance, balance billing, CO/PR group codes, No Surprises Act, observation status and about 110 more). Use it when a user asks what a word, column or abbreviation on an EOB, Medicare Summary Notice or bill means, including common ones such as allowed amount, billed amount, deductible or CO. Takes one term per call.
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"term"
],
"properties": {
"term": {
"type": "string",
"maxLength": 80,
"minLength": 2,
"description": "An insurance or billing term as it appears on the statement, for example \"allowed amount\", \"coinsurance\", \"CO\", \"not a bill\"."
}
}
}{
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}check_eob_math — Check EOB arithmetic
Recomputes one EOB line or claim total from the printed amounts (billed, allowed, plan paid, deductible, copay, coinsurance, non-covered, patient responsibility) and reports the contractual adjustment, the expected patient responsibility and plan payment, and any discrepancy such as a balance bill or a mismatched total. Use it when a user gives EOB or bill amounts and asks whether what they owe is right; it returns an itemized, exact calculation with stated assumptions. Pure arithmetic; takes dollar amounts only, never names or identifiers.
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"copay": {
"type": "number",
"maximum": 10000000,
"minimum": 0,
"description": "Copay amount."
},
"billed": {
"type": "number",
"maximum": 10000000,
"minimum": 0,
"description": "Provider's billed charge for the line or claim."
},
"allowed": {
"type": "number",
"maximum": 10000000,
"minimum": 0,
"description": "Plan's allowed, approved or eligible amount."
},
"plan_paid": {
"type": "number",
"maximum": 10000000,
"minimum": 0,
"description": "Amount the plan paid."
},
"deductible": {
"type": "number",
"maximum": 10000000,
"minimum": 0,
"description": "Amount applied to the deductible."
},
"in_network": {
"type": "boolean",
"description": "false for an out-of-network claim. Defaults to true."
},
"non_covered": {
"type": "number",
"maximum": 10000000,
"minimum": 0,
"description": "Non-covered amount the statement assigns to the patient (PR group), if any."
},
"coinsurance_rate": {
"type": "number",
"maximum": 100,
"minimum": 0,
"description": "Coinsurance percentage, for example 20 or 0.2, if the dollar amount is not printed."
},
"coinsurance_amount": {
"type": "number",
"maximum": 10000000,
"minimum": 0,
"description": "Coinsurance in dollars, if printed."
},
"patient_responsibility": {
"type": "number",
"maximum": 10000000,
"minimum": 0,
"description": "Total the statement says the patient owes."
}
}
}{
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}get_eob_reading_guide — EOB reading guide
Returns KeepMD's step-by-step guide, red flags and links to official consumer resources for reading an Explanation of Benefits (overview), resolving a bill that looks wrong (dispute), appealing a denial (appeal), or the handful of terms that drive the arithmetic (glossary). Use it when a user asks how to read an EOB, what to do about a bill that looks wrong, or how to appeal a denial.
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"topic": {
"enum": [
"overview",
"dispute",
"appeal",
"glossary"
],
"type": "string",
"default": "overview"
}
}
}{
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}Prompts
1 advertised
decode_eob — Decode my EOB
Walks through an Explanation of Benefits the user pastes into the chat: codes, terms, arithmetic, then next steps.
Resources
2 advertised
glossary-index — Glossary index
Every term explain_insurance_term can define.
keepmd://mcp-eob-decoder/glossarydata-manifest — Code-set versions
Which ICD-10-CM and HCPCS releases this server is serving.
keepmd://mcp-eob-decoder/manifest90-day uptime
A lightweight connection check about every six hours, sampled on hosts with many listings. It shows the server answered, not that its tools work.
- 2026-11-07: 1 of 1 checks answered
30-day availability
Aggregated from read-only remote checks; this is not a tool-execution or security guarantee.
- Successful checks
- 1 of 1 (100%)
- Average latency
- 415 ms
- 95th percentile latency
- 415 ms
Maintenance history
Public check and source-refresh events. Editorial and ownership records remain private.
- · probe · passed · 415 ms · metadata changed · 5 tool(s), 2 resource(s), 0 resource template(s), 1 prompt(s)
Connect from your client
Each snippet registers the same endpoint; pick the client you use.
Claude Code
claude mcp add --transport http keepmd-mcp-for-eob-decoder https://mcp.keepmd.org/eobCodex
codex mcp add keepmd-mcp-for-eob-decoder --url https://mcp.keepmd.org/eobCursor
{
"mcpServers": {
"keepmd-mcp-for-eob-decoder": {
"url": "https://mcp.keepmd.org/eob"
}
}
}Cline
{
"mcpServers": {
"keepmd-mcp-for-eob-decoder": {
"type": "streamableHttp",
"url": "https://mcp.keepmd.org/eob",
"disabled": false
}
}
}VS Code
{
"servers": {
"keepmd-mcp-for-eob-decoder": {
"type": "http",
"url": "https://mcp.keepmd.org/eob"
}
}
}Gemini CLI
gemini mcp add --transport http keepmd-mcp-for-eob-decoder https://mcp.keepmd.org/eobClaude Desktop
https://mcp.keepmd.org/eobWindsurf
{
"mcpServers": {
"keepmd-mcp-for-eob-decoder": {
"serverUrl": "https://mcp.keepmd.org/eob"
}
}
}Let your agent find its tools
Find servers like KeepMD MCP for EOB Decoder from your agent. Add Koskamo once to search the index for endpoints, access requirements, and client setup. Public discovery needs no key.
Other productivity and knowledge servers
Do you run KeepMD MCP for EOB Decoder?
Prove ownership with a DNS record, a well-known file, or your Official MCP Registry entry, and your edits publish immediately. Proofs are re-checked weekly; admins can still hide or remove a listing.