TS

mcp-1c-v1

by FSerg/mcp-1c-v1

2 views

MCP сервер с RAG описанием структуры конфигурации 1С

pythonsearchdockerAPI Integration

MCP сервер с RAG описанием структуры конфигурации 1С

Демонстрация запуска и использования на Youtube: Демонстрация запуска и использования MCP сервера для разработки 1С

Подробнее в статье.

Проект состоит из нескольких сервисов для работы с векторной базой данных на основе документации 1C:

  1. Embedding Service - сервис генерации векторных представлений
  2. ПолучитьТекстСтруктурыКонфигурацииФайлами.epf - обработка для выгрузки структуры конфигурации 1С
  3. Loader - веб-интерфейс для загрузки архива выгрузки из 1С в векторную БД Qdrant
  4. MCP Server - сервер для ответов на вопросы с использованием RAG

Новые возможности

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

MCP сервер теперь поддерживает мультивекторный поиск с использованием RRF (Reciprocal Rank Fusion):

  • Два векторных представления: object_name и friendly_name для каждого объекта
  • RRF алгоритм: автоматическое объединение результатов поиска по разным векторам
  • Улучшенная точность: более релевантные результаты поиска
  • Backward compatibility: возможность отключить мультивекторный поиск

📖 Подробнее о мультивекторном поиске

Быстрый запуск

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

chmod +x start.sh && chmod +x stop.sh
# Запуск всех сервисов
./start.sh

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

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

# Остановка всех сервисов
./stop.sh

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

Доступные сервисы

После запуска будут доступны:

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

mcp-1c-v1/
├── embeddings/           # Сервис генерации эмбеддингов
│   ├── Dockerfile
│   ├── embedding_service.py
│   ├── config.json
│   └── requirements.txt
├── loader/              # Веб-интерфейс для загрузки данных
│   ├── Dockerfile
│   ├── loader.py
│   ├── config.py
│   └── requirements.txt
├── mcp/                 # MCP 1С RAG сервер
│   ├── Dockerfile
│   ├── mcp_server.py
│   ├── config.py
│   └── requirements.txt
├── inspector/           # MCP Inspector
│   ├── Dockerfile
│   ├── mcp_server.py
│   ├── config.py
│   └── requirements.txt
├── ПолучитьТекстСтруктурыКонфигурацииФайлами.epf # Обработка для 1С для выгрузки структуры
├── docker-compose.yml  # Конфигурация всех сервисов
├── start.sh            # Скрипт запуска
└── stop.sh             # Скрипт остановки

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

  1. Запустите все сервисы: ./start.sh
  2. Выгрузите описание структуры конфигурации из 1С: ПолучитьТекстСтруктурыКонфигурацииФайлами.epf
  3. Откройте веб-интерфейс загрузчика: http://youraddress:8501
  4. Загрузите ZIP-архив с markdown файлами и файлом objects.csv
  5. Нажмите "Начать обработку"
  6. После загрузки данные будут доступны в Qdrant для поиска через MCP Server

Для агентов (Cursor, RooCode) поддерживающих современный протокол Streamable HTTP, указываем: http://youaddress:8000/mcp Для VSCode Copilot, хоть и заявлена поддержка Streamable HTTP, но у меня работает только как SSE, поэтому указывал: http://youraddress:8000/mcp/sse

Для VSCode Copilot .../YourProject/.vscode/mcp.json

{
    "servers": {
        "my-1c-mcp-server": {
            "headers": {
                "x-collection-name": "my_vector_collection"
            },
            "url": "http://youraddress:8000/mcp/sse"
        }
    }
}

Для Cursor .../YourProject/.cursor/mcp.json

{
    "servers": {
        "my-1c-mcp-server": {
            "headers": {
                "x-collection-name": "my_vector_collection"
            },
            "url": "http://youraddress:8000/mcp"
        }
    }
}

Через заголовок x-collection-name можно указать имя коллекции в Qdrant вместо дефолтного 1c_rag. Т.к. настройки MCP почти везде можно указывать на уровне проекта, то это позволяет один и тот же инстанс MCP сервера использовать для разных проектов с разными коллекциями (для разных конфигураций 1С).

Переменные окружения

Можно настроить через переменные окружения:

  • EMBEDDING_SERVICE_URL - URL сервиса эмбеддингов (по умолчанию: http://youraddress:5000)
  • QDRANT_HOST - хост Qdrant (по умолчанию: localhost)
  • QDRANT_PORT - порт Qdrant (по умолчанию: 6333)
  • COLLECTION_NAME - имя коллекции в Qdrant (по умолчанию: 1c_rag), который может быть переопределено в заголовке x-collection-name в настройках подключения MCP сервера
  • ROW_BATCH_SIZE - размер батча строк (по умолчанию: 250)
  • EMBEDDING_BATCH_SIZE - размер батча эмбеддингов (по умолчанию: 50)

Отладка

Для просмотра логов отдельного сервиса:

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

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

Install

No configuration available
For more configuration details, refer to the content on the left

Related

Related projects feature coming soon

Will recommend related projects based on sub-categories