conformidade-pbtr-mcp
conformidade-pbtr-mcp
Автоматизированный анализ соответствия базовых проектов и технических заданий (MCP-сервер, pt-BR).
Сервер MCP, который анализирует базовые проекты (PB) и технические задания (TR) на соответствие сценарию анализа SERPRO. Вы отправляете PDF и говорите «провести анализ соответствия PB»; сервер возвращает индекс соответствия, приоритизированные замечания и отчёты в форматах DOCX, XLSX, PDF, Markdown и JSON.
Проект SERPRO — Федеральной службы обработки данных.
Что проверяется
Слой | Проверка |
Нормативный чек-лист | 86 правил, производных от сценария |
Нумерация | пропуски (5.1 → 5.3), дублирующиеся пункты, осиротевшие подпункты, пункты не по порядку, отсутствующие обязательные разделы |
Таблицы и значения | минимальные колонки, |
Текстовая проверка | 20 детерминированных правил для типичных ошибок в административных документах, плюс проверка португальского языка, выполняемая самой моделью, которая вызывает MCP |
Правила чек-листа условны. Сервер определяет контекст закупки — торги, прямая закупка, невозможность проведения торгов, услуга, товар, консалтинг, обучение, заявки, подписка, ARP, оборудование/валютный курс, срок действия более 60 месяцев — и применяет только соответствующие ветви сценария. Остальные отображаются как Не применимо с указанием причины. Без этого PB на оборудование получал бы десятки ложных «не соответствует» из-за отсутствия обязательных обоснований для консалтинга.
Пять статусов, а не два
conforme / não conforme было бы недостаточно: многие пункты сценария требуют человеческого суждения («проверить, есть ли согласованность между ними»). В отчёте используется:
Статус | Значение |
Соответствует | признак найден в документе |
Не соответствует | ни одного вхождения не найдено |
Внимание | тема затронута, но неполно — прилагается список недостающего |
Проверить вручную | признак присутствует; оценка требует человеческого глаза |
Не применимо | контекст документа не активирует правило |
Related MCP server: Tri-Tender Pricing MCP
Как работает проверка португальского языка
Текст проверяет модель, которая вызвала MCP — документ уже находится в её контексте, поэтому серверу нет смысла открывать второй диалог с другой моделью, чтобы перечитать тот же текст. Сервер отвечает за детерминированные проверки и передаёт агенту сегментированный текст для чтения.
Отсюда трёхшаговый процесс, который агент выполняет самостоятельно:
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Каждое замечание агента попадает в отчёт, только если процитированный фрагмент существует в документе буквально. Проверка выполняется по извлечённому тексту с допуском на различия в пробелах и кавычках. Если модель не может указать, где находится ошибка, замечание отклоняется и возвращается в recusados с указанием причины — это отличает полезную проверку от галлюцинации в отчёте, который служит основанием для административного процесса.
Каждая находка ссылается на пункт PB/TR («пункт 6.3.1»), а не только на страницу — в плотном документе страница не позволяет найти фрагмент тому, кто будет исправлять. Пункт определяется по цитате, а не по тому, что заявляет модель: если она ошибётся в нумерации, действует то, что указано в документе.
В отчёте эти предложения появляются в отдельном разделе, помеченные как невоспроизводимые, и не входят в индекс соответствия. Точная проверка и рекомендация к прочтению имеют разный вес для того, кто подписывает заключение.
Установка
Единственное требование: Python 3.11+. Нет зависимостей от Java или внешних сервисов.
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 .Регистрация в 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"
}
}
}
}Размещённый деплой (Fly.io)
Сервер работает через stdio локально и HTTP в размещённом режиме. В репозитории есть готовые Dockerfile и fly.toml:
fly launch --no-deploy --copy-config
fly deploy
curl https://<sua-app>.fly.dev/healthВ размещённом режиме клиент не разделяет диск с сервером: PDF загружается в conteudo_base64, а отчёты возвращаются встроенными в ответ. Прочтите docs/DEPLOY.md перед первым деплоем — особенно раздел о публикации endpoint. Образ занимает ~250 МБ и работает на 512 МБ.
Доступные инструменты
Основной процесс:
Инструмент | Назначение |
| шаг 1 — детерминированные проверки |
| шаг 2 — возвращает сегментированный текст для проверки агентом |
| шаг 3 — принимает замечания и формирует отчёты |
Вспомогательные:
Инструмент | Назначение |
| только иерархическая нумерация |
| только таблицы, арифметика и значения |
| детерминированные правила + сегментированный текст |
| диагностика извлечения (обнаруживает отсканированный PDF) |
| запрос правил по разделу, тегу или серьёзности |
| повторная отрисовка анализа сессии в другом формате |
Промпт conduzir_analise_conformidade: сценарий проведения анализа агентом, включая порядок представления находок и указание не утверждать соответствие, если анализ не классифицировал его как таковое.
Прямое использование (без 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")Индекс соответствия
Средневзвешенное значение по серьёзности (критический 4, высокий 3, средний 2) по пунктам, оцениваемым автоматически. Пункты Не применимо, Проверить вручную, замечания текстовой проверки и предложения агента исключаются из расчёта, чтобы не искажать оценку.
Диапазон | Интерпретация |
≥ 90 | Годен — точечные правки |
≥ 75 | Годен с оговорками |
≥ 50 | Требует содержательной доработки |
< 50 | Не годен — необходима переработка |
Подключаемый чек-лист
Все нормативные знания находятся в recursos/checklist_roteiro_ti.yaml — движок не знает ни одной нормы. Чтобы сопровождать обновление сценария, отредактируйте YAML и поднимите versao в metadata; имя и версия использованного чек-листа сохраняются в каждом отчёте, что делает анализ проверяемым во времени.
Сегодня проект обслуживает SERPRO. Поддержка другого органа — это добавление YAML в recursos/ и указание CONFORMIDADE_PBTR_CHECKLIST на него — без изменений кода. Формат описан в docs/CHECKLIST.md.
Известные ограничения
Вкладка Itens — сверка между вкладкой Itens системы и количествами в PB невозможна на основе PDF. Пункт всегда выводится как Проверить вручную.
Отсканированный PDF — без текстового слоя анализ невозможен.
extrair_estruturaсигнализирует об этом случае; примените OCR заранее.Приложения — проверяется, упоминает ли документ приложения, а не существуют ли файлы в процессе.
Наличие ≠ адекватность — движок подтверждает, что тема была затронута; оценка обоснования остаётся за экспертом.
Документация
docs/MANUAL.md— краткое руководство по использованию для тех, кто будет анализироватьdocs/ARQUITETURA.md— проектные решения, модель данных и дорожная картаdocs/CHECKLIST.md— формат YAML и как писать хорошие триггерыdocs/DEPLOY.md— деплой на Fly.io, удалённый режим и переменные окруженияCONTRIBUTING.md— как внести вклад
Разработка
pip install -e ".[dev]"
pytest -q # testes sobre um PB sintético com erros plantados
ruff check .Тестовый PB генерируется скриптом exemplos/gerar_pb_teste.py с намеренными ошибками в нумерации, арифметике, сумме прописью и португальском языке — это гарантирует, что каждый валидатор продолжает находить то, что должен.
Лицензия
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