Skip to main content
Glama

1C RAG MCP — RAG-сервер для документации 1С

Статья на Infostart YouTube Demo Docker

MCP-сервер для работы с документацией конфигураций 1С Предприятие 8 с использованием RAG (Retrieval-Augmented Generation) и векторной базы данных Qdrant.


📋 Содержание


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

🔍 Поиск с использованием RAG

  • Мультивекторный поиск с RRF (Reciprocal Rank Fusion)

  • Два векторных представления: object_name и friendly_name

  • Автоматическое ранжирование по релевантности

  • Фильтрация по типам объектов

🛠️ 5 MCP-инструментов

  • Поиск объектов конфигурации

  • Информация о коллекции

  • Список типов объектов

  • Список коллекций Qdrant

  • Расширенная диагностика

🚀 Оптимизация ресурсов

  • Кэширование эмбеддингов (LRU cache)

  • HTTP connection pooling

  • Лимиты памяти для Docker-контейнеров

  • torch.no_grad() для экономии RAM


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

Запуск всех сервисов

# Сделать скрипты исполняемыми (Linux/Mac)
chmod +x start.sh stop.sh

# Запуск
./start.sh

# Или вручную
docker-compose up --build

Остановка сервисов

# Остановка
./stop.sh

# Или вручную
docker-compose down

Запуск в режиме production (без inspector)

docker-compose up -d

Запуск в режиме разработки (с inspector)

docker-compose --profile dev up -d

🛠️ Инструменты MCP

MCP-сервер предоставляет 5 инструментов для работы с документацией 1С:

Инструмент

Описание

Пример

search_1c_documentation

Поиск объектов по запросу

query="Справочник Номенклатура", object_type="Справочник"

get_collection_info

Информация о коллекции

collection_name="1c_rag"

get_object_types

Список типов объектов

list_collections

Все коллекции Qdrant

health_check_detailed

Диагностика компонентов

📖 Полная документация по инструментам →


🏗️ Архитектура

┌─────────────────────────────────────────────────────────────┐
│                     1C RAG MCP                              │
├─────────────────────────────────────────────────────────────┤
│                                                             │
│  ┌──────────────┐     ┌──────────────┐     ┌────────────┐ │
│  │   1С         │────▶│   Loader     │────▶│  Qdrant    │ │
│  │   EPF        │     │  (Streamlit) │     │  (Vector)  │ │
│  └──────────────┘     └──────────────┘     └────────────┘ │
│                            │                    ▲          │
│                            │                    │          │
│                            ▼                    │          │
│                     ┌──────────────┐            │          │
│                     │  Embedding   │────────────┘          │
│                     │   Service    │                       │
│                     └──────────────┘                       │
│                            │                                │
│                            ▼                                │
│                     ┌──────────────┐                       │
│                     │  MCP Server  │◀──── MCP Clients      │
│                     │   (RAG)      │    (Cursor, VSCode)   │
│                     └──────────────┘                       │
│                                                             │
└─────────────────────────────────────────────────────────────┘

Компоненты

Компонент

Порт

Назначение

Qdrant

6333, 6334

Векторная база данных

Embedding Service

5000

Генерация векторных представлений

Loader

8501

Веб-интерфейс загрузки данных

MCP Server

8001

RAG-сервер для MCP-клиентов

MCP Inspector

6274, 6277

Инструмент отладки (dev)


📦 Установка и настройка

Требования

  • Docker и Docker Compose

  • 4 GB RAM (минимум), 8 GB RAM (рекомендуется)

  • 10 GB свободного места на диске

Настройка через переменные окружения

Создайте файл .env в корневой директории:

# Qdrant
QDRANT_HOST=localhost
QDRANT_PORT=6333
COLLECTION_NAME=1c_rag

# Embedding Service
EMBEDDING_SERVICE_URL=http://localhost:5000

# MCP Server
SERVER_PORT=8001
TRANSPORT_TYPE=streamable-http

# Loader
ROW_BATCH_SIZE=100
EMBEDDING_BATCH_SIZE=32

💡 Использование

1. Запустите сервисы

./start.sh

2. Выгрузите данные из 1С

Используйте обработку ПолучитьТекстСтруктурыКонфигурацииФайлами.epf для выгрузки структуры конфигурации.

3. Загрузите данные в Qdrant

Откройте http://localhost:8501 и загрузите ZIP-архив с markdown-файлами и objects.csv.

4. Подключите MCP-клиент

VSCode Copilot (.vscode/mcp.json)

{
  "servers": {
    "my-1c-mcp-server": {
      "headers": {
        "x-collection-name": "1c_rag"
      },
      "url": "http://localhost:8001/mcp/sse"
    }
  }
}

Cursor (.cursor/mcp.json)

{
  "servers": {
    "my-1c-mcp-server": {
      "headers": {
        "x-collection-name": "1c_rag"
      },
      "url": "http://localhost:8001/mcp"
    }
  }
}

Claude Desktop (claude_desktop_config.json)

{
  "mcpServers": {
    "1c-rag": {
      "command": "docker",
      "args": ["run", "-i", "--rm", "-e", "COLLECTION_NAME=1c_rag", "mcp-1c-server"]
    }
  }
}

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

Файл

Описание

mcp/TOOLS.md

Полное описание MCP-инструментов

mcp/MULTIVECTOR_SEARCH.md

Мультивекторный поиск с RRF

OPTIMIZATION.md

Оптимизация потребления ресурсов

article/article.md

Статья для Infostart


⚡ Оптимизация

Потребление ресурсов (после оптимизации)

Ресурс

До

После

Экономия

RAM

2.6-4.4 GB

1.8-3.0 GB

~35%

CPU

45-65%

35-50%

~25%

Контейнеры

6

5

-1

Ключевые оптимизации

  • ✅ Лимиты памяти для Docker-контейнеров

  • ✅ Кэширование эмбеддингов (LRU, 1000 запросов)

  • ✅ HTTP Session pooling

  • ✅ torch.no_grad() в embedding-сервисе

  • ✅ Уменьшенные батчи загрузки (100/32)

📖 Полное руководство по оптимизации →


🔧 Отладка

Просмотр логов

# Логи конкретного сервиса
docker-compose logs -f mcp-server
docker-compose logs -f embedding-service
docker-compose logs -f loader

# Логи всех сервисов
docker-compose logs -f

Проверка здоровья

# Через MCP-инструмент
health_check_detailed()

# Через HTTP
curl http://localhost:8001/health

Мониторинг ресурсов

# Потребление памяти контейнерами
docker stats --no-stream

📁 Структура проекта

1c-rag-mcp/
├── embeddings/              # Сервис эмбеддингов
│   ├── Dockerfile
│   ├── embedding_service.py
│   ├── config.json
│   └── requirements.txt
├── loader/                  # Загрузчик данных
│   ├── Dockerfile
│   ├── loader.py
│   ├── config.py
│   └── requirements.txt
├── mcp/                     # MCP-сервер
│   ├── Dockerfile
│   ├── mcp_server.py
│   ├── config.py
│   ├── TOOLS.md
│   └── MULTIVECTOR_SEARCH.md
├── common/                  # Общие модули
│   ├── __init__.py
│   ├── config.py
│   └── exceptions.py
├── inspector/               # MCP Inspector (dev)
├── article/                 # Статья и материалы
├── docs/                    # Документация
├── docker-compose.yml       # Конфигурация Docker
├── start.sh, stop.sh        # Скрипты управления
├── ПолучитьТекст...epf      # Обработка 1С
├── README.md                # Главная документация
└── OPTIMIZATION.md          # Оптимизация ресурсов

│ └── exceptions.py ├── inspector/ # MCP Inspector (dev) ├── article/ # Статья и материалы ├── docker-compose.yml # Конфигурация Docker ├── start.sh, stop.sh # Скрипты управления ├── ПолучитьТекст...epf # Обработка 1С ├── README.md # Этот файл ├── OPTIMIZATION.md # Оптимизация └── .gitignore


---

## 🔗 Ссылки

- [Статья на Infostart](https://infostart.ru/1c/articles/2605838)
- [Видео на YouTube](http://www.youtube.com/watch?v=74kYcK6bvGk)
- [MCP Protocol](https://modelcontextprotocol.io/)
- [Qdrant Documentation](https://qdrant.tech/documentation/)

---

## 📝 Changelog

### v1.2.0 (2026-03)
- ✅ Добавлены 4 новых MCP-инструмента
- ✅ Оптимизация потребления ресурсов (-35% RAM)
- ✅ Кэширование эмбеддингов
- ✅ HTTP connection pooling
- ✅ Улучшена документация

### v1.1.0
- ✅ Мультивекторный поиск с RRF
- ✅ Поддержка streamable-http транспорта
- ✅ MCP Inspector в Docker

### v1.0.0
- ✅ Базовый RAG-поиск
- ✅ Интеграция с Qdrant
- ✅ Загрузчик данных (Streamlit)

---

## 📄 Лицензия

MIT License — см. файл [LICENSE](LICENSE)

---

## 👥 Авторы

- [FSerg](https://github.com/FSerg)

---

**1C RAG MCP** — RAG-сервер для работы с документацией 1С Предприятие 8

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/royfincher25-source/1c-rag-mcp'

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