Skip to main content

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), предоставляемые вашим сервером. Таким образом, контекст для решения задачи собирается автоматически.

Компоненты проекта

  1. src/1c_ext/ - Расширение 1С: Ядро решения. Реализует MCP-сервер и инструменты.
  2. 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С на веб-сервере. Прокси поддерживает два режима: работа от имени одного фиксированного пользователя или "проброс" аутентификации каждого пользователя под его собственными учетными данными.
  • Настройка и запуск прокси:

Вариант 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) для заготовленных шаблонов сообщений.

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

Лицензия

MIT License

Поддержка и развитие

Проект активно развивается. Вопросы и предложения по улучшению приветствуются через Issues.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

iflow_mcp_vladimir_kharin_1c_mcp-1.0.0.tar.gz (68.9 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

iflow_mcp_vladimir_kharin_1c_mcp-1.0.0-py3-none-any.whl (102.5 kB view details)

Uploaded Python 3

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

Hashes for iflow_mcp_vladimir_kharin_1c_mcp-1.0.0.tar.gz
Algorithm Hash digest
SHA256 7c6dae4737a3d81fb88a162de3e54b6235b09fe3a92c6ee10e4b6d570ffe8845
MD5 53152d5752d82938979940e1c38ca870
BLAKE2b-256 4084168d17e3eaccf35d911d8f28352428bd4c5263235e3ce38fe6715b3d442d

See more details on using hashes here.

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

Hashes for iflow_mcp_vladimir_kharin_1c_mcp-1.0.0-py3-none-any.whl
Algorithm Hash digest
SHA256 22c9873d8374962c3b5f3779b5e285943d8ab7dfc5e7b610d86fec25f67181e8
MD5 19f1300d1dc1fae95456f044572dc469
BLAKE2b-256 dd012e96a4ad39f34742e18e98055b0b40df2ad207c4c9eeadeea14d4a1f8d82

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page