Skip to main content
Glama

Server Details

Appeal a denied US health insurance claim: denial codes, rights, deadlines and a draft letter.

If you are the author of this connector, you can claim ownership by verifying the domain or GitHub account it belongs to. Claimed connector authors can inspect health checks, view analytics, and manage their listing.
Status
Healthy
Uptime
100.0% over 22 days
Last Tested
Transport
Streamable HTTP · MCP 2025-11-25
URL
Repository
GoodTurnStudio/goodturn-mcp
GitHub Stars
0
Server Listing
goodturn-mcp

TDQS

A4.1/5.0

Scored across 4 tools

Disambiguation4/5

Each tool targets a distinct aspect: drafting a letter, explaining denial codes, retrieving deadlines, and retrieving rights. Slight overlap exists because get_appeal_rights also returns deadlines, but descriptions clearly differentiate primary purposes.

Naming Consistency5/5

All tool names use snake_case with a leading verb (draft, explain, get), forming a consistent verb_noun pattern. No deviations.

Tool Count5/5

Exactly four tools cover the core appeal workflow: understanding denial, knowing deadlines, knowing rights, and drafting a letter. Each tool is necessary and no redundant tools exist.

Completeness4/5

The surface covers key pre-submission steps well, but lacks tools for post-submission tracking or finding plan-specific forms. These are minor gaps that agents can work around or that are intentionally out of scope.

Available Tools

4 tools
draft_appeal_letterDraft an appeal letter for the user to review and sendA
Read-onlyIdempotent
Inspect

Draft an appeal letter for the user to review and send. For requests like "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.

ParametersJSON Schema
NameRequiredDescriptionDefault
dateNoDate of service.
nameNoMember's name.
planNoInsurer or plan name.
claimNoClaim or reference number.
doctorNoTreating doctor's name.
reasonNoWhy the claim was denied: medical_necessity, emergency (said it wasn't an emergency), experimental, out_of_network, prior_auth, coding or generic. Required unless denial_code is given.
urgentNoSet to yes to ask for an expedited review.
detailsNoA sentence or two in the user's words on why the care should be covered.
serviceNoThe care that was denied, like "MRI of the right knee".
providerNoHospital, clinic or provider name.
member_idNoMember ID or Medicare number.
plan_typeNoSame values as plan_type in get_appeal_rights. Changes the wording for Medicare.
denial_codeNoThe 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_dateNoDate on the denial notice.

TDQS

A4.3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, destructiveHint=false and idempotentHint=true, so the safety profile is covered; the description usefully goes beyond that by specifying the return shape (plain text letter, [bracketed] placeholders for missing data, attachment checklist, tips) and asserting it 'never sends or files anything', which is the key side-effect boundary. It stops short of describing how placeholders behave with required-but-absent inputs like the reason/denial_code pairing.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three sentences, no waste: purpose first, then trigger examples, then return contract and side-effect boundary. Information is front-loaded and every sentence earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

There is no output schema, and the description compensates by describing the return payload (letter text, placeholders, attachment checklist, tips) as well as the no-send guarantee. For a 14-parameter, zero-required generation tool, the combination of trigger examples, output description, and behavior boundary gives an agent enough to call it correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

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 all 14 parameters, including the reason enum values and the denial_code fallback rule. The description adds only indirect signal about parameters via its example phrasings and the bracket-placeholder convention. Baseline 3 is appropriate when the schema carries the semantic load.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb+resource ('Draft an appeal letter') and immediately adds the scope boundary ('for the user to review and send'), which separates it from the sibling read-only lookups (get_appeal_rights, get_appeal_deadlines, explain_denial_code). The title and description align exactly, and an agent can tell this is the generative tool among informational siblings.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Provides two concrete trigger utterances ('my insurer denied my MRI as not medically necessary, help me appeal' and 'write an appeal letter for an out-of-network denial') that map directly to the reason enum, giving clear context for when to invoke. It does not, however, name the sibling tools or state when not to use this one (e.g., when the user only wants deadlines or rights information).

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 BenefitsA
Read-onlyIdempotent
Inspect

Explain the denial codes on an Explanation of Benefits. For requests like "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.

ParametersJSON Schema
NameRequiredDescriptionDefault
codeYesOne to four codes from the notice, like CO-50, PR 204, 197 or N130.
plan_typeNoSame values as plan_type in get_appeal_rights. Carried into the letter link.

TDQS

A4.3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations cover the safety profile (readOnly, idempotent, non-destructive), and the description adds substantive disclosure about the response: plain-language meaning, who fixes it, billability derived from group code, and a conditional letter link. With no output schema, this return-shape detail carries real weight; only per-code edge cases (invalid/unknown codes) are unaddressed.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Purpose is front-loaded in one sentence, with the examples and return-content list following compactly. The three example queries are slightly redundant with one another but each demonstrates a different code format, so they mostly earn their place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With only 2 simple params, no output schema and annotations handling safety, the description is nearly sufficient: it covers input formats, output semantics, and downstream behavior. Only multi-code batching behavior and invalid-code handling are left implicit.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the baseline is 3, but the description adds genuine meaning: the CO/PR/OA/PI group-code explanation teaches the agent how the 'code' value is composed, and it notes plan_type is carried into the letter link. That is value beyond the schema text.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Specific verb 'explain' plus the exact resource 'denial codes on an Explanation of Benefits', reinforced by real example inputs (CO-50, PR 204, N130). It is clearly distinguishable from siblings like draft_appeal_letter or get_appeal_deadlines, which is exactly what the letter-link framing implies.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The three quoted user phrasings make the trigger condition concrete and unambiguous. It stops short of explicitly routing away from siblings (e.g. 'for deadlines use get_appeal_deadlines'), so it is clear context but not full when/when-not guidance.

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 decideA
Read-onlyIdempotent
Inspect

How long someone has to appeal, and how fast the plan must decide. For requests like "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. The date on the user's own notice is the one that counts.

ParametersJSON Schema
NameRequiredDescriptionDefault
urgentNoSet to yes if waiting could seriously harm the person's health.
plan_typeNoSame values as plan_type in get_appeal_rights. Default: most private plans.
denial_dateNoDate on the denial notice, like 2026-09-01, 09/01/2026 or September 1, 2026.

TDQS

A3.9/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnly/idempotent/non-destructive/openWorld, so safety is covered. The description adds genuinely useful behavior: it returns an approximate file-by date derived from the denial notice date, and warns that the date on the user's own notice governs. It doesn't describe output shape, but with annotations this is solid.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loaded with the core purpose, then example queries, then the key caveat. The three example phrases are mildly redundant but serve retrieval matching; no dead sentences.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

No output schema exists, and the description covers the meaningful return (an approximate deadline) plus the authoritative-date caveat. Parameters, defaults and the urgent flag are carried by the schema, so an agent has enough to invoke it correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so all three parameters (including the urgent enum and plan_type cross-reference) are already documented. The description adds only the linkage that denial_date yields an approximate file-by date, which is minor value over the schema. Baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific resource and scope: appeal filing deadlines plus the plan's decision-speed obligation. It is clearly distinct in domain from explain_denial_code and draft_appeal_letter, though it never explicitly distinguishes itself from get_appeal_rights, which is the nearest sibling.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It names concrete user phrasings ('how long do I have to appeal?', 'how fast does my insurer have to answer?') that map to this tool and ties invocation to having the denial notice date. No when-not-to-use or sibling routing is given, 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_rightsAppeal rights, steps and free help for a plan type and stateA
Read-onlyIdempotent
Inspect

Appeal rights, steps and free help for a plan type and state. For requests like "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.

ParametersJSON Schema
NameRequiredDescriptionDefault
stateNoUS state name or two-letter code, like California or CA. Puerto Rico works too.
plan_typeNoPlan type: 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

A3.9/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already cover the safety profile (readOnly, idempotent, non-destructive, openWorld), so the description's job is to add substance — and it does, enumerating the return contents (who decides, internal appeal / external review / Medicare levels / fair hearing, deadlines, free help) and the default behavior when plan_type is omitted. No auth or rate-limit caveats, but none appear necessary for a public lookup.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loads the purpose, then examples, then return contents, then the omission rule — a sensible order with no filler. The three example questions are slightly redundant with the opening clause but earn their place by mapping natural user phrasing to the tool.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With only two optional, fully documented parameters and no output schema, the description supplies enough to call the tool correctly: the return shape is described and the optionality of plan_type is clarified. Nothing operationally necessary is missing, though the undefined boundary with get_appeal_deadlines leaves minor overlap ambiguity.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the baseline is 3; both parameters are already well documented in the schema, including accepted everyday synonyms and the default. The description's only added nuance is the advice to omit plan_type when unknown, which largely restates the schema's 'Default: most private plans.'

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific resource and scope — appeal rights, steps, and free help — with the qualifiers (plan type, state) that define the lookup. It does not explicitly contrast itself with get_appeal_deadlines, whose territory (deadlines) this description also claims, so sibling differentiation is only implicit.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives three concrete trigger phrasings ('what are my appeal rights in California?', 'my insurer denied my claim...', 'how do Medicare appeals work?') and a clear instruction for the missing-parameter case. It stops short of naming when to prefer a sibling such as get_appeal_deadlines or draft_appeal_letter.

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.

  1. 4 tool updates
    • Changeddraft_appeal_letter3 fields changed
      • changedInput schema / properties / plan_type / description
        Previous value: -"Same values as /v1/rights. Changes the wording for Medicare."New value: +"Same values as plan_type in get_appeal_rights. Changes the wording for Medicare."
      • changedInput schema / properties / reason / description
        Previous value: -"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."New value: +"Why the claim was denied: medical_necessity, emergency (said it wasn't an emergency), experimental, out_of_network, prior_auth, coding or generic. Required unless denial_code is given."
      • changedInput schema / properties / urgent / description
        Previous value: -"yes to ask for an expedited review."New value: +"Set to yes to ask for an expedited review."
    • Changedexplain_denial_code1 field changed
      • changedInput schema / properties / plan_type / description
        Previous value: -"Same values as /v1/rights. Carried into the letter link."New value: +"Same values as plan_type in get_appeal_rights. Carried into the letter link."
    • Changedget_appeal_deadlines2 fields changed
      • changedInput schema / properties / plan_type / description
        Previous value: -"Same values as /v1/rights. Default: most private plans."New value: +"Same values as plan_type in get_appeal_rights. Default: most private plans."
      • changedInput schema / properties / urgent / description
        Previous value: -"yes if waiting could seriously harm the person's health."New value: +"Set to yes if waiting could seriously harm the person's health."
    • Changedget_appeal_rights1 field changed
      • changedInput schema / properties / plan_type / description
        Previous value: -"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."New value: +"Plan type: 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."
  2. 4 tool updates
    • First observeddraft_appeal_letter
    • First observedexplain_denial_code
    • First observedget_appeal_deadlines
    • First observedget_appeal_rights

Related MCP Connectors

Related MCP Servers

  • A
    license
    A
    quality
    D
    maintenance
    Enables AI assistants to analyze insurance denial appeals, providing win probabilities, appeal strategies, payer behavioral intelligence, and regulatory leverage for any CPT code.
    5
    21 npm
    MIT
  • A
    license
    A
    quality
    C
    maintenance
    Healthcare 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.
    20
    42 npm
    3
    MIT
Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.