smirnov0ser/mcp1c_metadata
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)
- 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