MCP server for searching 1C configuration metadata
Project description
Назначение
Сервис MCP для поиска по метаданным конфигураций 1С (JSON). Подходит, когда ИИ/агенту нужно быстро найти объекты по имени/синониму, например: состав реквизитов, полные имена объектов, связи и т.п.
Где используется
- ИИ-агенты в браузере (расширение MCP SuperAssistant)
- ИИ-агенты в IDE (Cursor, Void и др.)
Сервис разворачивается в Docker или локально (pip/venv).
Быстрый старт (Docker)
PowerShell (Windows):
docker run --rm -it `
-p 8007:8000 `
-v "C:\ERP\Report":/app/metadata_src `
-v "C:\ERP\Report\dist":/app/metadata_dist `
-v "C:\ERP\Report\logs":/app/logs `
-e MCP_PORT=8000 -e MCP_PATH=/mcp `
smirnov0ser/mcp1c_metadata:latest
Минимально достаточно пробросить только metadata_src. Папки metadata_dist и logs можно не монтировать — они будут созданы в контейнере.
Пояснения:
- Внешний порт: 8007 — ваш порт на хосте; контейнер слушает 8000
- metadata_src: каталог с JSON-метаданными конфигураций 1С, полученные обработкой ВыгрузитьМетаданныевJson.epf
- metadata_dist: артефакты компиляции (индекс конфигураций)
- logs: файлы логов сервиса
Пример без дополнительных томов:
docker run --rm -it -p 8007:8000 -v "C:\ERP\Report":/app/metadata_src smirnov0ser/mcp1c_metadata:latest
Локальный запуск (без Docker)
Требуется Python 3.12+.
python -m venv venv
.\venv\\Scripts\\Activate.ps1
python -m pip install -r .\requirements.txt
$env:INPUT_METADATA_DIR = "C:\ERP\Report"
$env:MCP_HOST = "0.0.0.0"
$env:MCP_PORT = "8000"
$env:MCP_PATH = "/mcp"
python .\app\src\main.py
Переменные окружения
- INPUT_METADATA_DIR: путь к исходным JSON с метаданными (по умолчанию
/app/metadata_src) - DIST_METADATA_DIR: путь для артефактов/индексов (по умолчанию
/app/metadata_dist) - MCP_HOST: хост MCP-сервера (по умолчанию
0.0.0.0) - MCP_PORT: порт MCP-сервера (по умолчанию
8000) - MCP_PATH: URL-путь MCP (по умолчанию
/mcp) - USE_SSE:
true|false— транспортsseилиstreamable-http(по умолчаниюfalse→streamable-http) - Логи:
- LOG_LEVEL:
DEBUG|INFO|WARNING|ERROR(по умолчаниюINFO) - LOG_TO_FILE:
true|false(по умолчаниюtrue) - LOG_DIR: каталог логов (по умолчанию
/app/logs) - LOG_ROTATION:
size|daily(по умолчаниюsize) - LOG_MAX_BYTES: размер файла для size-ротации (по умолчанию 10 МБ)
- LOG_BACKUP_COUNT: число резервных файлов (по умолчанию 5)
- LOG_LEVEL:
Метаданные: структура каталогов
- Входные JSON:
INPUT_METADATA_DIR(по умолчанию/app/metadata_src) - Индекс конфигураций: сохраняется в
DIST_METADATA_DIR/metadata_configs_index.json
Поддерживается несколько конфигураций одновременно (несколько JSON-файлов). Сервис строит краткий индекс для быстрых подсказок и поиска.
Инструменты MCP
- metadatasearch(query, find_usages=False, limit=5, config=None)
- query: строка запроса. Рекомендуется полное имя, например
Справочники.Номенклатура - find_usages: зарезервировано под поиск использований (пока не используется)
- limit: ограничение результатов (по умолчанию 5)
- config: выбор конфигурации. Можно указать базовое имя файла без расширения, имя файла с расширением, или значения полей
Имя/Синонимиз индекса
- query: строка запроса. Рекомендуется полное имя, например
Особенности:
- Типы автоматически нормализуются к единственному числу:
Документы.*→Документ.*, суффиксСсылкаобрезается - Если конфигураций несколько и
configне указан, вернётся подсказка со списком доступных
Примеры запросов:
query = "Документы.Счет"
query = "Справочники.Номенклатура"
query = "РегистрСведений.НастройкиПользователя"
Инструкции для ИИ-агентов
Рекомендуемый промпт-инструктаж:
If you use configuration metadata, check its existence and structure using 'metadatasearch'.
Use the full name in service, for example 'Справочники.Номенклатура'. Set limit 1 for the first call.
Use find_usages = true only if you need to find where an object is used.
Пример mcp.json (Cursor/SuperAssistant):
{
"mcpServers": {
"mcp1c_metadata": {
"url": "http://localhost:8007/mcp",
"connection_id": "mcp1c_metadata_001"
}
}
}
Сборка и запуск своего образа
Сборка:
cd C:\mcp1c_metadata
docker build -t mcp1c_metadata:latest .
Запуск собственного образа:
docker run --rm -it -p 8007:8000 -v "C:\ERP\Report":/app/metadata_src mcp1c_metadata:latest
При необходимости используйте тот же синтаксис монтирования
metadata_distиlogs.
Примечания
- На Windows пути с пробелами заключайте в кавычки:
"C:\\Path With Spaces" - Изображение по умолчанию использует Python 3.12-slim; сервер MCP запускается командой
python src/main.py
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file iflow_mcp_smirnov0ser_mcp1c_metadata-0.1.0.tar.gz.
File metadata
- Download URL: iflow_mcp_smirnov0ser_mcp1c_metadata-0.1.0.tar.gz
- Upload date:
- Size: 14.2 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.10.2 {"installer":{"name":"uv","version":"0.10.2","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Debian GNU/Linux","version":"13","id":"trixie","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
b019a121bfb9518ccc77a8441ec2319fb8c5efd2d14f1232efc5d288373248c2
|
|
| MD5 |
ce4cda617f41af6397220d19f204e3fb
|
|
| BLAKE2b-256 |
4a0a0e840c3c81e1396a76c20b90635cdadd0e6d2d3b6d1d92f8bb58e7f6e9c0
|
File details
Details for the file iflow_mcp_smirnov0ser_mcp1c_metadata-0.1.0-py3-none-any.whl.
File metadata
- Download URL: iflow_mcp_smirnov0ser_mcp1c_metadata-0.1.0-py3-none-any.whl
- Upload date:
- Size: 16.3 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.10.2 {"installer":{"name":"uv","version":"0.10.2","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Debian GNU/Linux","version":"13","id":"trixie","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
30e6884268ab5b2a61b09aaa56b1b74206f593b04ef1814a81a9abfc9d075e19
|
|
| MD5 |
ffd0ae00baba1ad08647d65e42fc5622
|
|
| BLAKE2b-256 |
68e85a285a9ba8cae04985c456e2f2a986e9fcff91b06f268a080145dc55c0c9
|