bradesco-rede-mcp
by fbsampaio
README.md
# bradesco-rede-mcp
MCP server para consulta em tempo real a rede referenciada do Bradesco Saude. Expoe uma ferramenta `search_providers` que agentes LLM podem chamar para buscar medicos, hospitais, clinicas e laboratorios.
## Instalacao
```bash
npm install -g bradesco-rede-mcp
```
Requer Node 20+. Sem necessidade de browser ou Playwright — o servidor faz chamadas HTTP diretas a API do Bradesco.
## Configuracao no cliente MCP
### Claude Desktop
Adicione ao `claude_desktop_config.json`:
```json
{
"mcpServers": {
"bradesco-rede": {
"command": "node",
"args": ["/caminho/absoluto/bradesco-rede-mcp/dist/index.js"],
"env": {
"LOG_LEVEL": "info"
}
}
}
}
```
### opencode
Adicione ao `opencode.json` na secao `mcp`, mesmo padrao: `command` + `args` + `env`.
> **Caminho absoluto e obrigatorio.**
## Variaveis de ambiente
Todas tem defaults. Configurar e otimizacao, nao pre-requisito.
| Variavel | Default | Descricao |
|---|---|---|
| `CACHE_TTL_MS` | 600000 (10 min) | TTL de cache |
| `CACHE_MAX_ENTRIES` | 100 | Tamanho maximo do LRU |
| `TIMEOUT_SEARCH_TOTAL_MS` | 60000 (60s) | Timeout por requisicao a API (evita chamadas penduradas) |
| `LOG_LEVEL` | info | debug, info, warn, error |
| `MAX_RESULTS` | 50 | Limite maximo por chamada |
| `BRADESCO_URL` | URL oficial | Override da URL alvo |
## Testes
```bash
npm test # unit + integracao
RUN_LIVE_TESTS=true npm run test:live # live (real API, lento)
```
## Limitacoes
- Uma busca por vez (sem concorrencia). Para v1, inflight=1 + cache em memoria e a unica protecao contra excesso de requisicoes (nao ha delay minimo entre buscas).
- Cache em memoria apenas (volatil ao reiniciar).
- Coordenadas aproximadas (capitais estaduais) — distancias podem ser imprecisas.
- Token de autenticacao renovado automaticamente.
- O filtro `plano` e aceito mas nao aplicado em v1 (wiring exige lookup de codigoRede, fora do escopo).
- O filtro `tipo` e aplicado client-side apos a busca (a API nao suporta filtro direto por tipo).
- Busca por localizacao apenas (so `estado`/`cidade`) nao e suportada — informe `nome` (>= 3 chars) ou `especialidade`.
## Troubleshooting
| Erro | Causa | Solucao |
|---|---|---|
| `SITE_UNREACHABLE` | API fora do ar ou sem rede | Verificar conexao e tentar novamente |
| `SEARCH_TIMEOUT` | Requisicao a API excedeu `TIMEOUT_SEARCH_TOTAL_MS` | Tentar novamente; se persistir, aumentar o timeout |
| `VALIDATION_ERROR` | Filtros insuficientes, UF invalida ou busca por localizacao apenas | Informar `nome` (>= 3 chars) ou `especialidade` junto com a localizacao |
| `SCRAPER_CRASH` | Erro inesperado | Verificar logs com LOG_LEVEL=debug |
## Aviso legal
> Esta ferramenta automatiza consultas a API publica de rede referenciada do Bradesco Saude para uso pessoal. Nao e afiliada ao Bradesco. O usuario e responsavel por cumprir os Termos de Uso do site alvo. Os dados retornados sao cacheados em memoria por curto periodo e nao sao persistidos ou redistribuidos.
This server cannot be deployed
Maintenance
ActivityMaintained
ResponsivenessSyncing