Skip to main content
Glama

buscar_samd_recentes

Find recent Anvisa Class III/IV medical device registrations with heuristic AI-use classification, filterable by software and AI status.

Instructions

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 origem do veredito. Não apresente o veredito como fato regulatório.

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". coletado_em diz quando a base foi atualizada pela última vez.

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 truncado=true na resposta, sobraram registros no período que nem foram olhados: a contagem da lista não serve para dizer quantos existem. apenas_software: quando True, analisa só registros cujo texto sugere software. SaMD é raro no registro (13 de 1.832 registros Classe III/IV do último ano mencionam software), então sem esse filtro a busca gasta as chamadas de LLM em cânulas e parafusos. Desligue para varrer tudo, ao custo de ser lento.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
diasNo
limiteNo
apenas_com_iaNo
apenas_softwareNo

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
diasYes
avisoNo
fonteYes'mock' = dado de exemplo, ainda não é registro real da Anvisa
totalYesQuantos dispositivos Classe III/IV existem na janela na base (só os que passam no filtro de software, quando apenas_software=True), antes do limite de análise e do filtro de IA. É o universo, não o tamanho desta lista: não use a contagem dos resultados para dizer quantos foram registrados no período.
truncadoNoTrue quando total > analisados: existem registros no período que esta chamada nem chegou a olhar. Aumente 'limite' ou reduza 'dias'.
analisadosNoQuantos registros a tool efetivamente avaliou nesta chamada, no máximo 'limite'. Os mais recentes primeiro.
resultadosYes
retornadosNoQuantos sobraram em 'resultados' depois do filtro de IA
coletado_emNoQuando a base local de dispositivos foi atualizada pela última vez a partir do arquivo da Anvisa (horário local do servidor). None quando a resposta é dado de exemplo.
apenas_com_iaYes
indeterminadosNoQuantos registros ficaram de fora por terem sido classificados como sem IA com confiança baixa, ou seja, o texto não permitiu decidir, o que não é o mesmo que não usar IA

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed15 schema fields changed
    • addedInput schema / properties / dias / maximum
      Added value: +3650
    • addedInput schema / properties / dias / minimum
      Added value: +1
    • addedInput schema / properties / limite
      Added value: +{
      +  "default": 50,
      +  "maximum": 200,
      +  "minimum": 1,
      +  "title": "Limite",
      +  "type": "integer"
      +}
    • changedOutput schema / $defs / ClassificacaoIA / description
      Previous value: -"Veredito heurístico sobre uso de IA — leia junto com a justificativa."New value: +"Veredito heurístico sobre uso de IA, leia junto com a justificativa."
    • addedOutput schema / $defs / ClassificacaoIA / properties / evidencia_confere
      Added value: +{
      +  "anyOf": [
      +    {
      +      "type": "boolean"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ],
      +  "default": null,
      +  "description": "False quando o modelo citou como evidência algo que não está no texto do registro. O veredito pode continuar certo, mas a justificativa é o mecanismo de controle desta tool, e justificativa inventada o desarma: não repasse a descrição do produto sem conferir. None nas classificações feitas antes desta checagem existir.",
      +  "title": "Evidencia Confere"
      +}
    • changedOutput schema / $defs / ClassificacaoIA / properties / origem / enum
      Previous value: -[
      -  "llm",
      -  "cache",
      -  "indisponivel"
      -]New value: +[
      +  "llm",
      +  "cache",
      +  "indisponivel",
      +  "nao_classificado"
      +]
    • addedOutput schema / $defs / DispositivoSaMD / properties / situacao / description
      Added value: +"Campo VALIDADE_REGISTRO_CADASTRO do dataset, como a Anvisa entrega. Ele mistura duas coisas: para a maioria vem 'VIGENTE', para o resto vem uma data de validade. Quando for data, ela está também em 'validade_registro', já estruturada."
    • addedOutput schema / $defs / DispositivoSaMD / properties / validade_registro
      Added value: +{
      +  "anyOf": [
      +    {
      +      "format": "date",
      +      "type": "string"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ],
      +  "default": null,
      +  "description": "Data de validade do registro, quando 'situacao' traz uma data em vez de 'VIGENTE'. None não significa registro sem prazo: significa que a fonte não deu data para este registro.",
      +  "title": "Validade Registro"
      +}
    • changedOutput schema / $defs / DispositivoSaMD / properties / visto_na_ultima_coleta / description
      Previous value: -"False quando o registro não apareceu no arquivo da última coleta — a situação mostrada pode estar desatualizada"New value: +"False quando o registro não apareceu no arquivo da última coleta, a situação mostrada pode estar desatualizada"
    • addedOutput schema / properties / analisados
      Added value: +{
      +  "default": 0,
      +  "description": "Quantos registros a tool efetivamente avaliou nesta chamada, no máximo 'limite'. Os mais recentes primeiro.",
      +  "title": "Analisados",
      +  "type": "integer"
      +}
    • addedOutput schema / properties / coletado_em
      Added value: +{
      +  "anyOf": [
      +    {
      +      "format": "date-time",
      +      "type": "string"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ],
      +  "default": null,
      +  "description": "Quando a base local de dispositivos foi atualizada pela última vez a partir do arquivo da Anvisa (horário local do servidor). None quando a resposta é dado de exemplo.",
      +  "title": "Coletado Em"
      +}
    • changedOutput schema / properties / indeterminados / description
      Previous value: -"Quantos registros ficaram de fora por terem sido classificados como sem IA com confiança baixa — ou seja, o texto não permitiu decidir, o que não é o mesmo que não usar IA"New value: +"Quantos registros ficaram de fora por terem sido classificados como sem IA com confiança baixa, ou seja, o texto não permitiu decidir, o que não é o mesmo que não usar IA"
    • addedOutput schema / properties / retornados
      Added value: +{
      +  "default": 0,
      +  "description": "Quantos sobraram em 'resultados' depois do filtro de IA",
      +  "title": "Retornados",
      +  "type": "integer"
      +}
    • addedOutput schema / properties / total / description
      Added value: +"Quantos dispositivos Classe III/IV existem na janela na base (só os que passam no filtro de software, quando apenas_software=True), antes do limite de análise e do filtro de IA. É o universo, não o tamanho desta lista: não use a contagem dos resultados para dizer quantos foram registrados no período."
    • addedOutput schema / properties / truncado
      Added value: +{
      +  "default": false,
      +  "description": "True quando total > analisados: existem registros no período que esta chamada nem chegou a olhar. Aumente 'limite' ou reduza 'dias'.",
      +  "title": "Truncado",
      +  "type": "boolean"
      +}
  2. First observedv0.1.0

TDQS

A4.8/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full burden of behavioral disclosure. It transparently explains that the AI classification is heuristic, not a regulatory fact, that the server does not persist verdicts, that connector mode serves cache only, that origem='nao_classificado' means 'unknown' rather than 'no AI', and that truncado=true invalidates count-based conclusions.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is moderately long but every sentence adds operational value. It is well structured with a purpose paragraph, a behavioral caveat paragraph, and a bulleted Args section. No filler or redundant restatement of schema defaults is present.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's complexity and the total absence of annotations and schema descriptions, this description is outstandingly complete. It covers purpose, data provenance, cache behavior, error-prone semantics, parameter tradeoffs, and what the response signals mean. The output schema exists, so it need not enumerate return fields, and it still references the key output fields (truncado, origem, coletado_em).

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so parameters were entirely undocumented by the schema. The description compensates fully: it explains dias as a rolling window, limite with the truncado caveat, apenas_com_ia as filtering to AI-related verdicts, and apenas_software with real-world frequency data and the LLM-cost tradeoff.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description opens with a specific verb and resource: 'Lista dispositivos médicos Classe III/IV registrados recentemente na Anvisa'. It clearly establishes the tool's niche—recently registered Class III/IV devices with heuristic AI/ML verdicts—which also distinguishes it from the sibling consultar_status_medicamento.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives practical usage guidance for parameters, such as when to keep apenas_software enabled to avoid wasting LLM calls and when to disable it for a full sweep. It does not explicitly name an alternative tool or state 'use this instead of X', but the purpose and domain are clear enough that no false choice remains.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.