Skip to main content

Назначение

Сервис 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)

Метаданные: структура каталогов

  • Входные 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: выбор конфигурации. Можно указать базовое имя файла без расширения, имя файла с расширением, или значения полей Имя/Синоним из индекса

Особенности:

  • Типы автоматически нормализуются к единственному числу: Документы.* → Документ.*, суффикс Ссылка обрезается
  • Если конфигураций несколько и 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

Metadata

Release files for iflow-mcp_smirnov0ser-mcp1c_metadata 0.1.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for iflow-mcp_smirnov0ser-mcp1c_metadata 0.1.0
File Size Uploaded
iflow_mcp_smirnov0ser_mcp1c_metadata-0.1.0.tar.gz 14.2 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for iflow-mcp_smirnov0ser-mcp1c_metadata 0.1.0
File Interpreter ABI Platform
iflow_mcp_smirnov0ser_mcp1c_metadata-0.1.0-py3-none-any.whl Python 3 none any Details

Total release size: 30.5 kB

Release files / iflow_mcp_smirnov0ser_mcp1c_metadata-0.1.0.tar.gz

Download URL iflow_mcp_smirnov0ser_mcp1c_metadata-0.1.0.tar.gz
Size 14.2 kB
Tags Source
SHA-256 checksum
How to use checksums
b019a121bfb9518ccc77a8441ec2319fb8c5efd2d14f1232efc5d288373248c2
BLAKE2b-256 checksum
How to use checksums
4a0a0e840c3c81e1396a76c20b90635cdadd0e6d2d3b6d1d92f8bb58e7f6e9c0
Upload date
Uploaded using Trusted Publishing?
What is 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}

Release files / iflow_mcp_smirnov0ser_mcp1c_metadata-0.1.0-py3-none-any.whl

Download URL iflow_mcp_smirnov0ser_mcp1c_metadata-0.1.0-py3-none-any.whl
Size 16.3 kB
Tags Python 3
SHA-256 checksum
How to use checksums
30e6884268ab5b2a61b09aaa56b1b74206f593b04ef1814a81a9abfc9d075e19
BLAKE2b-256 checksum
How to use checksums
68e85a285a9ba8cae04985c456e2f2a986e9fcff91b06f268a080145dc55c0c9
Upload date
Uploaded using Trusted Publishing?
What is 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}

Release history Release notifications | RSS feed

This release

0.1.0 This release

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page