brasil-planos-saude-mcp
MCP server that helps answer "is this health plan any good?" in Brazil. Claude (or any MCP client) can look up a health-plan operator (operadora de plano de saúde) and see what the regulator, ANS, publishes about it: complaints, quality score, access-to-care monitoring, fines and readjustments. It can compare operators side by side and rank them.
Read-only, no key, no account. Everything comes from the ANS open-data portal. Not affiliated with ANS or any operator.
Operators, not plans or prices. ANS publishes these indicators per operator. A single operator sells many plans with different networks; check the network and the price with the operator or a broker.
Not legal advice. For a denied or delayed procedure, use where_to_complain (Disque ANS 0800 701 9656). In an emergency, get care first.
Tools
operator_profile
Everything about one operator: registration and status (active, or cancelled with date and reason), beneficiaries and size class, the complaints index with its position among operators of the same size, five years of IDSS, the access-to-care band, fines, and the small-group readjustment.
Parameters: operator (name or part of it, CNPJ, or ANS registry number), coverage (medica or odonto). A shared brand such as "Unimed" (hundreds of separate cooperatives) returns the largest matches and asks for a more specific name.
compare_operators
Two to eight operators side by side: 12-month complaints index against the median of their size class, latest IDSS, latest access-to-care band, fines in the last five years, latest small-group readjustment.
Parameters: operators (list), coverage.
rank_operators
Active operators ranked by complaints (by="reclamacoes", lower is better) or quality (by="qualidade", latest IDSS, higher is better).
Parameters: by, coverage, porte (pequeno, medio, grande), uf, modality, min_beneficiaries (default 5000), worst_first, limit.
find_operators
Search by name, CNPJ or registry number, or list by head-office state, city or modality (cooperativa médica, medicina de grupo, seguradora, autogestão, odontologia de grupo, filantropia). Largest first.
where_to_complain
The official ANS channels, checked on the ANS consumer-service page, and how a complaint (NIP) works.
What the numbers mean
Every result says which month, quarter or year each figure belongs to, and links the file it came from.
Data and cache
The first call downloads seven ANS files (about 65 MB) and keeps a compact copy (about 1 MB) in your user cache folder. After 24 hours the server asks ANS whether a file changed and downloads it again only if it did. If ANS is down, it uses the cached copy and says so. To fill the cache in advance:
Set BRASIL_PLANOS_SAUDE_CACHE_DIR to use another folder.
The operator registry file also has the operator's contact e-mail and the name of its legal representative. This server leaves both out.
Install
Quickest (needs uv): no clone needed, it runs straight from PyPI.
For Claude Desktop, use "command": "uvx", "args": ["brasil-planos-saude-mcp"].
From source:
Requires Python 3.10+.
On Windows, if you keep code in a cloud-synced folder (Google Drive, OneDrive), create the virtual environment outside it. Sync clients drop desktop.ini files into folders, which can crash packages on startup.
Add to Claude Code
Add to Claude Desktop
Merge claude_desktop_config.snippet.json into your Claude Desktop claude_desktop_config.json, then restart Claude Desktop:
Example questions
- "Is Hapvida any good? How does it do on complaints?"
- "Compare Amil, Bradesco Saúde, SulAmérica and Porto Seguro."
- "Which large health plans get the fewest complaints?"
- "Best-rated dental plans."
- "Has Unimed Campinas been fined by ANS?"
- "My plan denied a procedure. Where do I complain?"
License
MIT