Skip to main content

Разработка 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.

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)

Source distribution for iflow-mcp_vladimir-kharin-1c_mcp 1.0.0
File Size Uploaded
iflow_mcp_vladimir_kharin_1c_mcp-1.0.0.tar.gz 68.9 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for iflow-mcp_vladimir-kharin-1c_mcp 1.0.0
File Interpreter ABI Platform
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}

Release history Release notifications | RSS feed

This release

1.0.0 This release

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page