Brasil Planos de Saúde (ANS)

io.github.ThiagoJacobLannes由 GitHub 账号 ThiagoJacobLannes 发布v0.1.0更新于 Nov 1, 2026

Compare Brazilian health-plan operators with ANS open data: complaints, IDSS, fines, readjustments.

概览

AI 生成的概览

基于 ANS 官方开放数据查询和比较巴西健康计划运营商:投诉、质量评分、罚款和费率调整。

可以做什么
  • 按名称、CNPJ、注册号、州、城市或经营类型查找运营商,按规模从大到小排列
  • 查看单个运营商的完整 ANS 档案:状态、参保人数、投诉指数、五年 IDSS、就诊保障等级、罚款和费率调整
  • 将 2 至 8 家运营商按同一指标并排比较
  • 按投诉或质量对在营运营商排名,可按规模、州、经营类型和最低参保人数筛选
  • 获取 ANS 官方投诉渠道及投诉流程说明
适用场景
适合在巴西选择或评估健康计划运营商时使用,例如判断某运营商口碑如何、与同行相比表现如何,或在手术被拒后了解去哪里投诉。
运行要求
以 Python 包形式通过 uvx 在本地运行(源码安装需 Python 3.10+)。无需账号、密钥或请求头。需要访问 ANS 开放数据门户;首次调用会下载约 65 MB 文件,并在用户缓存目录保存约 1 MB 的精简副本,24 小时后检查更新。
安装前请注意
只读且无需密钥,但首次调用需下载较大数据集,可能耗时约一分钟。数据针对运营商,不涉及具体计划、网络或价格,也不构成法律建议。结果仅与 ANS 发布进度同步,引用数字时应注明所属月份或年份。

安装

在 SourceWeft 中

  1. 打开 控制台中的 Brasil Planos de Saúde (ANS),将其添加到工作区。
  2. 为需要使用其工具的对话启用该服务。

Desktop only,通过 STDIO。 STDIO 服务会启动本地进程,因此需要 SourceWeft 桌面宿主。

其他 MCP 客户端

参照 仓库 中的启动说明。

README

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

IndicatorWhat it isBetterUpdated
IGR (Índice Geral de Reclamações)Complaints to ANS per 100,000 beneficiaries in a month (2023 method). ANS compares operators of the same size: small < 20k, medium 20k-100k, large > 100k beneficiaries. The server also gives a 12-month average, which is steadier.lowermonthly
IDSS (Índice de Desempenho da Saúde Suplementar)ANS's yearly 0-1 score, with four dimensions: quality of care (IDQS), access (IDGA), market sustainability (IDSM), processes and regulation (IDGR).higheryearly
Garantia de atendimentoQuarterly band for denied or delayed coverage: 0 no upheld complaints, 1 below the median, 3 more than 50% above the median. Band 3 again and again leads ANS to suspend sales of plans.lowerquarterly, when ANS publishes
PenalidadesFines ANS applied, by year and status, including fines under appeal, suspended or archived. Not what was paid.fewer, relative to sizewhen ANS publishes
Reajuste do agrupamentoThe readjustment the operator applied to its pool of collective contracts with fewer than 30 lives. Individual/family plans follow a cap set by ANS instead.yearly

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:

bash
brasil-planos-saude-mcp --refresh

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.

bash
claude mcp add brasil-planos-saude -- uvx brasil-planos-saude-mcp

For Claude Desktop, use "command": "uvx", "args": ["brasil-planos-saude-mcp"].

From source:

Requires Python 3.10+.

bash
git clone https://github.com/ThiagoJacobLannes/brasil-planos-saude-mcpcd brasil-planos-saude-mcppython -m pip install -e .

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

bash
claude mcp add brasil-planos-saude -- python -m brasil_planos_saude_mcp.server

Add to Claude Desktop

Merge claude_desktop_config.snippet.json into your Claude Desktop claude_desktop_config.json, then restart Claude Desktop:

json
{  "mcpServers": {    "brasil-planos-saude": {      "command": "python",      "args": ["-m", "brasil_planos_saude_mcp.server"]    }  }}

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

来源:README.md,提交 50176d1

工具

5

find_operators

Find Brazilian health-plan operators (operadoras de planos de saúde) registered with ANS. Use it to turn a brand the user mentions ("Unimed BH", "Amil", "Bradesco Saúde") into the ANS registry number, or to list operators by state, city or type. Largest first. Args: query: Part of the name, the CNPJ, or the ANS registry number. Accents and case don't matter. Several words must all match ("unimed campinas"). uf: State of the operator's head office, e.g. "SP", "MG". city: City of the head office, e.g. "Belo Horizonte". modality: e.g. "Cooperativa Médica", "Medicina de Grupo", "Seguradora", "Autogestão", "Odontologia de Grupo", "Filantropia", "Administradora de Benefícios" (substring match). include_cancelled: Also list operators whose registration was cancelled. limit: How many to return (default 10, max 50). Each operator: registro_ans, name, legal name, modality, head office, status, and beneficiaries and size class (porte) per coverage. Head office is not where the operator sells plans.

输入参数ufcitylimitquerymodalityinclude_cancelled

operator_profile

Everything ANS publishes about one health-plan operator, to judge whether it is a good choice. Use for "is Hapvida good?", "how does Unimed Campinas rank on complaints?", "has SulAmérica been fined?". Returns: - registration: legal name, CNPJ, modality, head office, phone, status (active or cancelled, with date and reason), beneficiaries and size class; - complaints (IGR): latest month, 12-month average, the median of operators of the same size, the operator's position among them, and the monthly series; - quality (IDSS, 0-1, higher is better) for the last 5 years with its four dimensions; - access-to-care monitoring band (0 best, 3 worst) for the last published quarters; - fines applied by ANS: totals, last 5 years, status and the most recent cases; - the readjustment applied to its small-group pool (contracts with < 30 lives). Args: operator: Name (or part of it), CNPJ, or ANS registry number. If the name matches several operators, the largest active one is used and the others are listed in outras_operadoras_com_nome_parecido: check it is the one the user meant (Unimed, for example, is hundreds of separate cooperatives). coverage: "medica" or "odonto". Default: every coverage the operator has. Always quote the month/year of each figure and explain that IGR is lower-is-better and IDSS higher-is-better (see como_ler in the result).

输入参数coverageoperator必填

compare_operators

Side-by-side comparison of 2 to 8 health-plan operators on the ANS indicators. Use for "Amil or Bradesco Saúde?", "compare the plans my company offers". For each operator: 12-month complaints index (IGR) with the median of its size class and its position, latest IDSS, latest access-to-care band, number of fines in the last 5 years, and the latest small-group readjustment. Args: operators: Names, CNPJs or ANS registry numbers, e.g. ["Amil", "Bradesco Saúde", "SulAmérica"]. coverage: "medica" (default) or "odonto".

输入参数coverageoperators必填

rank_operators

Rank active health-plan operators by complaints or by quality. Use for "which large health plans get the fewest complaints?", "best-rated dental plans", "worst operators in Minas Gerais". Args: by: "reclamacoes" (12-month IGR, lower is better) or "qualidade" (latest IDSS, higher is better). coverage: "medica" (default) or "odonto". porte: "pequeno" (< 20k beneficiaries), "medio" (20k-100k) or "grande" (> 100k). ANS itself only compares operators of the same size. uf: Head-office state, e.g. "MG". Not the same as where it sells plans. modality: e.g. "Cooperativa Médica", "Medicina de Grupo", "Seguradora". min_beneficiaries: Skip operators smaller than this (default 5000; tiny ones swing wildly). worst_first: True to list the worst first. limit: How many to return (default 10, max 50).

输入参数byuflimitportecoveragemodalityworst_firstmin_beneficiaries

where_to_complain

How to complain about a health plan in Brazil: the official ANS channels and the steps. Use when a user's plan denied or delayed a procedure, or they have a contract problem. Each channel was checked on the ANS consumer-service page (conferido_em).

无需输入参数。

版本历史

1
  1. v0.1.0最新Nov 1, 2026

评分

已满足适用检查项的 90%

该评分衡量此收录条目的完整程度,依据注册中心条目、端点与公开来源计算得出。它不是对服务器本身的评价,也不表示服务器安全或当前可用:可连通性是带日期的检查结果,评分也不包含安装量或用户评价。

  • 近 30 天内可连通25 分
  • 已声明认证方式10 分

    请在注册中心条目中声明凭据请求头,或保持端点能够响应探测,以便判定其认证方式。

  • 已列出工具必需15 分
  • 描述必需15 分
  • 图标10 分
  • 文档15 分
  • 许可证10 分