$npx -y skills add Desko77/cursor-1c-skills --skill 1c-mcp-toolkit>
| 1 | # 1C MCP Toolkit - прямой HTTP API к живой базе 1С |
| 2 | |
| 3 | REST API на `http://localhost:6003/api/*` через обработку `MCP_Toolkit.epf`, |
| 4 | запущенную в тонком (или толстом) клиенте 1С. Встроенный HTTP-сервер реализован |
| 5 | нативной компонентой `MCPHttpTransport`. Без модификации конфигурации, без COM, |
| 6 | без публикации через web-сервер. |
| 7 | |
| 8 | Обработка `MCP_Toolkit.epf` - разработка ROCTUP, репозиторий: https://github.com/ROCTUP/1c-mcp-toolkit (там же исходники нативной компоненты и документация). |
| 9 | |
| 10 | Используется когда LLM-агент работает с живой базой (тесты, диагностика, прямой |
| 11 | вызов экспортных функций), и при этом классические EDT-инструменты не подходят |
| 12 | (нет dev-проекта, нужны данные runtime, нужен реальный пользовательский |
| 13 | контекст). |
| 14 | |
| 15 | ## Быстрый старт |
| 16 | |
| 17 | ### 1. Запуск 1С с авто-открытием обработки |
| 18 | |
| 19 | EPF лежит прямо в скилле: |
| 20 | - [bin/MCP_Toolkit.epf](bin/MCP_Toolkit.epf) - x64 (основная) |
| 21 | - [bin/MCP_Toolkit_x86.epf](bin/MCP_Toolkit_x86.epf) - x86 |
| 22 | |
| 23 | Минимальная PowerShell-команда: |
| 24 | |
| 25 | ```powershell |
| 26 | & "C:\Program Files\1cv8\<версия>\bin\1cv8c.exe" ` |
| 27 | /F"<путь к файловой базе>" ` |
| 28 | /N"<имя пользователя>" ` |
| 29 | /P"<пароль>" ` |
| 30 | /Execute"$HOME\.claude\skills\1c-mcp-toolkit\bin\MCP_Toolkit.epf" |
| 31 | ``` |
| 32 | |
| 33 | Готовый параметризованный скрипт: [scripts/start-1c.ps1](scripts/start-1c.ps1). |
| 34 | |
| 35 | Пример: |
| 36 | |
| 37 | ```powershell |
| 38 | & "$HOME\.claude\skills\1c-mcp-toolkit\scripts\start-1c.ps1" ` |
| 39 | -Platform "8.3.27.2074" ` |
| 40 | -Database "E:\1C\MyDatabase" ` |
| 41 | -User "Admin" ` |
| 42 | -Password "<пароль>" |
| 43 | ``` |
| 44 | |
| 45 | Без `/N` и `/P` 1С зависает на форме авторизации, HTTP-сервер не поднимается. |
| 46 | |
| 47 | После запуска в обработке на вкладке "Подключение" выбрать "Встроенный сервер", |
| 48 | порт 6003, формат TOON, нажать "Запустить сервер" (если не настроен автостарт). |
| 49 | |
| 50 | ### 2. Проверка готовности |
| 51 | |
| 52 | ```sh |
| 53 | curl http://localhost:6003/health |
| 54 | ``` |
| 55 | |
| 56 | `200 OK` - сервер на 6003 работает, можно делать запросы. |
| 57 | |
| 58 | ### 3. Закрытие 1С (например, для deploy через EDT) |
| 59 | |
| 60 | ```sh |
| 61 | curl -sS -X POST "http://localhost:6003/api/execute_code" \ |
| 62 | -H "Content-Type: application/json" \ |
| 63 | -d '{"code":"ЗавершитьРаботуСистемы(Ложь, Ложь); Результат=\"OK\";","execution_context":"client"}' |
| 64 | ``` |
| 65 | |
| 66 | Готовый скрипт: [scripts/stop-1c.ps1](scripts/stop-1c.ps1). |
| 67 | |
| 68 | `execution_context: "client"` обязателен - `ЗавершитьРаботуСистемы` доступна |
| 69 | только на клиенте. |
| 70 | |
| 71 | ## Когда использовать MCP Toolkit |
| 72 | |
| 73 | - Проверка реальных данных в живой БД (полнота тестовых данных, корректность |
| 74 | миграции, количество записей) |
| 75 | - Прямой вызов экспортных функций модулей выгрузки/обмена без UI |
| 76 | - Поиск конкретных проводок/документов для воспроизведения багов |
| 77 | - Чтение метаданных из живой БД (когда нет открытого EDT-проекта) |
| 78 | - Чтение журнала регистрации с фильтрацией |
| 79 | - Поиск ссылок на объект ("где используется этот контрагент") |
| 80 | - Диагностика прав доступа |
| 81 | |
| 82 | ## Когда НЕ использовать (есть альтернатива получше) |
| 83 | |
| 84 | | Задача | Лучше использовать | |
| 85 | |--------|--------------------| |
| 86 | | Чтение BSL-кода, навигация по модулям | `mcp__1c-edt__read_method_source`, `get_module_structure` | |
| 87 | | Валидация запроса до запуска | `mcp__1c-edt__validate_query` | |
| 88 | | Метаданные в режиме разработки (XML) | `mcp__1c-edt__get_metadata_objects/get_metadata_details` | |
| 89 | | Семантический поиск по коду | `mcp__1c-edt__search_in_code`, `find_references` | |
| 90 | | Запрос без живой БД (только EDT) | `mcp__1c-edt__execute_query` (если доступен) | |
| 91 | | Проверка качества BSL | `mcp__1c-naparnik__ask_1c_ai` | |
| 92 | |
| 93 | MCP Toolkit заточен под **живую запущенную базу**, EDT - под dev-режим с |
| 94 | исходниками. Не дублируй вызовы. |
| 95 | |
| 96 | ## Базовые запросы |
| 97 | |
| 98 | ### Health |
| 99 | ```sh |
| 100 | curl http://localhost:6003/health |
| 101 | ``` |
| 102 | |
| 103 | ### execute_query (минимум) |
| 104 | ```sh |
| 105 | curl -sS -X POST "http://localhost:6003/api/execute_query" \ |
| 106 | -H "Content-Type: application/json" \ |
| 107 | -d '{"query":"ВЫБРАТЬ ПЕРВЫЕ 5 Наименование ИЗ Справочник.Контрагенты"}' |
| 108 | ``` |
| 109 | |
| 110 | ### execute_code (минимум) |
| 111 | ```sh |
| 112 | curl -sS -X POST "http://localhost:6003/api/execute_code" \ |
| 113 | -H "Content-Type: application/json" \ |
| 114 | -d '{"code":"Результат = ТекущаяДата;"}' |
| 115 | ``` |
| 116 | |
| 117 | ### get_metadata (root summary) |
| 118 | ```sh |
| 119 | curl http://localhost:6003/api/get_metadata |
| 120 | ``` |
| 121 | |
| 122 | ## 12 эндпоинтов |
| 123 | |
| 124 | | # | Эндпоинт | Метод | Назначение | |
| 125 | |---|----------|-------|------------| |
| 126 | | 1 | get_metadata | GET/POST | Метаданные: типы, объекты, реквизиты, поиск по атрибуту | |
| 127 | | 2 | execute_query | POST | Выполнить запрос 1С, вернуть набор записей | |
| 128 | | 3 | execute_code | POST | Выполнить BSL-код, вернуть значение `Результат` | |
| 129 | | 4 | get_object_by_link | POST | Получить объект по navigation link | |
| 130 | | 5 | get_link_of_object | POST | Сформировать navigation link из object_description | |
| 131 | | 6 | find_references_to_object | POST | Найти все ссылки на объект в БД | |
| 132 | | 7 | get_access_rights | POST | Права на объект для роли/пользователя | |
| 133 | | 8 | get_event_log | POST | Журнал регистрации с фильтрацией и пагинацией | |
| 134 | | 9 | get_bsl_syntax_help | POST | Встроенная справка платформы 1С | |
| 135 | | 10 | submit_for_deanonymization | POST | Деанонимизация ответа (если анонимизация включена) | |
| 136 | | 11 | restart_1c_session | POST | Перезапуск сессии (подхват изменений конфигураци |