Skip to main content
Glama
charlesmmorais

conformidade-pbtr-mcp

conformidade-pbtr-mcp

Análisis automatizado de conformidad de Proyectos Básicos y Términos de Referencia (servidor MCP, pt-BR).

Pruebas Licencia: MIT Python 3.11+

Servidor MCP que analiza Proyectos Básicos (PB) y Términos de Referencia (TR) contra el guion de análisis del SERPRO. Usted envía el PDF y dice "realizar el análisis de conformidad del PB"; el servidor devuelve el índice de conformidad, los pendientes priorizados y los informes en DOCX, XLSX, PDF, Markdown y JSON.

Proyecto del SERPRO — Serviço Federal de Processamento de Dados.

Qué se verifica

Capa

Verificación

Checklist normativo

86 reglas derivadas del guion [TI] de PB/TR — secciones 1 a 8, Declaraciones y Anexos

Numeración

saltos (5.1 → 5.3), ítems duplicados, subítems huérfanos, ítems fuera de orden, secciones obligatorias ausentes

Tablas y valores

columnas mínimas, Qtd × Unitário = Total, cierre del sumatorio, coherencia mensual, valor en letras × numeral, valor global del texto × tabla

Revisión textual

20 reglas deterministas para errores recurrentes en documentos administrativos, más la revisión de portugués realizada por el propio modelo que llama al MCP

Las reglas del checklist son condicionales. El servidor infiere el contexto de la contratación — licitación, contratación directa, inexigibilidad, servicio, bien, consultoría, capacitación, tickets, suscripción, ARP, hardware/cambio, vigencia superior a 60 meses — y aplica solo las ramas pertinentes del guion. Las demás aparecen como No aplicable, con la razón explicitada. Sin esto, un PB de hardware recibiría decenas de falsos "no conforme" por no incluir las justificaciones obligatorias de consultoría.

Cinco estados, no dos

conforme / não conforme sería insuficiente: varios ítems del guion requieren criterio humano ("verificar si hay coherencia entre ellos"). El informe usa:

Estado

Significado

Conforme

indicio localizado en el documento

No conforme

ninguna ocurrencia localizada

Atención

asunto tratado, pero incompleto: la lista de lo que falta se adjunta

Verificar manualmente

indicio presente; el mérito exige criterio humano

No aplicable

el contexto del documento no activa la regla

Related MCP server: Tri-Tender Pricing MCP

Cómo funciona la revisión de portugués

Quien revisa el texto es el modelo que llamó al MCP — ya tiene el documento en contexto, así que no tiene sentido que el servidor abra una segunda conversación con otro modelo para releer el mismo texto. El servidor se encarga de lo determinista y entrega el texto segmentado para que el agente lo lea.

De ahí el flujo en tres pasos, que el agente encadena por sí solo:

1. analisar_conformidade      → checklist, numeração, tabelas, valores
                                 (+ regras determinísticas de revisão)
2. obter_texto_para_revisao   → o agente lê e revisa o português
3. registrar_revisao_textual  → apontamentos entram e os relatórios saem

Cada observación del agente solo entra en el informe si el fragmento citado existe literalmente en el documento. La comprobación se realiza contra el texto extraído, tolerando diferencias de espaciado y comillas. Si el modelo no puede señalar dónde está el error, la observación se descarta y se devuelve en recusados, con el motivo — es lo que separa una revisión útil de una alucinación en un informe que instruye un expediente administrativo.

Todo hallazgo cita el ítem del PB/TR ("ítem 6.3.1"), no solo la página: en un documento denso, la página no localiza el fragmento para quien va a corregir. El ítem se resuelve a partir de la cita, y no de lo que declare el modelo: si este se equivoca en la numeración, prevalece lo que dice el documento.

En el informe, esas sugerencias aparecen en una sección propia, marcadas como no reproducibles, y quedan fuera del índice de conformidad. La verificación exacta y la sugerencia de lectura tienen pesos diferentes para quien firma el dictamen.

Instalación

Único requisito: Python 3.11+. No hay dependencia de Java ni de servicio externo.

git clone https://github.com/charlesmmorais/conformidade-pbtr-mcp.git
cd conformidade-pbtr-mcp
python -m venv .venv && source .venv/bin/activate   # Windows: .venv\Scripts\activate
pip install -e .

Registro en Claude Desktop / Claude Code (claude_desktop_config.json):

{
  "mcpServers": {
    "conformidade-pbtr": {
      "command": "/caminho/para/conformidade-pbtr-mcp/.venv/bin/conformidade-pbtr",
      "env": {
        "CONFORMIDADE_PBTR_SAIDA": "/caminho/onde/gravar/os/relatorios"
      }
    }
  }
}

Despliegue alojado (Fly.io)

El servidor se comunica mediante stdio localmente y HTTP cuando está alojado. El repositorio incluye Dockerfile y fly.toml listos:

fly launch --no-deploy --copy-config
fly deploy
curl https://<sua-app>.fly.dev/health

En el modo alojado, el cliente no comparte disco con el servidor: el PDF se sube en conteudo_base64 y los informes vuelven incrustados en la respuesta. Lea docs/DEPLOY.md antes del primer despliegue, en especial la sección sobre exposición del endpoint. La imagen tiene ~250 MB y funciona en 512 MB.

Herramientas expuestas

Flujo principal:

Tool

Uso

analisar_conformidade

paso 1 — comprobaciones deterministas

obter_texto_para_revisao

paso 2 — devuelve el texto segmentado para que el agente lo revise

registrar_revisao_textual

paso 3 — recibe las observaciones y emite los informes

Auxiliares:

Tool

Uso

verificar_numeracao

solo la numeración jerárquica

validar_tabelas

solo tablas, aritmética y valores

revisar_ortografia

reglas deterministas + texto segmentado

extrair_estrutura

diagnóstico de la extracción (detecta PDF escaneado)

consultar_checklist

consulta las reglas, por sección, etiqueta o severidad

gerar_relatorio

re-renderiza un análisis de la sesión en otro formato

Prompt conduzir_analise_conformidade: guion de conducción del análisis por parte del agente, incluido el orden de presentación de los hallazgos y la instrucción de no afirmar conformidad sin que el análisis la haya clasificado como tal.

Uso directo (sin MCP)

from conformidade_pbtr import analisar
from conformidade_pbtr.relatorios import gerar_docx

rel = analisar("PB_123_2026.pdf", tipo="PB")
print(rel.resumo.indice_conformidade)
gerar_docx(rel, "Relatorio_Conformidade.docx")

Índice de conformidad

Media ponderada por severidad (crítico 4, alto 3, medio 2) sobre los ítems evaluables automáticamente. Los ítems No aplicable, Verificar manualmente, las observaciones de revisión textual y las sugerencias del agente quedan fuera del cálculo, para no distorsionar la nota.

Rango

Lectura

≥ 90

Apto — ajustes puntuales

≥ 75

Apto con salvedades

≥ 50

Requiere revisión sustantiva

< 50

No apto — reformulación necesaria

Checklist enchufable

Todo el conocimiento normativo está en recursos/checklist_roteiro_ti.yaml — el motor no conoce norma alguna. Para acompañar una revisión del guion, edite el YAML y suba la versao en metadata; el nombre y la versión del checklist utilizado quedan registrados en cada informe, lo que hace que el análisis sea auditable en el tiempo.

El proyecto hoy atiende al SERPRO. Dar soporte a otro organismo consiste en añadir un YAML en recursos/ y apuntar CONFORMIDADE_PBTR_CHECKLIST a él — no requiere ningún cambio de código. El formato está en docs/CHECKLIST.md.

Limitaciones conocidas

  • Pestaña Itens — la comprobación entre la pestaña Itens del sistema y las cantidades del PB no es posible a partir del PDF. El ítem sale siempre como Verificar manualmente.

  • PDF escaneado — sin capa de texto no hay análisis. extrair_estrutura señala el caso; aplique OCR antes.

  • Anexos — se verifica si el documento cita los anexos, no si los archivos existen en el expediente.

  • Presencia ≠ adecuación — el motor confirma que el asunto fue tratado; el mérito de la justificación sigue siendo del dictaminador.

Documentación

Desarrollo

pip install -e ".[dev]"
pytest -q          # testes sobre um PB sintético com erros plantados
ruff check .

El PB de prueba se genera con exemplos/gerar_pb_teste.py, con errores intencionados de numeración, aritmética, valor en letras y portugués — es lo que garantiza que cada validador siga detectando lo que debe.

Licencia

MIT — Copyright (c) 2026 SERPRO.

Install Server
A
license - permissive license
A
quality
B
maintenance

Maintenance

Maintainers
Response time
Release cycle
Releases (12mo)
Commit activity

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Servers

  • F
    license
    Not graded
    quality
    D
    maintenance
    An MCP server that provides comprehensive PDF processing capabilities including text extraction, image extraction, table detection, annotation extraction, metadata retrieval, page rendering, and document structure analysis.
  • F
    license
    Not graded
    quality
    D
    maintenance
    An MCP server designed to automate tender and RFQ pricing by extracting requirements from documents and building structured pricing models. It enables users to calculate final costs, compare market rates, and generate styled HTML pricing reports for PDF export.

View all related MCP servers

Related MCP Connectors

View all MCP Connectors

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/charlesmmorais/conformidade-pbtr-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server