Skip to content

Releases: AzeevAN/mcp-1c

v1.1.1 — объяснения поиска и обратная связь

Choose a tag to compare

@AzeevAN AzeevAN released this 29 Aug 09:57

Что изменилось

  • найденные по части слов результаты на странице «Запросы» теперь получают
    понятную причину вместо пустого знака; оценка и порядок выдачи не менялись;
  • стенд поиска процедур дополнен парными русскими и английскими
    формулировками для уже измеряемых намерений;
  • README получил нейтральную форму сообщения о неверном, неполном или
    бесполезном MCP-ответе с обязательным обезличиванием;
  • счётчики pytest в README и CONTRIBUTING синхронизированы и защищены общей
    контрактной проверкой.

Совместимость

Новых MCP-инструментов, API, параметров запуска и источников данных нет.
Полный прогон 61 519 ручных и автоматических поисковых сценариев не показал
ни одной смены места относительно baseline.

Проверено перед выпуском

  • 1 808 Python-тестов;
  • 42 frontend-теста, typecheck и production build;
  • воспроизводимая сборка пяти BSL-вариантов, включая XML для платформы 8.3.5;
  • wheel и sdist 1.1.1, twine check;
  • dependency audit и CycloneDX SBOM: 30 компонентов, известных уязвимостей нет;
  • шесть Compose-комбинаций и изолированные Docker-smoke для core и SPA.

v1.1.0 — активность и происхождение расширений

Choose a tag to compare

@AzeevAN AzeevAN released this 29 Aug 05:44

Обратно совместимый минорный выпуск усиливает работу агента с расширениями и
делает ожидаемые runtime-конфликты безопасными для HTTP и MCP.

Главное

  • Добавлен независимый снимок фактической активности расширений для платформы
    8.3.8+: отдельная обработка сохраняет зарегистрированные, действующие и не
    применённые расширения конкретного сеанса.
  • Новый MCP-инструмент list_extensions различает snapshot, stale и
    unknown. Статус активности не блокирует доступ к успешно загруженному коду:
    агент может изучать расширение при любом из этих состояний.
  • Selection v5 доказывает происхождение собственных объектов и прямых
    нессылочных реквизитов расширения относительно конкретной основной файловой
    выгрузки. Неоднозначность и смена поколения обрабатываются fail-closed.
  • Ожидаемые ошибки Registry больше не превращаются в HTTP 500 или исключения
    MCP SDK: временный конфликт /api/v1/sources получает 409 с ограниченным
    повтором SPA, а инструменты возвращают структурированный isError=true.
  • Сводка источников больше не содержит декоративных связей; состояние снимка
    активности показано отдельным смысловым индикатором.

Обновление источников

  • Формат schema v1 не менялся, существующий каталог data/ сохраняется.
  • Чтобы получить доказанное происхождение структуры, после обновления сначала
    повторно разберите основную файловую выгрузку, затем относящиеся к ней
    файловые выгрузки расширений.
  • Чтобы агент знал фактическую активность, периодически выгружайте и загружайте
    отдельный СнимокРасширений_*.json, особенно после изменения расширений или
    запуска нового сеанса. Без снимка код расширений остаётся доступен, а
    активность честно обозначается как unknown.

Документация

Проверки выпуска

  • 1 806 Python-тестов и 151 целевая публичная/релизная проверка;
  • 42 frontend-теста, TypeScript typecheck и production build;
  • воспроизводимая сборка пяти BSL-вариантов, XML совместим с платформой 8.3.5;
  • wheel/sdist 1.1.0, корректные метаданные и twine check;
  • dependency audit: 0 известных уязвимостей, CycloneDX SBOM;
  • локальный Docker-smoke: healthy, runtime/MCP 1.1.0, 0 рестартов, OOM и
    ошибок 500/traceback, существующий /data сохранён.

Полный список изменений: v1.0.0...v1.1.0

v1.0.0 — стабильный сервер и рабочий дашборд

Choose a tag to compare

@AzeevAN AzeevAN released this 28 Aug 19:19

Первый стабильный выпуск mcp-1c. MCP-сервер, schema v1 и существующий каталог data/ сохраняют совместимость с v0.8.0.

Главное

  • Новый SPA-дашборд завершён и стал основным современным интерфейсом: источники, запросы, карточки, связи и словарь работают через версионированный API одного процесса с MCP.
  • Классический интерфейс сохранён как совместимый fallback; также поддержан режим без дашборда.
  • Docker-запуск приведён к предсказуемой схеме для чистого Linux: фиксированный UID/GID 10001:10001, обязательная проверка записи в data/, три явных режима и отдельный remote override.
  • Исправлен предел загрузки SPA: маршруты загрузки принимают файлы до 501 МиБ, а прежние защитные лимиты login, queries, MCP и остальных API не изменены.
  • Уточнена последовательность источников: ZIP структуры из внешней обработки загружается через дашборд, bootstrap или CLI; в incoming/ кладётся архив штатной команды Конфигуратора «Выгрузить конфигурацию в файлы… → Архив» после загрузки родительской конфигурации.
  • Версия runtime теперь берётся из единственного источника и одинаково отображается в Python-пакете, MCP и SPA внутри чистого Docker-контекста.

Запуск и обновление

Проверки выпуска

  • 1 779 Python-тестов локально и в CI на Python 3.12/3.13;
  • 39 frontend-тестов, TypeScript typecheck и production build;
  • воспроизводимая сборка обработки выгрузки;
  • wheel/sdist 1.0.0 и twine check;
  • dependency audit без известных уязвимостей и CycloneDX SBOM;
  • изолированные Docker-smoke core и SPA под 10001:10001 с проверкой записи, health, версии, рестартов и OOM.

Полный список изменений: v0.8.0...v1.0.0

v0.8.0 — безопасные границы и воспроизводимая поставка

Choose a tag to compare

@AzeevAN AzeevAN released this 27 Aug 19:08

Защитный релиз закрывает подтверждённые границы входных данных и конкурентного
доступа, синхронизирует публичные контракты и делает цепочку поставки
воспроизводимой.

Главное

  • Добавлены fail-closed лимиты для schema v1, архивов и контейнеров, HTTP-тел,
    multipart-загрузок, поисковых фраз и кэша стемов.
  • Все потребители Registry переведены на единый неизменяемый снимок;
    сериализованы параллельные административные правки словаря и проверки
    токенов сведены к одному constant-time helper.
  • Локальный сетевой профиль ограничен loopback, а отдельный remote-профиль
    требует токены и TLS reverse proxy.
  • Цепочка поставки получила hash-lock для runtime, разработки, сборки и аудита,
    закреплённые digest/SHA, dependency audit и CycloneDX SBOM.
  • Сборка четырёх BSL-вариантов стала атомарной, а публичные README, schema v1 и
    описание источников синхронизированы с фактическим поведением.
  • Добавлен обезличенный измеритель цены снимка расширений. На доступном корпусе
    оптимизация не потребовалась: три расширения добавили не больше 0,71 мс к p50,
    1,03 мс к p95 и 0,1% к traced peak.

Проверка выпуска

  • 1 713 тестов локально и в GitHub Actions на Python 3.12 и 3.13;
  • воспроизводимая сборка экспортёра и package job;
  • wheel/sdist 0.8.0 прошли twine check;
  • dependency audit не нашёл известных уязвимостей в закреплённом runtime-наборе;
  • локальный контейнер healthy, без рестартов и OOM; MCP initialize сообщает
    0.8.0.

Полные изменения: CHANGELOG · сравнение с v0.7.0

GitHub Actions: tests · supply-chain

v0.7.0 — поиск перебора результата запроса

Choose a tag to compare

@AzeevAN AzeevAN released this 25 Aug 21:48

Релиз расширяет адресные поисковые ключи справки на платформенные методы и
закрывает живой промах при поиске способа перебрать строки результата запроса.

Главное

  • Запрос «как перебрать строки в выборке результата запроса» теперь находит
    ВыборкаИзРезультатаЗапроса.Следующий первым вместо промаха в top-10.
  • Ключ платформенного метода отделён от ключей языка запросов и не меняет
    глобальный словарь конфигураций.
  • Сочинённая формулировка используется только для поиска и не попадает в ответ
    агенту вместо текста справки.
  • Привязка ключа отдельно проверяется при загрузке каждой версии платформенной
    справки; расхождение не остаётся тихой деградацией.

Замеры

  • Ручной набор языка запросов: P@1 вырос с 18/22 до 19/22, P@10 — с 19/22 до
    20/22.
  • Целевой запрос перешёл с промаха на первое место.
  • Остальные 60 992 запроса сравнительного корпуса не изменили место: 21 по
    метаданным, 3 по процедурам, 50 508 точных и 10 439 одноимённых по справке.

Проверено

  • локально: 1607 тестов;
  • wheel и sdist 0.7.0: twine check пройден;
  • контейнер из релизного коммита: healthy, MCP version 0.7.0, целевой
    tools/call возвращает ожидаемый метод первым;
  • GitHub Actions: Python 3.12/3.13, пакет и воспроизводимая сборка обработки —
    run 32902720086.

Полный список изменений: CHANGELOG.md.

v0.6.0 — типовые намерения поиска процедур

Choose a tag to compare

@AzeevAN AzeevAN released this 25 Aug 15:52

Релиз добавляет осторожное распознавание естественных русских формулировок о
типовых процедурах 1С и сохраняет прежний поиск для пользовательского кода.

Главное

  • search_procedures распознаёт фразы о 12 стандартных событиях и переводит
    их в каноническое имя процедуры.
  • Без scope случайный адрес не выбирается: ответ сообщает имя и число
    реализаций. Неоднозначная область требует точного модуля или формы.
  • Пользовательские имена, сессионное обучение, LRU-кэш и новый поисковый
    индекс не добавлялись.
  • Подробный контракт опубликован в
    docs/standard-procedure-intents.md.

Замеры и сопровождение

  • Добавлен воспроизводимый обезличенный стенд типовых намерений: 59/60
    положительных формулировок, 35/36 holdout и отказ на 30/30 контрольных.
  • Замер приёмки модулей расширен до schema v2: отдельно считаются BSL-вызовы,
    точные привязки метаданных и чтение модулей плоских форм.
  • GitHub Actions обновлены до actions/checkout@v7 и
    actions/setup-python@v7.

Проверено

  • локально: 1605 тестов;
  • wheel и sdist 0.6.0: twine check пройден;
  • контейнер из релизного коммита: healthy, MCP version 0.6.0;
  • GitHub Actions: Python 3.12/3.13, пакет и воспроизводимая сборка обработки —
    run 32868175656.

Полный список изменений: CHANGELOG.md.

v0.5.0

Choose a tag to compare

@AzeevAN AzeevAN released this 24 Aug 09:01

Устаревший SSE-транспорт полностью отключён.

  • mcp1c-server --transport sse отклоняется до чтения данных и запуска сервера.
  • Поддерживаются только streamable-http и stdio.
  • README обновлён, поведение закреплено регрессионным тестом.

Проверено: 1594 теста локально; GitHub Actions run 32709085701 зелёный во всех четырёх job; wheel и sdist версии 0.5.0 прошли twine check.

v0.4.0 — таблицы и журналы покрытия

Choose a tag to compare

@AzeevAN AzeevAN released this 24 Aug 08:33

Главное в этой версии

  • Три таблицы покрытия на /sources. Для каждого корпуса отдельно видны
    модули и процедуры, структуры форм и модули форм: точное количество,
    процент и явный знаменатель.
  • Полный JSON-журнал вместо адресной ленты. Основная выгрузка и каждое
    расширение получают свой актуальный файл schema v1 в data/logs/ со всеми
    безопасными диагностическими строками, marker и identity поколения.
  • Жизненный цикл совпадает с источником. Повторная загрузка атомарно
    заменяет только свой журнал; удаление корпуса удаляет его файл; удаление
    конфигурации каскадно убирает журналы её кода и расширений.
  • Fail-closed проверка актуальности. Битый, неполный, чужой по поколению
    или содержательно расходящийся с текущими индексами JSON не публикуется.
    Если stale-файл нельзя заменить или удалить на read-only хранилище, сервер
    сохраняет готовый корпус с предупреждением, но не показывает путь к
    недостоверному журналу.
  • Подробные ответы MCP и CLI сохранены. Первые 20 адресов и точные
    категории убраны только с обзорной страницы; list_configurations,
    reg-list и причины форм в get_object не сокращены.

Обновление с v0.3.0

Миграция данных и повторная загрузка исходных ZIP не требуются. При первом
старте расходные индексы при необходимости пересоберутся, после чего для
каждого готового корпуса автоматически появится актуальный журнал.

docker compose up -d --build --force-recreate

Каталог data/ по-прежнему находится вне Git и переносится отдельно.

Проверка релиза

  • 1593 синтетических теста без зависимости от содержимого data/;
  • GitHub Actions: Python 3.12 и 3.13;
  • сборка wheel mcp1c-0.4.0 и sdist, twine check для обоих артефактов;
  • воспроизводимая пересборка обработки выгрузки с проверкой 8.3.5;
  • живая cold/warm-приёмка двух представлений корпуса;
  • синтетические проверки содержательно устаревшего журнала и read-only
    хранилища.

Подробности, подключение клиентов и описание всех инструментов — в
README.
Полный список изменений — в
CHANGELOG.

Отношение к фирме «1С»

Проект разработан независимо, не аффилирован с ООО «1С» и не поддерживается
ею. «1С» и «1С:Предприятие» — товарные знаки ООО «1С»; лицензия Apache 2.0
прав на них не даёт. См.
NOTICE.

v0.3.0 — провайдер модулей и контейнерные формы

Choose a tag to compare

@AzeevAN AzeevAN released this 21 Aug 21:50

Главное в этой версии

  • Полноценный провайдер модулей. MCP теперь умеет искать процедуры,
    показывать сигнатуру и тело, находить вызывающие места и связывать код с
    объектами метаданных и обработчиками форм.
  • Десять MCP-инструментов. К прежнему справочнику метаданных, связей и
    синтаксиса добавлены search_procedures, get_procedure и get_callers.
  • Два формата выгрузки кода. Поддержаны иерархические XML-дескрипторы,
    Form.bin и обычные .bsl, а также плоские .txt и .Form.
  • Формы без ложного успеха. Для каждой формы отдельно различаются полностью
    разобранная, частично разобранная и непрочитанная структура; модуль формы
    учитывается независимо от структуры.
  • Точная диагностика покрытия. MCP, CLI и /sources показывают одинаковые
    счётчики по модулям, процедурам, формам и причинам ограничений, первые 20
    канонических адресов и точное число остальных.
  • Безопасные локаторы и строгий расходный кэш. Тела кода не дублируются в
    индексах, повреждённый или устаревший кэш не мигрируется и не роняет источник,
    а полностью пересобирается из исходной выгрузки.
  • Расширения конфигурации. Код основной конфигурации и каждого расширения
    индексируется отдельно, с проверкой поколения и без смешивания результатов
    во время повторного разбора.

Обновление с v0.2.0

Версия отбора файлов поднята до SELECTION_VERSION = 4. Старые индексы кода
не мигрируются: после обновления нужно явно повторно загрузить исходную
ZIP-выгрузку модулей. Сервер атомарно заменит прежний разбор новым и построит четыре
вида кэша. Если исходная выгрузка не сохранена, получить новые сведения из
старого индекса невозможно.

docker compose up -d --build --force-recreate

Загрузка и повторный разбор выполняются через страницу /sources либо
административный CLI. Каталог data/ остаётся вне Git и переносится отдельно.

Проверка релиза

  • 1581 синтетический тест без зависимости от содержимого data/;
  • Python 3.12 и 3.13;
  • сборка wheel mcp1c-0.3.0 и проверка его метаданных;
  • воспроизводимая пересборка обработки выгрузки;
  • финальная живая cold/warm-приёмка контейнерных форм и кэша.

Подробности, подключение клиентов и описание всех инструментов — в
README.
Полный список изменений — в
CHANGELOG.

Отношение к фирме «1С»

Проект разработан независимо, не аффилирован с ООО «1С» и не поддерживается
ею. «1С» и «1С:Предприятие» — товарные знаки ООО «1С»; лицензия Apache 2.0
прав на них не даёт. См.
NOTICE.

v0.2.0 — язык запросов, дашборд, публичный репозиторий

Choose a tag to compare

@AzeevAN AzeevAN released this 19 Aug 08:10
b2e6560

Первый релиз с тегом. Версия 0.1.0 описана в CHANGELOG как «первый рабочий
контур» от 2026-08-15, но тегом никогда не помечалась — историю с тех пор
переписывали git filter-repo.

Что умеет

Справочник по метаданным конфигураций 1С, синтаксису платформы и языку
запросов — для агентов, пишущих код на BSL. Отдаёт минимально достаточный срез:
разрешение человеческой формулировки в точное имя объекта, структуру объекта на
нужном уровне детализации, его связи и описание методов платформы с учётом
версии конкретной конфигурации
.

Обработка выгрузки для 1С 20 видов метаданных, 8.3.5 и 8.3.23, XML и JSON
Загрузчик, модель, граф 5 конфигураций, 20 522 объекта, 322 749 рёбер
Справка платформы слитый индекс трёх версий, 25 691 элемент
Язык запросов отдельный источник, 127 страниц
Качество поиска 97,1% справка, 94,7% язык запросов, 90,5% метаданные
MCP-сервер 7 инструментов, streamable-http и stdio
Docker один контейнер, 354 МБ
Тесты 432, на Python 3.12 и 3.13

Главное в этой версии

  • Язык запросов отдельным источником. В shcntx_ru.hbk нет ни ВЫБРАТЬ,
    ни ГДЕ, ни ЕСТЬNULL — проверено поимённо.
  • Слияние справок нескольких версий с границами since/until: ответ
    зависит от версии платформы, на которой работает конфигурация.
  • Таблица замен — недоступное не просто запрещено, а заменено рецептом.
  • Дашборд: реестр, источники, прогон запросов, граф связей, словарь.
  • Авторизация: API_TOKEN на чтение, ADMIN_TOKEN на запись.
  • Стенд замеров mcp1c.bench — P@k, MRR, отрыв.
  • Публичный репозиторий: Apache-2.0, NOTICE, SECURITY.md, CONTRIBUTING.md,
    пакетная сборка, CI на 3.12 и 3.13.

Установка

Данных в репозитории нет и быть не может: справка платформы — контент фирмы
«1С», каждый берёт из своей поставки.

mkdir -p data/bootstrap
cp ВыгрузкаКонфигурации.zip            data/bootstrap/
cp /opt/1cv8/<версия>/shcntx_ru.hbk    data/bootstrap/
docker compose up -d --build
curl http://localhost:5001/health

Подробности, подключение клиентов и описание инструментов — в
README.
Полный список изменений — в
CHANGELOG.

Отношение к фирме «1С»

Проект разработан независимо, не аффилирован с ООО «1С» и не поддерживается ею.
«1С» и «1С:Предприятие» — товарные знаки ООО «1С»; лицензия Apache 2.0 прав на
них не даёт. См. NOTICE.