Разработка MCP-серверов в 1С
Инструмент для создания MCP (Model Context Protocol) серверов на платформе 1С:Предприятие. Позволяет разрабатывать расширения 1С, которые предоставляют данные и функциональность базы для AI-ассистентов (чаты с языковыми моделями, Claude Desktop, Cursor и других AI-клиентов).
Подробное видео о проекте и его возможностях:
VK Видео | Youtube | Rutube
Проект содержит готовое расширение для 1С, которое берет на себя всю техническую рутину протокола MCP. Вам остается только реализовать бизнес-логику ваших инструментов. Инструменты для работы с метаданными конфигурации 1С доступны "из коробки".
Как это работает: Концепция MCP
Качество ответа языковой модели (LLM) напрямую зависит от качества предоставленного ей контекста. Подготовка такого контекста вручную может быть трудоемкой.
Model Context Protocol (MCP) — это открытый стандарт, который позволяет модели самой запрашивать необходимые данные через специальные "инструменты" (tools), предоставляемые вашим сервером. Таким образом, контекст для решения задачи собирается автоматически.
Компоненты проекта
src/1c_ext/- Расширение 1С: Ядро решения. Реализует MCP-сервер и инструменты.src/py_server/- Python-прокси: Опциональный, но рекомендуемый компонент для решения инфраструктурных задач.
Быстрый старт
Шаг 1: Установка расширения 1С
Подключите готовое, собранное расширение из каталога build/MCP_Сервер.cfe в вашу конфигурацию.
Шаг 2: Публикация HTTP-сервиса
Опубликуйте на веб-сервере HTTP-сервис mcp_APIBackend, который находится в расширении.
Важно: Для прямого подключения AI-клиента к 1С (без прокси) требуется публиковать базу без необходимости аутентификации ("вшить" реквизиты доступа к базе в default.vrd), что является небезопасным. Решение этой проблемы описано в разделе "Варианты подключения".
Шаг 3: Подключение AI-клиента
Подключите MCP-клиент (например, Cursor) к опубликованному HTTP-сервису (.../ваша_база/hs/mcp/). Примеры настроек для разных клиентов находятся в папке mcp_client_settings/.
Варианты подключения
Вариант 1: Прямое подключение к 1С
- Как работает:
AI-клиент ←→ HTTP-сервис 1С - Ограничения:
- Требует публикации HTTP-сервиса без аутентификации 1С.
- Невозможно подключить клиенты, требующие транспорт
stdio. - Ограниченная совместимость с некоторыми HTTP-клиентами из-за нюансов протокола.
Вариант 2: Подключение через Python-прокси (Рекомендуется)
-
Как работает:
AI-клиент ←→ MCP-прокси (Python) ←→ HTTP-сервис 1С -
Зачем он нужен? Прокси решает ключевые инфраструктурные проблемы:
- Проблема транспорта: Позволяет подключать клиенты, работающие по
stdio. - Проблема аутентификации: Реализует протокол
OAuth2(стандартный способ аутентификации в MCP) и передает авторизацию в 1С черезBasic Auth. Это позволяет не отключать аутентификацию 1С на веб-сервере. Прокси поддерживает два режима: работа от имени одного фиксированного пользователя или "проброс" аутентификации каждого пользователя под его собственными учетными данными.
- Проблема транспорта: Позволяет подключать клиенты, работающие по
-
Настройка и запуск прокси:
- Детальная инструкция по требованиям, установке, настройке и запуску находится в документации Python-прокси.
Вариант 3: Запуск прокси в Docker
Для изолированного запуска прокси-сервера в контейнере:
# Скопируйте пример конфигурации
cp .env.docker.example .env
# Отредактируйте .env (укажите URL, логин, пароль)
# Запустите контейнер
docker-compose up -d
Важно: Если 1С на том же хосте, используйте
host.docker.internalвместоlocalhostвMCP_ONEC_URL.
Подробнее в документации Python-прокси.
Разработка собственных инструментов
Функциональность расширяется добавлением собственных инструментов для взаимодействия с данными 1С.
-
Шаг 1: В расширении создайте новую обработку и включите ее в подсистему
mcp_КонтейнерыИнструментов. -
Шаг 2: В модуле менеджера этой обработки реализуйте два экспортных метода:
// Метод для описания инструментов и их параметров
Процедура ДобавитьИнструменты(Инструменты) Экспорт
// ... здесь вы описываете, какие инструменты предоставляет ваша обработка
КонецПроцедуры
// Метод для выполнения логики инструмента
Функция ВыполнитьИнструмент(ИмяИнструмента, Аргументы) Экспорт
// ... здесь вы реализуете логику, которая будет вызвана AI-моделью
КонецФункции
Подробное руководство по разработке находится в файле src/1c_ext/agents.md.
Другие примитивы MCP
Помимо Инструментов (Tools), проект также поддерживает Ресурсы (Resources) для предоставления статического контекста (например, файлов) и Промпты (Prompts) для заготовленных шаблонов сообщений.
Документация
- Документация Python-прокси — детальное описание настройки и запуска прокси-сервера.
- Руководство по разработке в 1С — подробности реализации инструментов, ресурсов и промптов на стороне 1С. Можно подключать к генераторам кода (AI-агентам).
- Примеры настроек клиентов — готовые конфигурации для разных AI-клиентов.
Лицензия
MIT License
Поддержка и развитие
Проект активно развивается. Вопросы и предложения по улучшению приветствуются через Issues.
Metadata
Release files for iflow-mcp_vladimir-kharin-1c_mcp 1.0.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| iflow_mcp_vladimir_kharin_1c_mcp-1.0.0.tar.gz | 68.9 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| iflow_mcp_vladimir_kharin_1c_mcp-1.0.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 171.4 kB
Release files / iflow_mcp_vladimir_kharin_1c_mcp-1.0.0.tar.gz
| Download URL | iflow_mcp_vladimir_kharin_1c_mcp-1.0.0.tar.gz |
|---|---|
| Size | 68.9 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
7c6dae4737a3d81fb88a162de3e54b6235b09fe3a92c6ee10e4b6d570ffe8845
|
|
BLAKE2b-256 checksum How to use checksums |
4084168d17e3eaccf35d911d8f28352428bd4c5263235e3ce38fe6715b3d442d
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.10.2 {"installer":{"name":"uv","version":"0.10.2","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Debian GNU/Linux","version":"13","id":"trixie","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
|
Release files / iflow_mcp_vladimir_kharin_1c_mcp-1.0.0-py3-none-any.whl
| Download URL | iflow_mcp_vladimir_kharin_1c_mcp-1.0.0-py3-none-any.whl |
|---|---|
| Size | 102.5 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
22c9873d8374962c3b5f3779b5e285943d8ab7dfc5e7b610d86fec25f67181e8
|
|
BLAKE2b-256 checksum How to use checksums |
dd012e96a4ad39f34742e18e98055b0b40df2ad207c4c9eeadeea14d4a1f8d82
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.10.2 {"installer":{"name":"uv","version":"0.10.2","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Debian GNU/Linux","version":"13","id":"trixie","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
|