mcp1c_metadata

smirnov0ser/mcp1c_metadata

3.3

If you are the rightful owner of mcp1c_metadata and would like to certify it and/or have it hosted online, please leave a comment on the right or send an email to henry@mcphub.com.

The Model Context Protocol (MCP) server is designed to provide configuration metadata to AI agents, facilitating their interaction with various environments.

НазначСниС

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