InPlan
Server Details
Is this US provider in this health plan? Network checks by NPI and plan ID, with dated sources.
- Status
- Healthy
- Last Tested
- Transport
- Streamable HTTP · MCP 2025-11-25
- URL
TDQS
Scored across 7 tools
Each tool has a distinct role: single vs batch network checks, provider identity lookup, plan details, provider-to-plan listing, plan-to-provider search, and coverage metadata. The inverse relationships between plans_for_provider and search_plan_providers are clearly described, and lookup_provider explicitly points to plans_for_provider for full plan lists.
All names use snake_case, but the set mixes verb_noun names (check_network, get_plan, lookup_provider, search_plan_providers) with noun-only and noun-phrase names (coverage, plans_for_provider). The pattern is readable but not fully consistent.
Seven tools is well-scoped for a read-only healthcare network directory service. The batch and paged search tools are justified by real bulk/lookup use cases rather than bloating the surface.
Core network checks are covered in both directions, with plan details, provider identity, and coverage metadata. However, there is no plan search/list operation to discover plan IDs by insurer, state, or name, making get_plan and search_plan_providers hard to reach without an externally supplied plan ID.
Available Tools
7 toolscheck_networkIs this provider in this plan?ARead-onlyIdempotentInspect
Answers whether one plan's network directory lists one provider. answer "listed" (in_network: true) comes with evidence: plan year, network tier and source {type, as_of}. answer "not_found" (in_network: null) means no listing was found in current directory data for this provider and plan; it is NOT a statement that the provider is out of network, so never report it as "out of network". answer "no_provider_network" is a drug-only plan. Directories change; tell users to confirm with the plan before care. Costs 1 call.
| Name | Required | Description | Default |
|---|---|---|---|
| npi | Yes | 10-digit National Provider Identifier, as a string, e.g. "1184617268". | |
| year | No | Plan year, e.g. 2026. Optional; by default all plan years we hold are considered. | |
| plan_id | Yes | Plan ID. Marketplace (ACA) plans: 14 characters like "29276OH0970001" (a 16-character "-01" variant form is accepted). Medicare Advantage plans: "H1234-001-000" (the segment "-000" is optional). |
Output Schema
| Name | Required | Description |
|---|---|---|
| data | Yes | The answer. Same shape as the matching InPlan API v1 endpoint. |
| notes | No | How to read the answer. |
| sources | Yes | Source types behind the answer (insurer_directory, plan_directory, provider_registry, plan_catalog), each with its as_of date. |
| data_as_of | Yes | Date (YYYY-MM-DD) of the newest data behind this answer. |
| request_id | Yes | Request id; quote it when you contact support. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already establish a safe, read-only, idempotent operation, and the description adds substantial behavioral context beyond them: exact answer semantics, included evidence, the drug-only plan case, freshness caveats, and a cost signal. The not_found warning is especially important for preventing misuse.
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, dense but well organized, and every sentence carries useful information about answer handling, evidence, caveats, or cost. There is no repetition of schema or annotation data.
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?
Even though an output schema exists, the description adds necessary semantic interpretation of the answer values that an agent must know. It covers the provider-not-found caveat, the no_provider_network case, evidence fields, and directory freshness, making the tool complete for correct invocation and reporting.
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?
The input schema has 100% description coverage and fully explains npi, plan_id formats, and the optional year default. The description does not add meaning beyond the schema for these parameters, so the baseline of 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 first sentence states a precise verb and resource: whether one plan's network directory lists one provider. It is clearly distinct from the batch sibling and other lookup tools by emphasizing the single-provider/single-plan scope.
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?
The description gives strong interpretation guidance for each answer, including the critical warning not to treat not_found as out-of-network. However, it does not explicitly name alternatives such as check_network_batch for multiple providers, leaving that routing to the sibling name alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
check_network_batchCheck up to 100 provider and plan pairsARead-onlyIdempotentInspect
The check_network answer for up to 100 (npi, plan_id) pairs in one request, with the same listed / not_found / no_provider_network semantics. Invalid pairs come back with a per-item error and are not charged; each accepted pair costs 1 call. Needs the Builder plan or higher.
| Name | Required | Description | Default |
|---|---|---|---|
| year | No | Default plan year for items that do not set one. Optional. | |
| items | Yes | 1 to 100 pairs. |
Output Schema
| Name | Required | Description |
|---|---|---|
| data | Yes | The answer. Same shape as the matching InPlan API v1 endpoint. |
| notes | No | How to read the answer. |
| sources | Yes | Source types behind the answer (insurer_directory, plan_directory, provider_registry, plan_catalog), each with its as_of date. |
| data_as_of | Yes | Date (YYYY-MM-DD) of the newest data behind this answer. |
| request_id | Yes | Request id; quote it when you contact support. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond readOnly/idempotent annotations, it discloses billing semantics (each accepted pair costs 1 call, invalid pairs not charged), partial-failure behavior (per-item error), and a plan-tier gate — all behavioral facts the annotations do not convey.
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: identity/scope first, then cost and error semantics, then the access requirement. No filler and nothing buried.
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 an output schema present and full schema coverage, the description supplies exactly the missing pieces — equivalence to check_network, billing per pair, per-item error handling, and plan gating. Nothing needed to invoke it correctly is absent.
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 schema already documents npi format, plan_id formats, year defaults, and the 1–100 item bound. The description adds no parameter-level detail beyond what structured fields provide, so baseline 3 applies.
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 resource and scope ('the check_network answer for up to 100 (npi, plan_id) pairs in one request') and explicitly ties itself to the sibling check_network, so the agent can tell batch from single lookup immediately.
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?
The description makes the batch context clear ('up to 100 ... in one request') and adds a hard prerequisite ('Needs the Builder plan or higher'). It stops short of explicitly saying 'use check_network instead for a single pair', but the relationship is strongly implied.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
coverageWhat InPlan coversARead-onlyIdempotentInspect
The markets, states and insurers InPlan holds directory listings for, with plan counts and as_of dates, by plan year. Filter by market, state or year. Use it to see which states and insurers you can query. Costs 1 call.
| Name | Required | Description | Default |
|---|---|---|---|
| year | No | Plan year, e.g. 2026. Optional; by default all plan years we hold are considered. | |
| state | No | 2-letter US state code, e.g. "OH". Optional. | |
| market | No | "aca" = Marketplace plans, "ma" = Medicare Advantage plans. Optional; default both. |
Output Schema
| Name | Required | Description |
|---|---|---|
| data | Yes | The answer. Same shape as the matching InPlan API v1 endpoint. |
| notes | No | How to read the answer. |
| sources | Yes | Source types behind the answer (insurer_directory, plan_directory, provider_registry, plan_catalog), each with its as_of date. |
| data_as_of | Yes | Date (YYYY-MM-DD) of the newest data behind this answer. |
| request_id | Yes | Request id; quote it when you contact support. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, destructiveHint=false, and openWorldHint=false. The description adds useful behavioral context beyond that: it discloses that the tool 'Costs 1 call' and returns plan counts with as_of dates. It does not discuss pagination or response size, but the output schema exists and likely covers return shape.
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 short, front-loaded with what the tool returns, followed by filtering and usage guidance, and ends with a useful cost note. Every sentence earns its place with no wasted text.
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?
Given the rich annotations, full schema coverage, and presence of an output schema, the description provides everything an agent needs: purpose, filters, usage context, and cost. No critical behavioral or parameter detail is missing.
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 fully documents the year, state, and market parameters, including defaults and enum meanings. The description merely restates that filtering is possible without adding syntax, format, or default details beyond the schema. 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 clearly states the resource: markets, states, and insurers with directory listings, plus plan counts and as_of dates by plan year. It also explains the intended use (seeing which states and insurers are queryable), which implicitly distinguishes it from plan/provider lookup siblings. However, it does not explicitly name or contrast with any sibling tool, so it falls short of a 5.
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 gives a clear usage statement: 'Use it to see which states and insurers you can query,' and notes the available filters. There are no explicit when-not-to-use conditions or named alternatives, but the context is sufficient for an agent to know when this metadata/coverage tool is appropriate.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_planPlan detailsARead-onlyIdempotentInspect
Details of one Marketplace (ACA) or Medicare Advantage plan by plan ID: name, insurer or organization, state or service area, plan type, metal level, the plan years we hold, and whether we hold its directory listings, with their as_of date. Costs 1 call.
| Name | Required | Description | Default |
|---|---|---|---|
| year | No | Plan year, e.g. 2026. Optional; by default all plan years we hold are considered. | |
| plan_id | Yes | Plan ID. Marketplace (ACA) plans: 14 characters like "29276OH0970001" (a 16-character "-01" variant form is accepted). Medicare Advantage plans: "H1234-001-000" (the segment "-000" is optional). |
Output Schema
| Name | Required | Description |
|---|---|---|
| data | Yes | The answer. Same shape as the matching InPlan API v1 endpoint. |
| notes | No | How to read the answer. |
| sources | Yes | Source types behind the answer (insurer_directory, plan_directory, provider_registry, plan_catalog), each with its as_of date. |
| data_as_of | Yes | Date (YYYY-MM-DD) of the newest data behind this answer. |
| request_id | Yes | Request id; quote it when you contact support. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover read-only, idempotent, closed-world and non-destructive, so the description earns credit for what it adds: 'Costs 1 call' discloses a quota/rate-limit consideration, and it states that directory listings carry an as_of date. It stops short of saying what happens when the plan ID is unknown (empty result vs. error), which is the one behavioral gap an agent would care about.
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?
Two sentences, front-loaded with the identifier and scope, with no filler. The long mid-sentence enumeration of returned fields is the weakest part, since an output schema already exists and makes that listing largely redundant.
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 only two parameters at full schema coverage, rich annotations, and an output schema carrying the return shape, the description supplies everything still missing: which plan families are supported and the per-call cost. Nothing an agent needs in order to invoke this correctly is absent.
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 schema itself carries the detailed ID formats (14-char ACA, H1234-001-000 MA) and the default-all-years behavior of 'year'. The description only restates that lookup is by plan ID and repeats the two plan families, adding no semantics beyond the schema. Baseline 3 applies.
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 and resource ('Details of one ... plan by plan ID') and scopes it to a single record, which is clearly distinct from batch/lookup siblings like check_network_batch or lookup_provider. It never explicitly contrasts itself with siblings such as coverage or plans_for_provider, so an agent must infer the boundary from the singular 'one plan by plan ID' framing.
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?
Usage is only implied: 'by plan ID' signals this is the retrieval step once an ID is known, and the two plan families named tell the agent both are accepted. There is no explicit when-to-use, no when-not, and no pointer to which sibling to call first to obtain a plan ID.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
lookup_providerLook up a provider by NPIARead-onlyIdempotentInspect
Identity of a US healthcare provider by NPI: name, credential, specialties, practice locations and groups, plus a summary of the Marketplace (ACA) and Medicare Advantage plans whose network directories list them (plan counts, states, plan years, as_of dates). Use it to confirm who an NPI is before checking networks. For the plan list itself use plans_for_provider. Costs 1 call.
| Name | Required | Description | Default |
|---|---|---|---|
| npi | Yes | 10-digit National Provider Identifier, as a string, e.g. "1184617268". |
Output Schema
| Name | Required | Description |
|---|---|---|
| data | Yes | The answer. Same shape as the matching InPlan API v1 endpoint. |
| notes | No | How to read the answer. |
| sources | Yes | Source types behind the answer (insurer_directory, plan_directory, provider_registry, plan_catalog), each with its as_of date. |
| data_as_of | Yes | Date (YYYY-MM-DD) of the newest data behind this answer. |
| request_id | Yes | Request id; quote it when you contact support. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly/idempotent/non-destructive/closed-world, so the safety profile is covered. The description still adds real context beyond them: it discloses the call cost ("Costs 1 call") and that the plan data is only a summary (counts, states, years, as_of dates) rather than the full list, which prevents an agent from misusing the result.
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: what it returns first, then when to use it, then the alternative. Zero filler and nothing buried.
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?
A one-parameter read tool with full annotations and an output schema; the description covers purpose, output shape at a high level, cost, and the sibling boundary. Nothing an agent needs to call it correctly is missing.
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% — the single `npi` parameter is fully documented in-schema as a 10-digit string with an example. The description adds no format or edge-case detail beyond that, so the baseline 3 applies.
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+resource (identity lookup of a US healthcare provider by NPI) and enumerates what comes back: name, credential, specialties, practice locations, groups, plus ACA/MA plan summary counts, states, plan years and as_of dates. It also explicitly distinguishes the resource from the sibling that returns the raw plan list.
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 an explicit use case ("confirm who an NPI is before checking networks") and an explicit hand-off ("For the plan list itself use plans_for_provider"), naming the alternative and the condition that selects it. No inference required.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
plans_for_providerPlans that list a providerARead-onlyIdempotentInspect
Every Marketplace (ACA) and Medicare Advantage plan whose network directory lists the provider, one row per plan and plan year, each with plan name, insurer, state, network tier and source {type, as_of}. Medicare Advantage rows carry service_area_states and provider_state_in_service_area. Filter by market, state or year; page with limit and offset (next_offset is null on the last page). A plan missing from this list is not a statement that the provider is out of network. Costs 1 call per page.
| Name | Required | Description | Default |
|---|---|---|---|
| npi | Yes | 10-digit National Provider Identifier, as a string, e.g. "1184617268". | |
| year | No | Plan year, e.g. 2026. Optional; by default all plan years we hold are considered. | |
| limit | No | Plans per page, 1 to 500. Default 50. | |
| state | No | 2-letter US state code, e.g. "OH". Optional. | |
| market | No | "aca" = Marketplace plans, "ma" = Medicare Advantage plans. Optional; default both. | |
| offset | No | Rows to skip; pass next_offset from the previous page. Default 0. |
Output Schema
| Name | Required | Description |
|---|---|---|
| data | Yes | The answer. Same shape as the matching InPlan API v1 endpoint. |
| notes | No | How to read the answer. |
| sources | Yes | Source types behind the answer (insurer_directory, plan_directory, provider_registry, plan_catalog), each with its as_of date. |
| data_as_of | Yes | Date (YYYY-MM-DD) of the newest data behind this answer. |
| request_id | Yes | Request id; quote it when you contact support. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already establish read-only, idempotent, non-destructive, closed-world behavior, and the description adds material details beyond them: pagination termination via null next_offset, a cost model ('1 call per page'), per-row source provenance with as_of timestamps, and the MA-specific service-area fields. The 'missing from this list' disclaimer prevents a dangerous misreading of absence.
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-loads what the tool returns before any operational details, and every sentence carries payload: row shape, filters, paging semantics, the absence caveat, and page cost. No filler or restatement of the name.
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?
An output schema exists, so return values need not be explained, yet the description still sketches them helpfully. It covers filtering, paging termination and cost, leaving only minor gaps (e.g., ordering of rows, behavior when no filters match) unstated.
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%, so npi, year, limit, state, market and offset are all already documented in the schema. The description restates the filter axes and clarifies that offset should carry next_offset from the prior page, but adds little syntax or format detail beyond the schema. 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?
States a specific resource (ACA Marketplace and Medicare Advantage plans whose network directory lists a provider) with the exact row granularity (one row per plan and plan year) and the fields returned. This is clearly distinguishable from point-check siblings like check_network or get_plan.
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 concrete usage context: 'Filter by market, state or year; page with limit and offset', plus an important interpretive caveat that a missing plan does not mean the provider is out of network. It stops short of naming alternatives (e.g., when to prefer check_network or search_plan_providers), so it is clear context without explicit routing.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_plan_providersProviders listed in a planARead-onlyIdempotentInspect
Providers that a Marketplace (ACA) plan's network directory lists, with name, credential, primary specialty, network tiers and up to 5 locations. Filter by state, specialty (substring, e.g. "cardiology"), zip, or zip plus radius in miles. Pages are cursor-based: pass next_cursor back unchanged until it is null; with filters a page can hold fewer than limit providers. Medicare Advantage plans: use check_network or plans_for_provider instead. Needs the Growth plan or higher. Costs 1 call per page.
| Name | Required | Description | Default |
|---|---|---|---|
| zip | No | 5-digit ZIP code, as a string. Optional. | |
| year | No | Plan year, e.g. 2026. Optional; by default all plan years we hold are considered. | |
| limit | No | Providers per page, 1 to 100. Default 25. | |
| state | No | 2-letter US state code, e.g. "OH". Optional. | |
| cursor | No | next_cursor from the previous page. | |
| radius | No | Miles around zip, 1 to 100. Needs zip. | |
| plan_id | Yes | Plan ID. Marketplace (ACA) plans: 14 characters like "29276OH0970001" (a 16-character "-01" variant form is accepted). Medicare Advantage plans: "H1234-001-000" (the segment "-000" is optional). | |
| specialty | No | Specialty name or part of it, e.g. "family medicine". Optional. |
Output Schema
| Name | Required | Description |
|---|---|---|
| data | Yes | The answer. Same shape as the matching InPlan API v1 endpoint. |
| notes | No | How to read the answer. |
| sources | Yes | Source types behind the answer (insurer_directory, plan_directory, provider_registry, plan_catalog), each with its as_of date. |
| data_as_of | Yes | Date (YYYY-MM-DD) of the newest data behind this answer. |
| request_id | Yes | Request id; quote it when you contact support. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly/idempotent/non-destructive, yet the description still adds material context: cursor pagination semantics (pass next_cursor back unchanged until null), that filtered pages may hold fewer than limit, a per-page cost of 1 call, and a plan-tier requirement. These are exactly the operational facts annotations cannot convey.
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?
A single tight paragraph, front-loaded with what is returned, then filters, then pagination, then the sibling routing and cost. Every sentence carries distinct information with no repetition of the title.
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?
Despite 8 parameters and an output schema, the description covers the decision-relevant gaps: return fields, filter behavior, pagination, cost, and access tier. Nothing an agent needs to invoke it correctly is missing.
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%, so baseline is 3; the description earns extra by explaining filter semantics the schema leaves implicit — specialty is a substring match with an example, radius requires zip, and cursor must be echoed unchanged. It doesn't cover year or limit defaults, which the schema already handles.
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?
Opens with a specific verb+resource+scope: providers listed in a Marketplace (ACA) plan's network directory, and names the returned fields. It explicitly contrasts itself with check_network and plans_for_provider for Medicare Advantage plans, so an agent can distinguish it from all siblings.
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 explicit when-to-use conditions (ACA plans), when-not-to-use plus named alternatives (Medicare Advantage → check_network or plans_for_provider), and prerequisites (Growth plan or higher). It also states which filters exist and that a filtered page can be short.
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.
7 tool updates
- First observed
check_network - First observed
check_network_batch - First observed
coverage - First observed
get_plan - First observed
lookup_provider - First observed
plans_for_provider - First observed
search_plan_providers
Related MCP Connectors
Provider rosters & NPI checks
US health care providers by NPI, name or phone, with payments, Medicare, OIG and facility data.
Look up US healthcare providers and organisations by NPI.
Verify any US doctor, dentist, therapist or clinic by NPI number. Free npi_lookup tool.
Related MCP Servers
- FlicenseNot gradedqualityDmaintenanceSource-provenanced US federal healthcare provider data over MCP. Resolve any NPI or CCN across NPPES, OIG LEIE, SAM.gov, state Medicaid exclusions, CMS PECOS, Care Compare, and Open Payments — every field carries a 14-field provenance contract, and an "excluded or compromised anywhere" check runs on every lookup.-
- AlicenseNot gradedqualityAmaintenanceLook up US healthcare providers in the NPPES NPI registry and resolve NUCC specialty codes via MCP.480 npm1Apache 2.0
- AlicenseNot gradedqualityBmaintenanceEnables AI assistants to search an Oscar Health in-network provider directory for doctors and facilities, with specialty resolution, local filtering by gender and review quality, plan details, and live provider records.MIT
- AlicenseNot gradedqualityBmaintenanceEnables 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.6 npmMIT
Glama MCP Gateway
Add one secure layer between your agents and this server.