Onec Platform Help MCP Server
Provides a RAG-based search system for 1C:Enterprise platform documentation using hybrid BM25 and semantic search across multiple versions. It enables developers to retrieve API signatures, methods, and usage examples directly within IDEs or through a REST API.
README
Onec Platform Help MCP Server
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/
<details> <summary>Где найти файлы справки?</summary>
Путь к платформе:
- Windows:
C:\Program Files\1cv8\<версия>\bin\ - Linux:
/opt/1cv8/<версия>/bin/
Нужные файлы:
shcntx_ru.hbk— справка на русском языке (обязательно)shcntx_root.hbk— корневая справка (обязательно)
Имя каталога (8.3.26, 8.3.24) должно соответствовать версии платформы.
</details>
2. Запустите сервер
docker compose up -d
Проверьте статус:
curl http://localhost:9063/health
# {"status":"healthy", "service":"MCP 1C Help Server", ...}
<details> <summary>Запуск в GPU-режиме (опционально)</summary>
Если есть NVIDIA GPU и Docker с NVIDIA Runtime:
docker compose -f docker-compose.yml -f docker-compose.gpu.yml up -d
Подробнее: DEPLOYMENT.md </details>
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
🔧 Часто встречающиеся вопросы
<details> <summary><b>Поиск ничего не находит</b></summary>
Проверьте индексацию:
💬 "Покажи список проиндексированных версий"
Если версии нет, выполните индексацию:
💬 "Вызови manage_platform_help с action='index' и version='8.3.26'"
</details>
<details> <summary><b>Ошибка "expected dim: 768, got 384"</b></summary>
Коллекция создана под другую модель. Переиндексируйте:
docker compose down
rm -rf data/qdrant-storage
docker compose up -d
# Затем выполните индексацию в Cursor
</details>
<details> <summary><b>Сервис не запускается</b></summary>
Проверьте логи:
docker compose logs onec-help-mcp
docker compose ps # все контейнеры должны быть "Up"
Проверьте здоровье сервисов:
curl http://localhost:9063/health
curl http://localhost:8014/health
</details>
Больше решений: 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 для полного текста лицензии.
📞 Поддержка
Возникли проблемы?
- Проверьте TROUBLESHOOTING.md
- Посмотрите логи:
docker compose logs onec-help-mcp - Создайте Issue в GitHub
Контакты:
- GitHub Issues: создать issue
- GitHub Discussions: обсуждения
<div align="center">
Сделано с ❤️ для сообщества 1С
Если проект полезен, поставьте ⭐ на GitHub!
⭐ Star • 🐛 Report Bug • 💡 Request Feature
</div>
推荐服务器
Baidu Map
百度地图核心API现已全面兼容MCP协议,是国内首家兼容MCP协议的地图服务商。
Playwright MCP Server
一个模型上下文协议服务器,它使大型语言模型能够通过结构化的可访问性快照与网页进行交互,而无需视觉模型或屏幕截图。
Magic Component Platform (MCP)
一个由人工智能驱动的工具,可以从自然语言描述生成现代化的用户界面组件,并与流行的集成开发环境(IDE)集成,从而简化用户界面开发流程。
Audiense Insights MCP Server
通过模型上下文协议启用与 Audiense Insights 账户的交互,从而促进营销洞察和受众数据的提取和分析,包括人口统计信息、行为和影响者互动。
VeyraX
一个单一的 MCP 工具,连接你所有喜爱的工具:Gmail、日历以及其他 40 多个工具。
graphlit-mcp-server
模型上下文协议 (MCP) 服务器实现了 MCP 客户端与 Graphlit 服务之间的集成。 除了网络爬取之外,还可以将任何内容(从 Slack 到 Gmail 再到播客订阅源)导入到 Graphlit 项目中,然后从 MCP 客户端检索相关内容。
Kagi MCP Server
一个 MCP 服务器,集成了 Kagi 搜索功能和 Claude AI,使 Claude 能够在回答需要最新信息的问题时执行实时网络搜索。
e2b-mcp-server
使用 MCP 通过 e2b 运行代码。
Neon MCP Server
用于与 Neon 管理 API 和数据库交互的 MCP 服务器
Exa MCP Server
模型上下文协议(MCP)服务器允许像 Claude 这样的 AI 助手使用 Exa AI 搜索 API 进行网络搜索。这种设置允许 AI 模型以安全和受控的方式获取实时的网络信息。