InPlan
io.inplan/inplaninplan.iostreamable-httpv1.0.0Scanned
Is this US provider in this health plan? Network checks by NPI and plan ID, with dated sources.
7 tools: 4 change things and 3 only read.
- Reads private data · 3
- Reads text others write · 0
- Can send data out · 0
- 2 findings
Anlyon alternative
4 of these tools change something. Run those as governed actions.
Declare what an action changes, and Anlyon puts it under a shared limit, binds every approval to the exact request, and grades the outcome. It works on any HTTPS API you can describe as an action.
Anlyon does not run, proxy or govern this MCP server. A tool your own code calls directly is not routed through Anlyon and is not governed by it.
Import an OpenAPI spec →Tools
Grouped by what each tool does, most consequential first. Open one for its reasons and full description; descriptions are the publisher's own words.
7 tools
Changes things 4Claude Code: ask
check_networkAnswers whether one plan's network directory lists one provider.No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Description, as the server wrote it 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.
Annotations the server declares
- title: Is this provider in this plan?
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
check_network_batchThe check_network answer for up to 100 (npi, plan_id) pairs in one request, with the same listed / not_found / no_provider_network semantics.No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Description, as the server wrote it 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.
Annotations the server declares
- title: Check up to 100 provider and plan pairs
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
coverageThe markets, states and insurers InPlan holds directory listings for, with plan counts and as_of dates, by plan year.No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Description, as the server wrote it 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.
Annotations the server declares
- title: What InPlan covers
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
plans_for_providerEvery 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 an…No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Description, as the server wrote it 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.
Annotations the server declares
- title: Plans that list a provider
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
Only reads 3Show 3 read-only tools
get_planDetails 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 wh…Reads private dataNo findings
Why it is in this group
- The name "get_plan" says "get": a word for reading.
What it can reach
- private-dataThe description's first sentence says "directory": it reads files.
Description, as the server wrote it 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.
Annotations the server declares
- title: Plan details
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
lookup_providerIdentity 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 whos…Reads private data1 finding
Why it is in this group
- The name "lookup_provider" says "lookup": a word for reading.
What it can reach
- private-dataThe description's first sentence says "credential": it reads secrets.
Findings
- Info
The description mentions "credential".
What this check looks forMatched text
description: "...a US healthcare provider by NPI: name, credential, specialties, practice locations and gr..."
Description, as the server wrote it 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.
Annotations the server declares
- title: Look up a provider by NPI
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
search_plan_providersProviders that a Marketplace (ACA) plan's network directory lists, with name, credential, primary specialty, network tiers and up to 5 locations.Reads private data1 finding
Why it is in this group
- The name "search_plan_providers" says "search": a word for reading.
What it can reach
- private-dataThe description's first sentence says "directory": it reads files.
Findings
- Info
The description mentions "credential".
What this check looks forMatched text
description: "...n's network directory lists, with name, credential, primary specialty, network tiers and u..."
Description, as the server wrote it 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.
Annotations the server declares
- title: Providers listed in a plan
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
This is not a safety rating, and no finding is not a safety guarantee. The groups and findings come from fixed checks of the tool definitions the server returned on the date shown, not from its code or what it does when called. How the checks work.
Exfil surface
Which tools read private data, which read text someone else can write, and which can send data out. One of each is a path a prompt injection can use.
No private-data, untrusted-input, outbound path in this server alone: no tool is tagged untrusted-input or outbound.
- Reads private data3
- Reads files, mail, messages, databases, secrets, calendars or repositories.
- Reads text others write0
- Brings in text someone else can write: web pages, inbound email, messages, issues and comments.
- Can send data out0
- Can carry data to people or systems: it sends, posts or publishes, or takes a recipient, channel or URL.
Other servers in the same agent add their own tools to these paths. Audit your whole setup to see them together.
Findings
Matches of fixed checks, with the text they matched.
- Infolookup_provider
The description mentions "credential".
What this check looks forMatched text
description: "...a US healthcare provider by NPI: name, credential, specialties, practice locations and gr..."
The description mentions "credential".
What this check looks forMatched text
description: "...n's network directory lists, with name, credential, primary specialty, network tiers and u..."
History
Changes to its tool definitions and to its remote endpoint, newest first.
No change seen yet. Its tools are rescanned every day, and a remote endpoint is looked at once a week.
Install
Pinned to version 1.0.0. Values in angle brackets are yours to fill in.
claude mcp add --transport http inplan https://api.inplan.io/mcp --header 'Authorization: <your-authorization>'claude mcp add --transport http inplan https://api.inplan.io/mcp --header 'Authorization: <your-authorization>'Run in a terminal.
Claude Code permissions
Allow the reads, ask before a change or a way out, deny the deletes. Paste into .claude/settings.json.
{
"permissions": {
"allow": [
"mcp__inplan__lookup_provider",
"mcp__inplan__get_plan",
"mcp__inplan__search_plan_providers"
],
"ask": [
"mcp__inplan__plans_for_provider",
"mcp__inplan__check_network",
"mcp__inplan__check_network_batch",
"mcp__inplan__coverage"
],
"deny": []
}
}Tools that only read are allowed, tools that change things ask first, tools that delete or cancel are denied. A read that can send data out (it takes a URL, say) asks first too. It assumes the server is installed as inplan. Review it before you use it.
Capability tags behind 3 rules
- mcp__inplan__lookup_provider private-data
- mcp__inplan__get_plan private-data
- mcp__inplan__search_plan_providers private-data
Pin
Keep the decision: fail CI when the tools change, follow every change, or show a badge.
Pin in CI
Fail a build when the tools you reviewed are not the tools the server serves today.
curl -s "https://anlyon.dev/api/v1/servers/io.inplan/inplan/verify?hash=e12a3a3b77898074ec4d85380b2d5d8061979af330dde47e96f056bc4b73cd73" | jq -e '.changed == false'Pinned hash e12a3a3b7789, from Oct 30, 2026, 12:18 UTC.
Watch
Get told when its tools change: a new tool, a new description, a new class.
https://anlyon.dev/servers/io.inplan/inplan/changes.xmlAn Atom feed. Works in any feed reader or Slack's RSS app.
Badge
[](https://anlyon.dev/servers/io.inplan/inplan)Source: MCP Registry. Synced Oct 30, 2026, 12:17 UTC.