pto-mcp
This server does not currently have a deployable release on Glama. Follow the repository's setup instructions to install and configure it for your MCP client, including any required credentials and local dependencies.
ИИ-агент ПТО
Агент для ПТО в строительстве: сверяет КС-2 с журналом и сметой, распознаёт выпуск исполнительной документации со сканов и фотографий, переводит каждый спор с актом в рубли и подключается к Claude Desktop / Cursor / VS Code по Model Context Protocol.
Главный принцип: ни одна цифра не выдумывается. У каждой суммы есть формула и источник, где данных нет — «не оценено» с причиной, а не ноль; чертёж не меняется без подтверждения человека; каждый вызов инструмента пишется в журнал с хэш-цепочкой.
Что умеет | Результат на демо-объекте |
Сверка КС-2, объёмов, комплектности ИД | 7 расхождений из 7 заложенных, 0 лишних |
Выпуск ИД целиком (30–50 листов) | 40 листов, 205 пометок, 43 конфликта с актом |
Фото с телефона → чертёж | гомография по 4 точкам, rms 0,0 мм, 5/5 пометок |
Деньги по выпуску | 1 850 000 ₽ под риском = 5,42 % акта, каждый рубль с формулой |
Портфель актов объекта | 3 акта, покрытие 100 %, 2 091 000 ₽ под риском (5,43 %) |
MCP | 15 инструментов, stdio + http, установка одной командой |
Быстрый старт
git clone https://github.com/akoffice933-maker/pto-agent.git && cd pto-agent
pip install -r requirements-pto.txt
# 1. демо-данные и чертежи
python3 scripts/make_demo_data.py && python3 scripts/make_demo_dxf.py
python3 scripts/make_demo_redline.py && python3 scripts/make_demo_batch.py
# 2. сверка КС-2 и объёмов
python3 -m pto_agent run --data data/demo --out out
# 3. выпуск исполнительной документации со сканов
python3 -m pto_agent cad scan-batch --manifest data/demo/batch/manifest.json \
--engine vlm --summary out/summary.json --out out/cad/batch
# 4. деньги: сколько стоит спор с актом
python3 -m pto_agent cad impact --batch out/cad/batch/batch_summary.json \
--summary out/summary.json --out out/cad/impact --with-background
# 5. страница руководителя
python3 docs/build_dashboard.py && open Дашборд_руководителя_ПТО.html
# 6. тесты
python3 -m pytest tests -qRelated MCP server: AutoCAD MCP Server - Codex Edition
MCP: подключить к своему клиенту
python3 scripts/install_mcp.py --client claude --write # Claude Desktop
python3 scripts/install_mcp.py --client cursor --write # Cursor
python3 scripts/install_mcp.py --client vscode --write # VS Code
python3 -m pto_agent.mcp_server --transport http --port 8765 # http + инспектор
docker build -t pto-agent-mcp:0.6 . && docker run -p 8765:8765 pto-agent-mcp:0.615 инструментов: чтение DXF и takeoff, распознавание сканов и план правок, применение
операций только с confirm{by, role, comment}, пакетная обработка выпуска, деньги по акту
и по портфелю актов. Подробно — docs/10_MCP_обвязка.md.
Репозиторий
https://github.com/akoffice933-maker/pto-agent — публичный, MIT.
git clone https://github.com/akoffice933-maker/pto-agent.gitЧто настроено: .gitignore (артефакты прогонов и тяжёлые демо-сканы в git не едут —
генерируются скриптами), LICENSE (MIT), CI на GitHub Actions: unit на Python 3.11/3.12 →
e2e со сквозным прогоном (выпуск → деньги → дашборд) → сборка Docker-образа.
Чтобы запушить в свой форк: ./scripts/publish_github.sh git@github.com:ВАШ_АККАУНТ/pto-agent.git.
Пакет проекта: что внутри
Дата: 02.11.2026 · Версия пакета: 1.2
0. MVP: работающий прототип агента
Решение: проект делаем сами, готовые open-source проекты используем как подспорье (с фиксацией лицензий). Прототип собран и прогнан на демо-наборе: 7 расхождений из 7 заложенных найдено, 17 тестов зелёные.
pip install -r requirements-pto.txt
python3 scripts/make_demo_data.py # демо-смета, журнал, ранее закрытые акты, нормативы
python3 -m pto_agent run --data data/demo --out out
python3 -m pto_agent approve --out out --by "Иванов И.И." --decision returned_for_revision --comment "…"
python3 -m pto_agent audit-verify --path out/audit.jsonl
python3 scripts/check_expected.py # 7 из 7 заложенных расхождений, без лишних
python3 -m pytest tests -qФайл | Что внутри |
| Смежные проекты: 10 открытых сметных/обмерных проектов с проверенными звёздами и лицензиями, матрица «код можно / нельзя» (AGPL и «без лицензии» — только идеи), три сценария стыковки (внешний MCP-обмер, база ГЭСН/ФЕР, паттерны multi-agent), чего сознательно не делаем, дорожная карта |
| MCP одной командой: установщик конфигов для Claude Desktop / Cursor / VS Code, HTTP-транспорт и Docker, настройки из окружения, 15 тестов протокола, правила безопасности |
| Деньги под риском по объекту: реестр актов, покрытие проверкой 100 % после ретро-выпуска, разбивка по месяцам; непроверенный акт — «не оценено», а не «0 ₽» |
| Сколько стоит спор: конфликты пометок и расхождения ПТО → рубли по ценам сметы/КС-2; 1 850 000 ₽ под риском (5,42 % акта) на демо-выпуске, каждый рубль с формулой, «не оценено» вместо нуля |
| Фото с телефона и выпуск целиком: калибровка по 4 точкам (гомография), выпрямление и выравнивание света, контроль качества съёмки; пакетная обработка 40 листов за сеанс со сводкой в XLSX/Markdown (конфликты, вопросы человеку, позиции) |
| Распознавание сканов готово: скан листа с рукописными пометками → локальная VL-модель по API (или офлайн-CV без модели) → типизированные операции; анти-галлюцинационная проверка каждого bbox по чернилам, конфликты «согласовано»/объём против КС-2 уходят человеку, деньги по позициям, 14 MCP-инструментов |
| CAD-модуль готов: headless DXF на ezdxf, корпоративный шаблон (слои/блоки/шрифты/рамка/штамп), белый список из 7 операций, dry_run/commit с подтверждением человека, сверка объёмов схемы с КС-2 (±5 %), MCP-сервер на 14 инструментов (stdio + http) |
| Отчёт о сборке MVP: архитектура, результаты прогона, что переиспользовано из OSS и с какой лицензией, соответствие требованиям ТЗ, ограничения, дорожная карта этапа 2 |
| Точка входа MCP-сервера ( |
| Готовые конфиги клиентов (Claude Desktop, Cursor, VS Code, http) и установщик: подставляет пути, не затирает чужие серверы, делает бэкап |
| HTTP-транспорт MCP в контейнере: |
| Пакет и точки входа: |
| 15 тестов протокола: рукопожатие, список инструментов, ошибки JSON-RPC, чистота stdout, схемы, http, установщик |
| Внешний обмер по MCP: клиент (stdio/http, SSE), нормализация чужой схемы к нашей, сверка «чужой обмер ↔ наш DXF/смета», правило «не оценено ≠ 0», лицензионный режим «отдельный сервис» для AGPL |
| Конфиг внешнего обмера: транспорт, команда/url, инструмент, лицензия; готовый self-check на нашем же MCP-сервере |
| 22 теста: фейковые stdio- и http-серверы, SSE, ошибки JSON-RPC и |
| CAD-модуль: |
| Корпоративный шаблон |
| Демо-чертёж A1 с заложенными дефектами оформления и машиночитаемыми объёмами; генератор + PNG-предпросмотр |
| План операций, журналы версий и аудита, выпущенная схема (DXF+PNG+манифест), предпросмотр «лист + фрагмент» |
| Распознавание сканов: |
| Демо-скан A1 с 5 рукописными пометками, эталон разметки и тексты, введённые инженером |
| Генератор демо-скана: шум, поворот, поля бумаги — и эталонных пометок |
| Фото с телефона: гомография по 4 точкам, выпрямление листа, выравнивание света, контроль качества снимка |
| Портфель актов: покрытие проверкой, свод по актам и месяцам, сверка акта со сметой, отчёты |
| Ретро-выпуск по прошлым актам: сканы + эталон пометок + сводка ПТО периода акта (сверка с количествами того акта, а не с текущим журналом) |
| Сканы, эталон и манифесты ретро-выпуска: 15 листов по актам КС-2 №35 и №37 |
| Реестр актов объекта (КС-2 №35, №37, №38): суммы, статус проверки, ссылка на прогон выпуска; собирается |
| Стоимость споров: правила перевода расхождений в рубли, дедупликация по позиции, отчёты XLSX/Markdown и диаграмма «где деньги» |
| Пакетная обработка выпуска: манифест, кеш по хэшу скана, изоляция ошибок листа, сводка XLSX/Markdown/JSON |
| Демо-фото «с телефона» 2600×1950, 4 опорные точки и эталон пометок |
| Демо-выпуск: 4 чертежа комплекта, 40 сканов, эталоны, тексты и |
| Генераторы демо-фото и демо-выпуска (общий рендер и рисование пометок) |
| 24 теста: гомография, отказы на плохих точках, равенство «фото = скан», качество съёмки, пакет, кеш, сводка, отчёты |
| 24 теста распознавания: схема ответа, калибровка, mock-сервер, анти-галлюцинация, тексты инженера, конфликты с ПТО, MCP |
| 24 теста CAD: DWG-отказ, проверка шаблона, белый список, HITL, diff, takeoff, MCP (включая stdio-процесс) |
| Пакет: |
| Генератор и сам демо-набор + |
| Сверка прогона с эталоном |
| 17 тестов: полнота выявления, дубли, единицы, арифметика, цитаты, применимость редакций, хэш-цепочка, маршрутизация моделей, экспорт КС-2 |
| Результаты прогона: |
| SBOM: компонент, версия, лицензия, тип использования, в поставке да/нет |
| Смежные проекты: репозиторий, лицензия, звёзды, «что берём / что не берём», тип интеграции; звёзды и лицензии сверяются с GitHub API |
| Проверка списка и лицензионной политики: |
| 10 тестов политики: AGPL и проекты без лицензии никогда не «можно копировать», у MIT-проектов описано, что берём, подмена флага ломает сборку |
| Зависимости с лицензиями; запрещённые (AGPL/GPL, без лицензии) отмечены явно |
1. Документы
Файл | Что внутри | Кому |
| Полное ТЗ: 17 разделов + приложения A–F. Готово к согласованию | ИТ, ПТО, закупки |
| То же в markdown — для правок в git/Confluence | команда |
| ТЗ на эталонную выборку: состав 360 единиц, схемы разметки, метрики с порогами, регламент регрессии, критерии приёмки | ПТО + методолог |
| Видео-презентация продукта, 3:36, 1080p, с озвучкой. 10 слайдов: проблема → 4 сценария MVP → как работает → прозрачность и остатки → исполнительные схемы → безопасность → ИИ по API → план и бюджет → что нужно для старта | руководство, инвесторы |
| 14 слайдов для защиты бюджета: проблема → scope → архитектура → CAD → безопасность → рынок/OSS → план → бюджет → метрики → риски → ask | руководство |
| Экран руководителя. Стадии проекта (план/факт), остаточные объёмы по работам, деньги по договору и деньги под риском (сколько стоит каждый спор с актом — из сводки выпуска), стоимость и качество ИИ, журнал действий, список решений. Каждая цифра — с адресом источника. Открывается в браузере, без внешних зависимостей | руководство, ПТО |
| Шорт-лист исполнителей: 15 команд по GitHub-следу (проверка 02.11.2026), скоринг по 8 критериям, 4 модели контракта, рекомендуемая гибридная конфигурация, красные флаги | закупки, ИТ |
| Скоринг-матрица с формулами (веса редактируются), 25 вопросов RFP с «хорошими» и «плохими» ответами, чек-лист проверки GitHub-профиля с API-командами | закупки, ИТ |
| MVP собран своими силами: архитектура прототипа, 7 найденных расхождений, SBOM и лицензии, соответствие AC-TR/AC-LLM, ограничения, план этапа 2 | ИТ, ПТО |
| ТЗ, разделы 18–19: прозрачность, стадии, остатки, отчёт руководителю; подключение ИИ-моделей по API (маршрутизация, бюджеты, fallback, приёмка модели) | ИТ, ИБ, ПТО |
| 5 провайдеров (2 локальных + 2 РФ-облака + внешний запрещённый), 5 правил маршрутизации по классу данных, бюджеты, fallback, привязка промптов, пороги приёмки новой модели | ИТ, ИБ |
| Миграция: стадии и контрольные точки, снимки остатков и прогресса, платежи, провайдеры и журнал вызовов моделей, бюджеты, отчёты; представления | разработка |
2. Промпты и контракты инструментов
Файл | Назначение |
| «Сметчик»: КС-2, 7 классов расхождений, JSON-схема ответа |
| «Документатор»: АОСР, комплектность ИД, чек-лист замечаний |
| «Нормативщик»: ответ только с цитатой, правила конфликтов норм, регрессионные тесты |
| «Чертёжник»: redline → типизированные CAD-операции, белый список, блокирующие валидации |
| 17 инструментов с JSON-схемами, guardrails, политикой логирования и лимитами |
2а. Видео и его исходники
Файл | Назначение |
| Сценарий: текст каждой реплики + содержание слайда (единый источник правды) |
| Рендер 10 слайдов 1920×1080 (Pillow, DejaVu, без внешних ресурсов) |
| Сборка mp4: слайд + озвучка → сегмент → склейка (ffmpeg из imageio-ffmpeg) |
| Готовые кадры — можно использовать в PowerPoint или на печать |
Пересобрать видео целиком:
python3 video/build_slides.py
python3 video/make_video.py3. Данные и API
Файл | Назначение |
| PostgreSQL 16: 40+ таблиц — объекты, договоры, сметы, журналы, КС-2/КС-3, ИД и связи, комплектность, нормативы с редакциями, CAD-операции, задачи агентов, append-only журнал аудита с хэш-цепочкой, RLS, 3 представления. Проверено парсером PostgreSQL |
| OpenAPI 3.1, 33 пути: КС-2/КС-3, сверка, комплектность, нормы, CAD (dry_run/commit), выпуск схем, задачи, аудит. Проверено |
| Шаблоны разметки GS-01…GS-05 |
| Паспорт выборки (инвентаризация) |
| Автопроверки разметки: JSON, обязательные поля, арифметика КС-2, допустимые типы ошибок, спаны, bbox |
4. Как пользоваться
# пересобрать ТЗ или ТЗ на golden set после правок markdown
python3 docs/build_docx.py "ТЗ_ИИ-агент_ПТО_v1.2.md" "ТЗ_ИИ-агент_ПТО_v1.2.docx"
python3 docs/build_docx.py "docs/01_Golden_set_и_методика_разметки.md" "01_Golden_set_и_методика_разметки.docx"
# пересобрать презентацию
python3 docs/build_pptx.py
# пересобрать дашборд руководителя (числа считаются из одного массива данных)
python3 docs/build_dashboard.py
# проверить файлы разметки перед сдачей
python3 golden_set/tools/validate_gs.py golden_set/templates/
# CAD-модуль: чертёж → проверка шаблона → пометки → версия
python3 scripts/make_demo_dxf.py
python3 -m pto_agent cad validate --file drawings/korpus2_plan_v1.dxf
python3 -m pto_agent cad plan --file drawings/korpus2_plan_v1.dxf --summary out/summary.json
python3 -m pto_agent cad apply --file drawings/korpus2_plan_v1.dxf --plan out/cad/plan.json --mode dry_run
python3 -m pto_agent cad apply --file drawings/korpus2_plan_v1.dxf --plan out/cad/plan.json \
--mode commit --confirm-by "Иванов И.И."
python3 -m pto_agent mcp --transport http --port 8765 # MCP-инспектор и JSON-RPC на /mcp
# распознавание скана с пометками: скан → операции → проверка → commit с подписью
python3 scripts/make_demo_redline.py
python3 -m pto_agent cad scan --scan drawings/redline_scan.png \
--file drawings/korpus2_plan_v1.dxf --engine vlm --json out/cad/scan.json
python3 -m pto_agent cad redline-from-scan --scan drawings/redline_scan.png \
--file drawings/korpus2_plan_v1.dxf --engine offline \
--texts data/demo/redline_texts.json --mode plan_only
# фото с телефона: 4 угла листа → выпрямление → пометки
python3 scripts/make_demo_photo.py
python3 -m pto_agent cad scan --scan drawings/redline_photo.jpg \
--file drawings/korpus2_plan_v1.dxf --engine offline \
--anchors data/demo/photo_anchors.json --rectified out/cad/photo_rectified.png
# выпуск целиком: 40 листов за сеанс, сводка в out/cad/batch/
python3 scripts/make_demo_batch.py
python3 -m pto_agent cad scan-batch --manifest data/demo/batch/manifest.json \
--engine vlm --out out/cad/batch
python3 -m pto_agent cad impact --batch out/cad/batch/batch_summary.json \
--summary out/summary.json --out out/cad/impact --with-background
python3 -m pto_agent cad impact --acts data/demo/acts/acts.json \
--summary out/summary.json --out out/cad/portfolio
# внешний обмер по MCP (чужой сервер меряет, мы сверяем) — self-check на своём сервере
python3 -m pto_agent cad takeoff-external --config config/external_takeoff.example.yaml \
--pdf drawings/korpus2_plan_v1.dxf --file drawings/korpus2_plan_v1.dxf --out out/cad/external
python3 scripts/make_demo_retro.py && python3 scripts/make_demo_acts.py # ретро-выпуск
# полный цикл MVP агента (сверка → черновик КС-2 → отчёт → аудит)
python3 -m pto_agent run --data data/demo --out out
python3 -m pytest tests -qТесты, которым нужны тяжёлые демо-артефакты (сканы выпуска, ретро-выпуски, out/cad/batch*),
помечены skipif и просто пропускаются, если артефактов нет: свежий клон даёт 0 падений
(132 passed / 24 skipped после make_demo_redline.py), а джоб e2e в CI собирает весь набор
и прогоняет все тесты на реальных отчётах.
# поднять БД (после установки расширений pgcrypto, vector, pg_trgm)
psql -d pto_agent -f db/schema.sql
psql -d pto_agent -f db/002_transparency_llm.sql5. Прозрачность и ИИ по API — зафиксированные правила
Две цифры вместо одной: «выполнено» (физический факт по журналам) и «закрыто» (подписанный акт). Работы без документов не списываются в остаток — они висят как «готово к предъявлению».
Остаток = смета − закрыто подписанными КС-2 − выполнено, но не закрыто актом. Одна формула на всю систему, сумма по видам работ обязана сходиться с итогом до рубля.
Каждая цифра отчёта имеет
trace_ref— раскрывается до документа, листа и строки. Журнал append-only с хэш-цепочкой, изменение записей невозможно технически.Модель — сменный компонент. Подключение через единый OpenAI-совместимый шлюз; данные классов «коммерческая тайна» и «ПДн» обрабатываются только в контуре заказчика — блокировка на уровне шлюза и триггера БД.
Бюджет ИИ с жёстким стопом: при 80 % лимита — предупреждение, при 100 % — внешние вызовы прекращаются, система продолжает работать на локальных моделях.
6. Пять решений, которые зафиксированы в ТЗ
MVP = 4 сценария, а не 18. КС-2/КС-3, сверка объёмов, комплектность ИД, АОСР. Исполнительные схемы — этап «CAD + 2.0» (июнь–декабрь 2027).
Арифметику делает код, а не модель (
calc_totals+ принцип детерминизма расчётов).Ответ без цитаты запрещён.
cite_verifyблокирует выдачу, если цитата не найдена в указанном пункте указанной редакции. Цель — ≤ 0,5 % выдуманных ссылок.CAD-модуль: headless-first (ezdxf + ODA), live-мост — опция. Плата — потеря объектов при конвертации, отсюда обязательное сравнение количества объектов до/после и запрет выпуска при расхождении.
Собственная сборка, а не форк «готового каркаса». Аудит GitHub 02.11.2026: у
construction-ai-coreнет лицензии (только идеи),AutoGADпод AGPL-3.0 (не для закрытого продукта). Рабочая база:ai-pmo-skills(MIT),DDC_Skills(MIT),Autocad-MCP(MIT),cad-ai-agent(Apache-2.0),ezdxf(MIT).
7. Ближайшие шаги (этап 0, 10.11 – 05.12.2026)
Согласовать ТЗ v1.2 и ТЗ на golden set, назначить владельца выборки.
Собрать 50–100 пакетов документов + NDA/обезличивание (Приложение E ТЗ, п.2.2 ТЗ на golden set).
Разметить: 30 актов КС-2, 20 пакетов ИД, 200 нормативных вопросов, 20 redline-кейсов, 60 документов на извлечение полей.
Провести базовый хронометраж «как есть» — точка отсчёта для метрик и для критериев остановки.
Параллельно — 2 демо вендорских решений на своих данных (страховка на случай «купить вместо делать»).
8. Что можно сделать следующим
Схема БД «как есть» → миграции Alembic/Flyway и seed-данные для демо-стенда.
Реализовать
calc_totals+reconcile_volumesкак отдельный сервис с тестами на golden set.ТЗ на пилот: регламент работы инженера с агентом, инструкция пользователя, форма журнала замечаний.
Расчёт ROI под фактические цифры компании (ФОТ ПТО, объём ИД, штрафы за просрочку).
Прототип CAD-пайплайна на ezdxf: чтение DWG/DXF, список слоёв, применение 3 операций, diff-растр.
9. Смежные проекты и что мы у них берём
Проверенный список открытых проектов по сметам и обмерам — в
docs/11_Смежные_проекты_и_лицензии.md,
машиночитаемо — data/reference/analogue_projects.json (звёзды и лицензии сверены с GitHub API 2026-11-03).
Проект | Лицензия | Что берём |
AGPL-3.0 | декомпозицию intake → takeoff → pricing → review → quote; только как идею | |
AGPL-3.0 | обмер как внешний MCP-сервер, который поднимает сам пользователь — наш код остаётся MIT | |
MIT | RAG по расценкам с обязательной ссылкой на источник, схему «код → единица → объём → цена» | |
MIT | схему инструментов | |
MIT | роли QTO / Pricing / Validation и формат skill «когда вызывать, входы, выходы, критерий успеха» | |
NOASSERTION | базу ГЭСН/ФЕР/ТЕР для позиций, которых нет в смете — после ручной проверки условий |
Правило простое: лицензия сильнее звёзд. В MIT-поставку не попадает ни строчки AGPL-кода и кода без лицензии; такие проекты либо остаются внешним процессом, либо дают только идею. Проверяется автоматически:
Шаг 1 дорожной карты сделан: адаптер pto_agent/cad/external_takeoff.py, CLI
python3 -m pto_agent cad takeoff-external и 15-й MCP-инструмент external_takeoff — агент сам
зовёт чужой обмер и сверяет его с нашим чертежом; чужой код остаётся за границей протокола.
python3 scripts/check_analogues.py --offline # структура и политика, без сети (то же делает CI)
python3 scripts/check_analogues.py # сверить звёзды и лицензии с GitHub API
python3 -m pytest tests/test_analogues.py -q # 10 тестов политикиThis server cannot be deployed
Maintenance
Related MCP Connectors
Headless CAD engine & MCP server for 2D/3D drafting, solids, DXF/SVG export, and automation.
A paid remote MCP for CLI tool MCP, built to return verdicts, receipts, usage logs, and audit-ready
Document conversion MCP server: PDF to Markdown, image OCR, spreadsheet parsing.
Built-environment forecasts, public benchmarks, and permit or zoning readiness through remote MCP.
Related MCP Servers
- AlicenseAqualityAmaintenanceDrive the OpenTakeoff construction takeoff engine from any MCP client: open plan PDFs, set and verify drawing scale, one-click room areas, measure lengths, and export takeoff quantities. Runs locally over stdio via npx -y opentakeoff-mcp.58741AGPL 3.0
- AlicenseAqualityCmaintenanceMCP server for full AutoCAD automation, AutoCAD LT automation, and headless DXF generation. It provides 8 consolidated tools for drawing, entity, layer, block, annotation, P&ID, view, and system operations via MCP stdio transport.1241MIT
- FlicenseNot gradedqualityCmaintenanceMCP server for hard decoration quoting: parses DXF floor plans, reconstructs room topology, computes material quantities, and generates deterministic itemized quotes with tiered pricing. Exposes tools parse_dxf, compute_quote, and generate_report via stdio.-
- AlicenseAqualityBmaintenanceProvides construction-supervision tools for small-to-medium building projects, including stage guidance, inspection checklists, progress tracking, next-stage recommendations, and quotation analysis. It enables local, standards-based MCP interaction over stdio without third-party MCP SDKs.5MIT