MCP-proxy server for 1C:Enterprise integration
Project description
Разработка 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.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file iflow_mcp_vladimir_kharin_1c_mcp-1.0.0.tar.gz.
File metadata
- Download URL: iflow_mcp_vladimir_kharin_1c_mcp-1.0.0.tar.gz
- Upload date:
- Size: 68.9 kB
- Tags: Source
- Uploaded using 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}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
7c6dae4737a3d81fb88a162de3e54b6235b09fe3a92c6ee10e4b6d570ffe8845
|
|
| MD5 |
53152d5752d82938979940e1c38ca870
|
|
| BLAKE2b-256 |
4084168d17e3eaccf35d911d8f28352428bd4c5263235e3ce38fe6715b3d442d
|
File details
Details for the file iflow_mcp_vladimir_kharin_1c_mcp-1.0.0-py3-none-any.whl.
File metadata
- Download URL: iflow_mcp_vladimir_kharin_1c_mcp-1.0.0-py3-none-any.whl
- Upload date:
- Size: 102.5 kB
- Tags: Python 3
- Uploaded using 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}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
22c9873d8374962c3b5f3779b5e285943d8ab7dfc5e7b610d86fec25f67181e8
|
|
| MD5 |
19f1300d1dc1fae95456f044572dc469
|
|
| BLAKE2b-256 |
dd012e96a4ad39f34742e18e98055b0b40df2ad207c4c9eeadeea14d4a1f8d82
|