MCP сервер с RAG описанием структуры конфигурации 1С
Демонстрация запуска и использования на Youtube:
Проект состоит из нескольких сервисов для работы с векторной базой данных на основе документации 1C:
MCP сервер теперь поддерживает мультивекторный поиск с использованием RRF (Reciprocal Rank Fusion):
object_name
и friendly_name
для каждого объекта📖 Подробнее о мультивекторном поиске
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 # Скрипт остановки
./start.sh
ПолучитьТекстСтруктурыКонфигурацииФайлами.epf
Для агентов (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
No configuration available
Related projects feature coming soon
Will recommend related projects based on sub-categories