Skip to main content

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 (по умолчанию falsestreamable-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

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

iflow_mcp_smirnov0ser_mcp1c_metadata-0.1.0.tar.gz (14.2 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

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

Hashes for iflow_mcp_smirnov0ser_mcp1c_metadata-0.1.0.tar.gz
Algorithm Hash digest
SHA256 b019a121bfb9518ccc77a8441ec2319fb8c5efd2d14f1232efc5d288373248c2
MD5 ce4cda617f41af6397220d19f204e3fb
BLAKE2b-256 4a0a0e840c3c81e1396a76c20b90635cdadd0e6d2d3b6d1d92f8bb58e7f6e9c0

See more details on using hashes here.

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

Hashes for iflow_mcp_smirnov0ser_mcp1c_metadata-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 30e6884268ab5b2a61b09aaa56b1b74206f593b04ef1814a81a9abfc9d075e19
MD5 ffd0ae00baba1ad08647d65e42fc5622
BLAKE2b-256 68e85a285a9ba8cae04985c456e2f2a986e9fcff91b06f268a080145dc55c0c9

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page