Skip to main content
Glama
rzateev

Onec Platform Help MCP Server

by rzateev

Onec Platform Help MCP Server

GitHub License Docker Python MCP

MCP сервер с RAG-поиском по официальной справке платформы 1C:Enterprise (через MCP и REST API)

Предоставляет набор MCP tools и REST API для гибридного поиска (BM25 + семантика) по справке платформы 1С. Работает с любым MCP-клиентом (Cursor IDE, Claude Desktop) или через HTTP запросы.

Что это даёт: вместо переключения в браузер, AI-ассистент в вашей IDE получает контекст из справки 1С и отвечает на вопросы типа "Как создать документ?" или "Покажи метод Запрос.Выполнить" с точными данными из нужной версии платформы.

💡 Примеры использования

Вариант 1: Точный поиск API элемента (когда LLM знает что искать)

💬 Вы: "Покажи метод HTTPСоединение.ОтправитьДляОбработки"
🤖 AI: [использует search_1c_platform_api → get_1c_platform_element]

📋 HTTPСоединение.ОтправитьДляОбработки(HTTPЗапрос, ИмяВыходногоФайла)

   Отправляет HTTP-запрос серверу асинхронно для обработки в фоновом режиме.

   Параметры:
   • HTTPЗапрос (HTTPЗапрос) — объект с параметрами запроса [обязательный]
   • ИмяВыходногоФайла (Строка) — имя файла для сохранения ответа [необязательный]

   Возвращает: HTTPОтвет

Вариант 2: Семантический поиск (общий вопрос)

💬 Вы: "Как отправить асинхронный HTTP запрос?"
🤖 AI: [использует search_1c_help → search_1c_platform_api → get_1c_platform_element]

📋 Найдено: HTTPСоединение.ОтправитьДляОбработки

   Для асинхронной отправки HTTP-запроса используйте метод ОтправитьДляОбработки()
   объекта HTTPСоединение. Позволяет не блокировать выполнение кода...

Дополнительный пример: семантика по HTTP-группе методов

💬 Вы: "Как отправить данные для обработки HTTP запросом в 1С?"
🤖 AI: [использует search_1c_help]

📋 Найдено по смыслу:
   • HTTPСоединение.ПолучитьЗаголовкиАсинх — HEAD-запрос (асинхронно)
   • HTTPЗапрос — тип описания HTTP-запроса
   • HTTPСоединение.ПолучитьАсинх — GET-запрос (асинхронно)
   • HTTPСоединение.Получить — GET-запрос
   • HTTPСоединение.ЗаписатьАсинх — PUT-запрос (асинхронно)

💬 Вы: "Покажи сигнатуру HTTPСоединение.ОтправитьДляОбработки"
🤖 AI: [использует search_1c_platform_api → get_1c_platform_element]
📋 HTTPСоединение.ОтправитьДляОбработки(HTTPЗапрос, ИмяВыходногоФайла)

Через REST API:

# Точный поиск
curl -X POST http://localhost:9063/api/platform/element \
  -H "Content-Type: application/json" \
  -d '{"element_name": "ОтправитьДляОбработки", "parent_type": "HTTPСоединение"}'

# Семантический поиск
curl -X POST http://localhost:9063/api/search \
  -H "Content-Type: application/json" \
  -d '{"query": "как отправить асинхронный HTTP запрос", "limit": 5}'

✨ Возможности

  • 🔍 Гибридный поиск — точные совпадения (BM25) + семантический поиск понимают ваш вопрос на русском/английском

  • 📚 Поддержка версий — работа с несколькими версиями платформы одновременно (8.3.24, 8.3.26...)

  • 🎯 Структурированный API — поиск функций, методов, свойств, типов с сигнатурами и примерами

  • 🌐 Два способа доступа — MCP protocol для IDE или REST API для scripts/skills

  • Встроенные сервисы — Qdrant и embedding-сервис из коробки, не требует внешних зависимостей

  • 🐳 Docker-ready — один docker compose up для запуска всего стека

  • 🎮 Режимы CPU/GPU — быстрая индексация на GPU или экономичная на CPU


🚀 Быстрый старт

Требования

  • Docker и Docker Compose

  • Cursor IDE (или другой MCP клиент)

  • Файлы справки 1С (shcntx_ru.hbk и shcntx_root.hbk из установки платформы)

Установка за 3 шага

0. Клонируйте репозиторий

git clone https://github.com/rzateev/onec-help-mcp.git
cd onec-help-mcp

1. Подготовьте файлы справки

Скопируйте файлы из установки 1С в каталог проекта:

# Windows: обычно C:\Program Files\1cv8\8.3.26.XXXX\bin\
# Linux: /opt/1cv8/x86_64/8.3.26.XXXX/bin/

mkdir -p data/help1c/8.3.26
# Скопируйте shcntx_ru.hbk и shcntx_root.hbk в data/help1c/8.3.26/

Путь к платформе:

  • Windows: C:\Program Files\1cv8\<версия>\bin\

  • Linux: /opt/1cv8/<версия>/bin/

Нужные файлы:

  • shcntx_ru.hbk — справка на русском языке (обязательно)

  • shcntx_root.hbk — корневая справка (обязательно)

Имя каталога (8.3.26, 8.3.24) должно соответствовать версии платформы.

2. Запустите сервер

docker compose up -d

Проверьте статус:

curl http://localhost:9063/health
# {"status":"healthy", "service":"MCP 1C Help Server", ...}

Если есть NVIDIA GPU и Docker с NVIDIA Runtime:

docker compose -f docker-compose.yml -f docker-compose.gpu.yml up -d

Подробнее: DEPLOYMENT.md

3. Настройте Cursor IDE

Добавьте в ~/.cursor/mcp.json (Windows: C:\Users\<имя>\.cursor\mcp.json):

{
  "mcpServers": {
    "onec-platform-help": {
      "url": "http://localhost:9063/mcp",
      "timeout": 60
    }
  }
}

Перезапустите Cursor или перезагрузите окно (Ctrl+Shift+P → Reload Window).

Первое использование

Индексация (один раз для каждой версии):

В чате Cursor напишите:

Вызови тул manage_platform_help с action="index" и version="8.3.26"

Индексация займёт 5-15 минут (CPU) или 2-5 минут (GPU).

Готово! Теперь спрашивайте:

"Как создать HTTP-запрос?"
"Покажи метод Запрос.Выполнить"
"Найди функцию СтрДлина"
"Что такое СправочникОбъект?"

AI автоматически использует инструменты поиска по справке.


🛠️ Доступные MCP инструменты

Инструмент

Описание

search_1c_help

Поиск по всей справке (естественные запросы)

search_1c_platform_api

Поиск API элементов (функции, методы, свойства, типы)

get_1c_platform_element

Полная карточка элемента с сигнатурой и примерами

get_1c_platform_type_members

Список методов/свойств типа (напр., HTTPЗапрос, Массив)

manage_platform_help

Управление версиями: индексация, список версий, настройки

📖 Подробное описание всех инструментов: TOOLS.md

🌐 REST API (альтернатива MCP)

Все MCP инструменты доступны через HTTP REST API для использования без MCP сессии:

# Поиск в справке
curl -X POST http://localhost:9063/api/search \
  -H "Content-Type: application/json" \
  -d '{"query": "HTTPЗапрос", "limit": 5}'

# Поиск API элементов
curl -X POST http://localhost:9063/api/platform/search \
  -H "Content-Type: application/json" \
  -d '{"query": "HTTPСоединение", "element_type": "type"}'

Применение:

  • ✅ Claude Code skills без MCP

  • ✅ Интеграция с другими сервисами

  • ✅ Тестирование и отладка

  • ✅ Скрипты автоматизации

📖 Полная документация REST API: REST_API.md


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

  • TOOLS.md — детальное описание MCP инструментов, параметров, примеров

  • REST_API.md — HTTP REST API для доступа без MCP сессии

  • DEPLOYMENT.md — развёртывание (CPU/GPU режимы), настройка, переменные окружения

  • ARCHITECTURE.md — архитектура проекта, гибридный поиск, парсинг HBK

  • TROUBLESHOOTING.md — решение проблем, FAQ


🔧 Часто встречающиеся вопросы

Проверьте индексацию:

💬 "Покажи список проиндексированных версий"

Если версии нет, выполните индексацию:

💬 "Вызови manage_platform_help с action='index' и version='8.3.26'"

Коллекция создана под другую модель. Переиндексируйте:

docker compose down
rm -rf data/qdrant-storage
docker compose up -d
# Затем выполните индексацию в Cursor

Проверьте логи:

docker compose logs onec-help-mcp
docker compose ps  # все контейнеры должны быть "Up"

Проверьте здоровье сервисов:

curl http://localhost:9063/health
curl http://localhost:8014/health

Больше решений: TROUBLESHOOTING.md


🏗️ Как это работает

graph LR
    A[Cursor IDE] -->|MCP| B[MCP Server]
    B -->|Запрос| C[Hybrid Search]
    C -->|Dense| D[Embedding Service]
    C -->|Sparse BM25| D
    C -->|Векторы| E[Qdrant]
    E -->|Результаты| B
    B -->|Ответ| A

    F[HBK файлы] -->|Парсинг| G[Indexer]
    G -->|Эмбеддинги| D
    G -->|Хранение| E

Гибридный поиск:

  • BM25 (sparse) — точные совпадения ключевых слов ("Запрос.Выполнить")

  • Semantic (dense) — понимание смысла ("как выполнить SQL запрос")

  • RRF Fusion — объединение лучших результатов из обоих методов

Версионирование: Каждая версия — отдельная коллекция Qdrant (1c_help_8_3_26). Независимые индексы, параллельная работа.

🔍 Подробнее: ARCHITECTURE.md


🐳 Docker конфигурация

services:
  onec-help-mcp:        # MCP сервер (порт 9063)
  onec-help-embedding:  # Embedding сервис (порт 8014)
  onec-help-qdrant:     # Vector DB (порт 6347)

Полезные команды:

docker compose up -d              # Запуск
docker compose down               # Остановка
docker compose logs -f            # Логи
docker compose restart            # Перезапуск
curl localhost:9063/health        # Health check

📄 Лицензия

MIT License — с указанием авторства Roman Zateev

Copyright (c) 2025-2026 Roman Zateev

См. файл LICENSE для полного текста лицензии.


📞 Поддержка

Возникли проблемы?

  1. Проверьте TROUBLESHOOTING.md

  2. Посмотрите логи: docker compose logs onec-help-mcp

  3. Создайте Issue в GitHub

Контакты:


Сделано с ❤️ для сообщества 1С

Если проект полезен, поставьте ⭐ на GitHub!

⭐ Star🐛 Report Bug💡 Request Feature

-
security - not tested
A
license - permissive license
-
quality - not tested

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/rzateev/onec-help-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server