anvisa-mcp
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| QWEN_MODEL | No | Model name to use with the LLM. | local-model |
| DUCKDB_PATH | No | Path to the local DuckDB database file. | ./data/anvisa.duckdb |
| QWEN_ENDPOINT | No | Endpoint for the OpenAI-compatible LLM API (llama.cpp, Ollama, LM Studio). | http://127.0.0.1:8080/v1 |
| SYNC_HORA_LOCAL | No | Scheduled local time for the sync. | 03:20 |
| QWEN_TIMEOUT_SEGUNDOS | No | Timeout in seconds for LLM calls. | 120 |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": false
} |
| experimental | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| consultar_status_medicamentoA | Consulta o status do registro de um medicamento na Anvisa. Busca por nome comercial, princípio ativo ou número de registro e devolve os registros que casam, com situação ('Ativo' ou 'Inativo', como o arquivo aberto da Anvisa publica), número de registro, data de vencimento do registro, empresa detentora e categoria. Um princípio ativo comum tem centenas de registros, um por detentor e
apresentação: "dipirona" casa com 557. A resposta traz
Termo sem correspondência devolve lista vazia. Só quando a base local não existe, está vazia ou não pôde ser aberta a resposta vem com dados de exemplo e fonte='mock': nesse caso, não trate como informação regulatória. Args: termo: nome comercial ou princípio ativo (trecho, sem precisar de acento), ex.: "dipirona", ou número de registro, com ou sem pontos, ex.: "1.0582.0010". O número de 13 dígitos da apresentação também serve. limite: quantos registros trazer, de 1 a 200. Aumente para ver além dos primeiros. |
| buscar_samd_recentesA | Lista dispositivos médicos Classe III/IV registrados recentemente na Anvisa. Cada registro traz um veredito sobre uso de IA ou aprendizado de máquina. A
Anvisa não publica esse campo: a classificação é heurística, feita por um LLM
local lendo o texto do registro, e cada item traz confiança, justificativa e
O servidor não grava vereditos. No modo connector ele nem chama o LLM: serve
só o que a coleta diária já classificou (no deploy oficial, os registros dos
últimos 10 anos que passam no filtro de software). O que não está no cache vem
com origem='nao_classificado', que quer dizer "não se sabe", não "sem IA".
Args:
dias: tamanho da janela, em dias, a contar de hoje (1 a 3650).
apenas_com_ia: quando True, devolve só os classificados como usando IA.
limite: quantos registros analisar nesta chamada (1 a 200), dos mais
recentes para trás. Com |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
TDQS
Scored across 2 tools
The two tools are clearly separated by target entity: one queries medicine registrations, the other lists recent Class III/IV medical devices with AI classification. There is no functional overlap or plausible confusion between them.
Both tool names follow a consistent Portuguese snake_case verb-first pattern: 'consultar_' and 'buscar_'. The structure is predictable and matches the action each tool performs.
With only two tools, the server feels thin for a domain as broad as Anvisa regulatory data. The tools are meaningful and well-scoped, but the count sits at the low end of the borderline range.
The server covers only two narrow queries: medicine status lookup and recent device listings. It lacks many obvious operations for a regulatory database, such as querying devices by name/registration, retrieving full registration details, or tracking changes over time.