Appeal My Claim
Server Details
Appeal a denied US health insurance claim: denial codes, rights, deadlines and a draft letter.
- Status
- Healthy
- Last Tested
- Transport
- Streamable HTTP · MCP 2025-11-25
- URL
- Repository
- GoodTurnStudio/goodturn-mcp
- GitHub Stars
- 0
- Server Listing
- goodturn-mcp
TDQS
Scored across 4 tools
Each tool targets a distinct sub-task: drafting a letter, decoding denial codes, computing deadlines, and explaining rights. There is mild overlap between get_appeal_deadlines and get_appeal_rights, since the latter also returns deadlines, but the core intent of each is clearly separable.
All four tools follow a clean verb_noun snake_case pattern (draft_appeal_letter, explain_denial_code, get_appeal_deadlines, get_appeal_rights). Verbs (draft/explain/get) and nouns are predictable and readable throughout.
Four tools is well-scoped for a focused insurance-appeal helper and each earns its place. It is on the lean side, but nothing feels redundant or missing at the count level.
The surface covers the main user journey: understand the denial (explain_denial_code), know the rules and timing (get_appeal_rights, get_appeal_deadlines), and act (draft_appeal_letter). Gaps remain around filing/external review submission and appeal-status tracking, though the server explicitly scopes itself to not sending or filing.
Available Tools
4 toolsdraft_appeal_letterDraft an appeal letter for the user to review and sendARead-onlyIdempotentInspect
Draft an appeal letter for the user to review and send. Use for "my insurer denied my MRI as not medically necessary, help me appeal" or "write an appeal letter for an out-of-network denial". Returns a letter as plain text with [brackets] for anything not given, a checklist of what to attach (denial notice, doctor's letter of medical necessity, records), and tips. It never sends or files anything.
| Name | Required | Description | Default |
|---|---|---|---|
| date | No | Date of service. | |
| name | No | Member's name. | |
| plan | No | Insurer or plan name. | |
| claim | No | Claim or reference number. | |
| doctor | No | Treating doctor's name. | |
| reason | No | Why the claim was denied: medical_necessity, emergency (said it wasn't an emergency), experimental, out_of_network, prior_auth, coding or generic. Plain words work too. Required unless denial_code is given. | |
| urgent | No | yes to ask for an expedited review. | |
| details | No | A sentence or two in the user's words on why the care should be covered. | |
| service | No | The care that was denied, like "MRI of the right knee". | |
| provider | No | Hospital, clinic or provider name. | |
| member_id | No | Member ID or Medicare number. | |
| plan_type | No | Same values as /v1/rights. Changes the wording for Medicare. | |
| denial_code | No | The reason code on the notice, like CO-50 or PR-197. Picks the reason when reason is left out, and is quoted in the letter. | |
| denial_date | No | Date on the denial notice. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint/idempotent/destructiveHint=false, but the description goes further by describing the actual return payload (plain-text letter with [bracket] placeholders, attachment checklist, tips) and confirming 'It never sends or files anything.' No output schema exists, so this return-shape disclosure is genuinely additive, though it doesn't cover auth or rate constraints.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three tight sentences with the core purpose front-loaded, followed by usage triggers, then return format and a safety note. No filler, though the trigger examples add length that is justified by their routing value.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 14-parameter, zero-required tool with no output schema, the description covers purpose, triggers, return shape, and the no-side-effect guarantee. The main remaining gap is that omitted fields are only vaguely explained rather than tied to the placeholder behavior per parameter.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% for all 14 parameters, so the schema already documents each field, the reason enum, and the reason/denial_code interaction. The description adds only a light note that unspecified values are left as [brackets] placeholders. Baseline 3 is appropriate when the schema carries the load.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Specific verb+resource ('Draft an appeal letter') with an explicit scope qualifier ('for the user to review and send'). Sibling tools (explain_denial_code, get_appeal_deadlines, get_appeal_rights) are all read/explain operations, so the drafting action is unambiguous without opening any schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides concrete trigger utterances ('my insurer denied my MRI as not medically necessary, help me appeal'; 'write an appeal letter for an out-of-network denial'), which make the intended use case clear. It stops short of naming when NOT to use it or explicitly routing to the sibling rights/deadline tools as prerequisites.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
explain_denial_codeExplain the denial codes on an Explanation of BenefitsARead-onlyIdempotentInspect
Explain the denial codes on an Explanation of Benefits. Use for "my EOB says CO-50, what does that mean?", "what is denial code PR 204?" or "what does N130 mean?". Returns each code in plain words, who usually fixes it (the provider's billing office, an appeal, or the user), whether the provider can bill the user for it (from the group code CO, PR, OA or PI), and a letter link when an appeal fits.
| Name | Required | Description | Default |
|---|---|---|---|
| code | Yes | One to four codes from the notice, like CO-50, PR 204, 197 or N130. | |
| plan_type | No | Same values as /v1/rights. Carried into the letter link. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already establish readOnly/idempotent/non-destructive behavior, and the description adds genuinely useful context beyond that: it details what each result contains (plain-language meaning, responsible party, whether the provider can bill the user based on group code, and a letter link). No mention of rate limits or lookup-coverage limits, but the behavioral picture is substantially richer than the annotations alone.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Purpose and return contents are front-loaded, with the illustrative queries placed after the core statement. The sentences are dense and earn their place, though the example quotes add length that could be trimmed.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
There is no output schema, so the description carries the burden of describing returns, and it does so thoroughly (per-code meaning, fixer, billability, appeal link). Given only two parameters and a simple read operation, an agent has everything needed to call it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so a baseline of 3 applies, but the description adds meaning by showing accepted code formats (CO-50, PR 204, 197, N130) and explaining that the CO/PR/OA/PI group code governs whether the provider can bill the user. That elevates it above the schema's plain parameter text.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (Explain) and resource (denial codes on an EOB) and immediately grounds it in concrete code formats. It is clearly distinguishable from the sibling action tools (draft_appeal_letter, get_appeal_deadlines, get_appeal_rights) because it is an informational lookup, not a drafting or rights-fetching operation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives three concrete trigger queries ("my EOB says CO-50...", "what is denial code PR 204?", "what does N130 mean?"), which makes the when-to-use condition unambiguous. It does not state exclusions or explicitly name the sibling alternatives, so it stops short of a 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_appeal_deadlinesHow long someone has to appeal, and how fast the plan must decideARead-onlyIdempotentInspect
How long someone has to appeal, and how fast the plan must decide. Use for "how long do I have to appeal?", "when is my appeal due?" or "how fast does my insurer have to answer?". With the date on the denial notice, gives an approximate file-by date. Remind the user to check the date on their own notice
| Name | Required | Description | Default |
|---|---|---|---|
| urgent | No | yes if waiting could seriously harm the person's health. | |
| plan_type | No | Same values as /v1/rights. Default: most private plans. | |
| denial_date | No | Date on the denial notice, like 2026-09-01, 09/01/2026 or September 1, 2026. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations already declare readOnly, idempotent, non-destructive, and closed-world behavior. The description adds useful context: the output is approximate rather than authoritative, and the user should verify the date on their own notice. It does not cover permissions or rate limits, but those are less relevant for a read-only lookup.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is front-loaded with the core purpose, followed by intent examples and a caveat. It is reasonably tight, though it repeats the title verbatim in the first sentence and spends a sentence on a reminder that could be folded in.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema and only three optional parameters, the description does enough by stating it returns an approximate file-by date and decision timeframe. It does not detail the exact output shape, but for a simple read-only lookup the conceptual return description is adequate.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents urgent, plan_type, and denial_date in detail. The description only reinforces that denial_date comes from the denial notice and that it yields an approximate file-by date, adding little beyond the structured fields.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific computed output — appeal filing deadlines and the plan's decision timeframe — which is distinct from the sibling tools (rights, letter drafting, denial code explanation). It gives plain-language example questions so an agent can recognise the intent.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It provides concrete trigger phrases ('how long do I have to appeal?', 'when is my appeal due?', 'how fast does my insurer have to answer?') and notes that a denial notice date should accompany the call. It does not name alternative tools or state when not to use this one, so it falls short of full routing guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_appeal_rightsAppeal rights, steps and free help for a plan type and stateARead-onlyIdempotentInspect
Appeal rights, steps and free help for a plan type and state. Use for "what are my appeal rights in California?", "my insurer denied my claim, what can I do?" or "how do Medicare appeals work?". Returns who decides, the steps (internal appeal, external review, Medicare levels or Medicaid fair hearing), deadlines, and where to get free help, including the state insurance department. If the plan type is not known, leave it out to get the rules for most private plans
| Name | Required | Description | Default |
|---|---|---|---|
| state | No | US state name or two-letter code, like California or CA. Puerto Rico works too. | |
| plan_type | No | marketplace, employer, employer_insured, employer_self_funded, medicare, medicare_advantage, part_d or medicaid. Everyday words work too, like "job", "Obamacare" or "Medi-Cal". Default: most private plans. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly/idempotent/non-destructive, so the bar is low. The description adds substantive behavioral context by enumerating the returned content (decision-maker, internal appeal vs. external review vs. Medicare levels vs. Medicaid fair hearing, deadlines, free help including the state insurance department), which is not in the annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with purpose, then examples, return contents, and a default-behavior note. Mostly efficient, though the example queries consume space for what is already a clear purpose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a read-only, two-optional-param tool with no output schema, the description does the work of explaining return contents, when to use it, and default behavior. Nothing essential to correct invocation is missing, though sibling differentiation is the one remaining gap.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and the plan_type schema entry already states 'Default: most private plans.' The description's note to leave plan_type out to get most-private-plan rules largely restates that default rather than adding new syntax or constraints, so baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb+resource ('Appeal rights, steps and free help for a plan type and state') and details what comes back (who decides, steps, deadlines, free help). It does not, however, explicitly distinguish itself from the sibling get_appeal_deadlines, whose topic it partly covers, leaving some ambiguity about which to pick.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Three concrete example queries ('what are my appeal rights in California?', 'my insurer denied my claim, what can I do?', 'how do Medicare appeals work?') give clear usage context, and the closing note tells the agent to omit plan_type when unknown. It stops short of naming when NOT to use it or routing to sibling tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
4 tool updates
- First observed
draft_appeal_letter - First observed
explain_denial_code - First observed
get_appeal_deadlines - First observed
get_appeal_rights
Related MCP Connectors
US health-insurance claim denials and appeal outcomes, by insurer.
Insurer denial rates, appeal outcomes by treatment and condition, and appeal rights lookups.
Is your US medical bill fair? Compares charges with Medicare rates and drafts a dispute letter.
51Medigami patient tools: rates, markups, denial codes, deadlines, overturn rates, procedure codes
Related MCP Servers
- AlicenseNot gradedqualityBmaintenanceEnables querying US health-insurance claim denial rates and appeal outcomes by insurer, with tools for filtering by state and market and obtaining detailed profiles and coverage info.MIT
- AlicenseAqualityDmaintenanceEnables AI assistants to analyze insurance denial appeals, providing win probabilities, appeal strategies, payer behavioral intelligence, and regulatory leverage for any CPT code.551 npmMIT
- AlicenseAqualityCmaintenanceEnables AI assistants to look up medical billing codes, denial reasons, and payer rules for faster claim resolution.66MIT
- AlicenseAqualityCmaintenanceHealthcare billing AI for agents — 12 tools for ICD-10/CPT/HCPCS code lookup (80K+ codes), prior auth prediction, medical NER, claims validation, HIPAA compliance auditing, and provider/drug enrichment. Pay-per-call via credits or USDC.2055 npm3MIT
Glama MCP Gateway
Add one secure layer between your agents and this server.