conformidade-pbtr-mcp
conformidade-pbtr-mcp
Análisis automatizado de conformidad de Proyectos Básicos y Términos de Referencia (servidor MCP, pt-BR).
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 |
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, |
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 saemCada 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/healthEn 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 |
| paso 1 — comprobaciones deterministas |
| paso 2 — devuelve el texto segmentado para que el agente lo revise |
| paso 3 — recibe las observaciones y emite los informes |
Auxiliares:
Tool | Uso |
| solo la numeración jerárquica |
| solo tablas, aritmética y valores |
| reglas deterministas + texto segmentado |
| diagnóstico de la extracción (detecta PDF escaneado) |
| consulta las reglas, por sección, etiqueta o severidad |
| 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_estruturaseñ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
docs/MANUAL.md— micro manual de uso, para quien va a analizardocs/ARQUITETURA.md— decisiones de proyecto, modelo de datos y hoja de rutadocs/CHECKLIST.md— formato del YAML y cómo escribir buenos disparadoresdocs/DEPLOY.md— despliegue en Fly.io, modo remoto y variables de entornoCONTRIBUTING.md— cómo contribuir
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.
Maintenance
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
- FlicenseNot gradedqualityDmaintenanceAn 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.
- FlicenseNot gradedqualityDmaintenanceAn 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.
- AlicenseNot gradedqualityCmaintenanceAn MCP-only server for evidence-based EPC tender screening that enables AI agents to run a full screening workflow, extract requirements, match company profiles, generate compliance matrices, and produce bid/no-bid advisory memos.MIT
- AlicenseNot gradedqualityBmaintenanceMCP server for comprehensive PDF processing including text extraction with OCR, keyword search with regex, table extraction, and page preview as Base64 PNG images.1MIT
Related MCP Connectors
Conformance checker for MCP servers. Free, no key, verdicts recomputable and re-measured daily.
A paid remote MCP for CLI tool MCP, built to return verdicts, receipts, usage logs, and audit-ready
MCP server for generating rough-draft project plans from natural-language prompts.
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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