Skip to main content
Glama
charlesmmorais

conformidade-pbtr-mcp

conformidade-pbtr-mcp

Автоматизированный анализ соответствия базовых проектов и технических заданий (MCP-сервер, pt-BR).

Тесты Лицензия: MIT Python 3.11+

Сервер MCP, который анализирует базовые проекты (PB) и технические задания (TR) на соответствие сценарию анализа SERPRO. Вы отправляете PDF и говорите «провести анализ соответствия PB»; сервер возвращает индекс соответствия, приоритизированные замечания и отчёты в форматах DOCX, XLSX, PDF, Markdown и JSON.

Проект SERPRO — Федеральной службы обработки данных.

Что проверяется

Слой

Проверка

Нормативный чек-лист

86 правил, производных от сценария [TI] для PB/TR — разделы 1–8, Декларации и Приложения

Нумерация

пропуски (5.1 → 5.3), дублирующиеся пункты, осиротевшие подпункты, пункты не по порядку, отсутствующие обязательные разделы

Таблицы и значения

минимальные колонки, Qtd × Unitário = Total, сходимость итоговой суммы, помесячная согласованность, сумма прописью × цифрами, общая сумма в тексте × таблице

Текстовая проверка

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 МБ.

Доступные инструменты

Основной процесс:

Инструмент

Назначение

analisar_conformidade

шаг 1 — детерминированные проверки

obter_texto_para_revisao

шаг 2 — возвращает сегментированный текст для проверки агентом

registrar_revisao_textual

шаг 3 — принимает замечания и формирует отчёты

Вспомогательные:

Инструмент

Назначение

verificar_numeracao

только иерархическая нумерация

validar_tabelas

только таблицы, арифметика и значения

revisar_ortografia

детерминированные правила + сегментированный текст

extrair_estrutura

диагностика извлечения (обнаруживает отсканированный PDF)

consultar_checklist

запрос правил по разделу, тегу или серьёзности

gerar_relatorio

повторная отрисовка анализа сессии в другом формате

Промпт 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.

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