Chisle
The coding-agent plugin that bills 52% of a bare model across 20 live tasks. Terse persona + tool-output compressor + context diet.
翻訳待ち
Servidor MCP open source para consultar e monitorar resoluções do CFM sobre inteligência artificial, telemedicina e prontuário eletrônico, com instalação local ou pelo conector hospedado. Um projeto I
翻訳待ち
開発ツールPython · MakefileGitHub @fabianofilhoオンライン所有者未確認
Have you tried it? One tap is enough. No sign-in needed.
Servidor MCP que consulta e monitora resoluções do CFM sobre IA, telemedicina e prontuário eletrônico
翻訳待ち
Loading the full README.
Read the full README ↗Servidor MCP que consulta e monitora resoluções do CFM (Conselho Federal de Medicina) sobre inteligência artificial, telemedicina e prontuário eletrônico. Mantém uma cópia local pesquisável e sempre devolve o link do documento oficial.
⚠️ Não é fonte oficial
- Não substitui a consulta ao portal do CFM. Este projeto lê o que o portal publica e guarda uma cópia local, que pode estar defasada.
- Um trecho extraído não é "a posição do CFM". Toda resposta traz a ementa e a URL do PDF oficial justamente para você conferir antes de citar.
- A extração de PDF pode falhar ou truncar. Quando isso acontece o registro é marcado com
metadados_incompletos, mas leia sempre o documento original.- Sem validação jurídica. Isto é uma ferramenta de busca, não uma interpretação normativa.
Há uma instância pública deste servidor, mantida pelo autor, para quem quer usar sem instalar nada:
https://mcp.iamed.cc/cfm/mcp
claude mcp add --transport http radar-cfm https://mcp.iamed.cc/cfm/mcpAntes de usar, saiba o que ela é:
limite até 100, dias até 3.650). Acima disso a chamada é recusada.| O quê | Versão | Para quê |
|---|---|---|
| Python | 3.12+ | runtime |
| uv | recente | dependências e venv |
| Espaço em disco | ~200 MB | base DuckDB + PDFs cacheados |
Este projeto não usa LLM: a busca é full-text sobre a base local.
git clone https://github.com/fabianofilho/radar-cfm-mcp.git
cd radar-cfm-mcp
uv sync
cp .env.example .env
| Variável | Padrão | Observação |
|---|---|---|
CRAWLER_DELAY_SEGUNDOS | 2 | intervalo entre requisições ao portal |
PALAVRAS_CHAVE | inteligência artificial, telemedicina, prontuário eletrônico, algoritmo | separadas por vírgula; decidem quais PDFs o sync padrão baixa (pela ementa) e o filtro de monitorar_novas_resolucoes (ementa e texto) |
DUCKDB_PATH | ./data/cfm.duckdb | base local |
uv run cfm-cli sync --max-paginas 3 # teste rápido
uv run cfm-cli sync # varredura completa (~8 min com delay de 2s)
uv run cfm-cli consultar telemedicina
uv run cfm-cli novas --dias 90
uv run cfm-cli reextrair-datas # refaz as datas a partir do texto já gravado
uv run cfm-cli schema
claude mcp add radar-cfm --scope user \
-e DUCKDB_PATH=/caminho/para/radar-cfm-mcp/data/cfm.duckdb \
-- uv --directory /caminho/para/radar-cfm-mcp run radar-cfm-mcp
consultar_resolucao_cfm(tema: str, apenas_vigentes=True, limite=10)limite vai de 1 a 100. Um tema que seja o número de uma resolução (2314/2022,
2.314) busca aquela norma diretamente, inclusive revogada.
{
"tema": "inteligência artificial",
"total": 1,
"retornados": 1,
"truncado": false,
"resultados": [
{
"identificador": "2454/2026",
"ementa": "Normatiza o uso da inteligência artificial na medicina.",
"vigente": true,
"revogada_por": null,
"trecho_relevante": "...Normatiza o uso da inteligência artificial na medicina. O CONSELHO FEDERAL DE MEDICINA...",
"url_origem": "https://sistemas.cfm.org.br/normas/visualizar/resolucoes/BR/2026/2454",
"texto_completo_disponivel": true
}
]
}
Ordena por relevância (BM25 do FTS do DuckDB) e depois por data. Revogadas vêm com
vigente: false e o número da que substituiu. total é quantas casam na base
inteira; truncado: true quer dizer que há mais do que veio.
monitorar_novas_resolucoes(dias=30, filtrar_tema=True, limite=50)O que foi publicado nos últimos dias (1 a 3.650), mais recentes primeiro, até
limite (1 a 100). Com filtrar_tema, só as que citam alguma das PALAVRAS_CHAVE
na ementa ou no texto; o filtro é aplicado antes do limite. A resposta traz total,
retornados, truncado e sem_data_publicacao: a janela usa a data extraída do
texto, e as resoluções sem data ficam de fora, então total zero com muitas sem data
quer dizer "não sei", não "nada foi publicado".
O portal de busca de normas renderiza os resultados no navegador a partir de uma variável
resultadoBuscaJson embutida no HTML. O crawler lê esse JSON em vez de raspar tabela:
é mais estável, e já vem com o campo de revogação.
Confirmado em 20/09/2026: 2.457 resoluções, 10 por página, 246 páginas.
Dois detalhes que moldaram o desenho:
busca=), então
o filtro por palavra-chave é aplicado localmente sobre a ementa.sistemas.cfm.org.br/normas/arquivos/resolucoes/BR/{ano}/{numero}_{ano}.pdf.É o site de um conselho profissional, não uma API feita para volume:
This is the beginning of the README. Read the rest at the original. Read the full README ↗