Skip to main content
Glama

v8unpack-mcp

1C 바이너리 파일(.cf / .cfe / .epf / .erf)을 EDT 프로젝트로 가져오지 않고 전체 작업 주기를 처리하는 MCP 서버(stdio):

unpack → чтение/правка → repack → cleanup

유일한 압축 해제 지점은 unpack입니다. 다른 모든 도구는 dir_path — unpack이 생성한 디렉터리 — 를 받으며 암시적 압축 해제를 수행하지 않습니다.


기능

도구

시그니처

수행 작업

unpack

(file_path)

크기 제한 없이 별도의 임시 디렉터리로 전체 압축 해제, 경로 반환

list_objects

(dir_path)

컨테이너 내부 객체 목록 {객체_유형: [이름]} (이름만)

get_metadata

(dir_path, object_path="", detail=false)

메타데이터: 유형, 유형별 카운터, 객체(uuid, 동의어, 폼, 매크로, 모듈)

read_module

(dir_path, object_path="", module_name="")

객체의 BSL 모듈 소스(보호된 것은 encrypted로 표시)

read_bytecode

(dir_path, object_path="")

잠긴 모듈의 바이트코드 분석(메서드, 상수, opcode)

search_code

(dir_path, pattern, ...)

코드, 폼, 매크로에서 부분 문자열/regex 검색(layers 레이어)

set_help

(dir_path, object_path="", help_html="", overwrite=false)

객체 도움말을 raw 레이어에 기록(repack이 조립 수행)

diff

(dir_a, dir_b, full=true)

두 압축 해제 디렉터리를 객체별로 비교 + diff

repack

(dir_path, output_path)

압축 해제 디렉터리에서 파일 조립

cleanup

(dir_path=null, all=false)

unpack 디렉터리(또는 접두사 기준 전체) 삭제

디스크에서 .cf/.cfe/.epf/.erf 바이너리 검색 — 클라이언트의 표준 파일 도구(glob/list) 사용.

작업 주기

  1. unpack(file_path) → {status, dir, file, kind}. dir 디렉터리에는 다음이 포함됩니다:

    • 구성된 트리(유형/이름 + .json / .obj.bsl / 폼 / 매크로) — 코드, 폼, 매크로, 속성 읽기 및 편집;

    • raw 레이어 .v8unpack_raw/(brace 파일: text/image/help) — read_bytecode/set_help용.

  2. 읽기 — list_objects / get_metadata / read_module / read_bytecode / search_code; 편집 — dir의 파일(또는 set_help).

  3. repack(dir_path, output_path) → {status, output, bytes}.

  4. cleanup(dir_path)(또는 cleanup(all=true)).

오류(파일/디렉터리 없음, 잘못된 유형)는 예외로 처리됩니다. repack 후 디렉터리는 자동으로 삭제되지 않습니다 — 여러 번 빌드에 재사용할 수 있습니다.

repack 방식

repack은 v8unpack.build(use_raw=True)를 통해 조립합니다:

  • 구성화된 트리 수정 안 함 → raw-레이어가 바이트 단위로 복원됨(help, 바이트코드, 암호화된 모듈 보존);

  • 구성화된 트리 수정됨 → 구성화된 트리에서 재조립.

제한(all-or-nothing): 한 세션에서 구성화된 레이어(코드/폼) 또는 raw-레이어(help/바이트코드) 중 하나만 수정할 수 있습니다 — 둘 다는 불가. 객체별 병합은 별도 작업입니다.

search_code에서 검색하는 것

  • .bsl — 모듈 소스;

  • .json — 객체 헤더, 속성 및 폼 요소 트리;

  • .txt / .html — 텍스트 및 HTML 매크로;

  • .bin(SKD) — 데이터 구성 스키마: 바이너리 접두사 + 쿼리 텍스트가 포함된 XML.

layers 매개변수는 검색 영역을 제한합니다: modules(.bsl), forms(.json), templates_text(.txt), templates_html(.html), dcc(.bin-SKD). 비어 있음 = 전체. 각 일치 항목에는 layer 필드가 포함됩니다.

검색되지 않는 것(바이너리): .mxl(표 문서), 이미지, 역할(.c1brace), 암호화된 모듈. MXL 파서는 별도 연구 작업입니다(.ai/ 참조).

비교(diff)

diff(dir_a, dir_b, full=true)는 두 압축 해제 디렉터리를 객체별로 비교합니다:

  • 객체 디렉터리 나열(cf/cfe의 경우 유형/이름, epf/erf의 경우 루트);

  • 각 객체의 파일 수집(서비스 .id.json 제외);

  • 상태: changed / added / removed / unchanged;

  • 변경된 항목에 대해 unified diff 생성, 제한으로 잘림(MAX_DIFF_LINES=400, MAX_DIFF_FILES=20);

  • full=false — diff 없이 변경 사실만.


Related MCP server: 1C MCP Server

아키텍처

  • 압축 해제 코어 — saby v8unpack(Python, MIT). 벤더링되어 src/v8unpack/에 로컬 패치(keep_raw/use_raw, 8.3.24+용 detect_format, 알 수 없는 메타데이터 그룹에 대한 허용)와 함께 포함.

  • 자체 래퍼 — src/v8unpack_mcp: core.py(로직), textlayers.py(텍스트 레이어 추출), server.py(MCP 서버).

  • 압축 해제 — unpack 호출마다 별도의 임시 디렉터리 %TEMP%\v8unpack_unpack_*에 수행; 공통 캐시 없음(에이전트가 cleanup으로 수명 주기 관리).

  • MCP용으로 v8unpack의 multiprocessing(직렬 풀)을 비활성화하고 stdout/stderr를 무음 처리하여 stdio 프로토콜을 깨지 않게 함; OrganizerFile.pack/unpack은 .v8unpack_raw를 건너뜀.

v8unpack-mcp/
├── src/
│   ├── v8unpack/            # вендоренное ядро saby v8unpack (MIT) + патчи
│   └── v8unpack_mcp/
│       ├── __init__.py
│       ├── __main__.py     # python -m v8unpack_mcp
│       ├── core.py         # инструменты: unpack/чтение/правка/repack/cleanup
│       ├── textlayers.py   # извлечение текстовых слоёв (поиск)
│       ├── bytecode.py     # чтение байт-кода закрытых модулей (из raw-слоя)
│       ├── decompiler.py   # декомпилятор байт-кода → BSL
│       ├── diffing.py      # сравнение распакованных каталогов
│       └── server.py       # MCP-сервер (stdio)
├── tests/
│   ├── test_core.py
│   └── test_server_e2e.py
└── pyproject.toml

설치 및 실행

# MCP-сервер (вендоренное ядро v8unpack входит в пакет)
pip install -e .

# запуск (stdio)
python -m v8unpack_mcp
# или консольная команда
v8unpack-mcp

클라이언트 연결(MCP)

서버는 stdio로 작동합니다: 각 클라이언트가 단일 명령으로 별도 프로세스로 실행합니다. 모든 도구는 절대 경로를 받으므로 프로세스의 작업 디렉터리는 중요하지 않습니다. 압축 해제 임시 디렉터리는 시스템 %TEMP%에 v8unpack_unpack_ 접두사로 생성됩니다.

권장 실행 명령은 콘솔 스크립트 v8unpack-mcp(pip install 시 생성) 또는 python -m v8unpack_mcp입니다. PATH를 상속하지 않는 GUI 클라이언트의 경우 인터프리터의 절대 경로를 지정하는 것이 더 안전합니다.

표준 MCP 형식(command + args)

Claude Desktop, Claude Code, Cline, Continue, Roo, VS Code(.mcp.json) 등은 command와 args 필드가 있는 공통 형식을 사용합니다:

{
  "mcpServers": {
    "v8unpack": {
      "command": "v8unpack-mcp",
      "args": []
    }
  }
}

또는 명시적 인터프리터 사용:

{
  "mcpServers": {
    "v8unpack": {
      "command": "~/путь/к/python.exe",
      "args": ["-m", "v8unpack_mcp"]
    }
  }
}

배치 위치:

  • Claude Desktop — claude_desktop_config.json(설정 → 개발자 → 구성 편집);

  • Claude Code — ~/.claude.json 또는 프로젝트 .mcp.json;

  • Cline / Continue / Roo — 프로젝트 .mcp.json(참가자 간 공유) 또는 사용자 설정;

  • VS Code — .vscode/mcp.json(프로젝트 서버용) 또는 사용자 설정.

Kilo Code / Kilo CLI(kilo.json, 명령 — 배열)

Kilo 형식은 다릅니다: 서버는 kilo.json의 "mcp" 키 아래에 정의되고, 명령은 단일 배열로 전달됩니다(command+args로 분리하지 않음). 파일은 프로젝트 ./kilo.json / .kilo/kilo.json 또는 전역 ~/.config/kilo/kilo.json입니다.

// kilo.json (проект)
{
  "mcp": {
    "v8unpack": {
      "type": "local",
      "command": ["v8unpack-mcp"],
      "enabled": true,
      "timeout": 15000
    }
  }
}

또는 python -m 사용:

{
  "mcp": {
    "v8unpack": {
      "type": "local",
      "command": ["python", "-m", "v8unpack_mcp"],
      "enabled": true
    }
  }
}

서버는 TUI에서 /mcps 명령으로 켜고 끕니다. 상속된 서버는 비활성화할 수 있습니다: { "v8unpack": { "enabled": false } }.

서버 도구 권한은 v8unpack_* 키로 지정됩니다(glob, 위에서 아래로 마지막 일치가 적용):

{
  "permission": {
    "v8unpack_*": "allow"
  }
}

여러 클라이언트에 대한 권장 사항

  • 설치: 한 번 pip install -e .(개발용) 또는 pip install dist/v8unpack_mcp-0.2.0-py3-none-any.whl(빌드된 휠에서); v8unpack 의존성은 pyproject.toml에서 자동으로 가져옵니다.

  • 단일 인터프리터: 콘솔 명령 v8unpack-mcp(설치 PATH에 포함) 또는 모든 구성에서 동일한 python.exe 절대 경로를 사용 — 그러면 모든 클라이언트가 동일한 설치를 사용합니다.

  • 클라이언트 독립성: 각 클라이언트는 자체 stdio 프로세스를 유지합니다; 공유 상태는 디스크의 unpack 임시 디렉터리뿐입니다. 동일한 서버를 여러 클라이언트에 동시에 연결해도 안전합니다.

  • 공백/키릴 문자가 있는 경로: JSON 구성에서 경로를 따옴표로 묶으세요; command 배열(Kilo)에서는 요소가 자동으로 이스케이프됩니다.

  • 조용한 시작: 서버는 압축 해제 진행률을 무음 처리하고 stdio로만 작동합니다 — 구성에 대화형 출력을 추가할 필요가 없습니다.

빌드

pip install build wheel          # инструменты сборки
python -m build                  # создаст dist/v8unpack_mcp-<ver>-py3-none-any.whl и .tar.gz
pip install dist/v8unpack_mcp-0.2.0-py3-none-any.whl   # установка из колеса

테스트

python tests/test_core.py          # юнит-смоук ядра
python tests/test_server_e2e.py    # end-to-end через stdio

테스트는 ../testdata의 파일을 사용합니다(개인 파일, git에 포함되지 않음 — 직접 넣으세요).


제한 사항

  • 큰 .cf(수백 MB — GB): unpack은 별도 디렉터리에 전체 추출을 수행합니다. 객체별 인덱스(전체 추출 없이 단일 객체 읽기)는 다음 단계입니다.

  • 표 매크로(.mxl)는 아직 검색되지 않음 — 바이너리 형식, 파서는 TODO.

  • 보호된(암호화된) 모듈: 비밀번호 없이 소스를 복원할 수 없지만 read_bytecode는 컴파일된 바이트코드를 분석하고 decompiler.py는 이를 BSL로 디컴파일할 수 있습니다(decompile 도구는 계획 중).

  • 구성화된 레이어와 raw-레이어(help/바이트코드)의 수정은 한 세션에서 병합되지 않습니다(all-or-nothing use_raw).

차용 구성 요소

프로젝트는 커뮤니티의 오픈 개발을 재사용합니다:

구성 요소

라이선스

용도

링크

saby v8unpack

MIT(Copyright 2015 infactum)

1C 컨테이너 압축 해제/조립 코어 — 벤더되어 src/v8unpack/에 패치 포함

https://github.com/saby-integration/v8unpack

EvilBeaver/v8asm

MIT

1C 바이트코드 스택 형식 및 opcode 테이블

https://github.com/EvilBeaver/v8asm

1C-inversion

명시적 라이선스 없음(교육용, v8asm 포크)

바이트코드 → BSL 디컴파일 알고리즘

https://github.com/ProhorP/1C-inversion

saby v8unpack는 src/v8unpack/로 패키지에 포함됩니다(MIT 라이선스는 src/v8unpack/LICENSE에 보존). decompiler.py는 1C-inversion 알고리즘의 포트입니다; bytecode.py는 v8asm 형식을 사용합니다.

⚠️ 법적 고지. DISCLAIMER.md 및 LICENSE 참조:

  • 프로젝트는 MIT 라이선스로 "있는 그대로" 배포되며 보증 없음 — 사용은 본인 책임입니다.

  • "1C:Enterprise 8" 라이선스는 비공식 도구로 제품의 코드/데이터를 수정하거나 시스템의 소프트웨어 부분을 디컴파일하는 것을 금지합니다. 이 제한은 플랫폼과 표준 1C 구성을 보호합니다; 자체 구성, 확장, 외부 처리/보고서에는 적용되지 않습니다 — 자신의 객체로만 작업하세요.

  • 잠긴(비밀번호로 보호된) 모듈의 디컴파일은 연구 목적으로 구현되었으며, 타인 구성의 해킹이나 보호 해제에 사용해서는 안 됩니다(러시아 연방 형법 제146조). 자신의 모듈 복원에만 사용하세요.

유용한 링크

Available Tools

20 tools
cleanupA

Удалить временный каталог unpack. dir_path — один каталог; all=true — удалить все каталоги unpack (по префиксу в temp)

ParametersJSON Schema
NameRequiredDescriptionDefault
allNo
dir_pathNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.6/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full behavioral burden. It discloses that the tool deletes temporary unpack directories and explains the two deletion modes, but it does not warn about irreversibility, whether deletion is recursive, or the potential risk of `all=true` deleting more than intended.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is short, front-loaded, and contains no filler. Every sentence adds meaningful information about what is deleted and how the two parameters control behavior.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given that this is a destructive action with no annotations, the description covers the core behavior and parameter semantics but omitsuseful context such as when to use it after unpack/repack, what the output schema reports, and whether deletion is permanent. An output schema exists, so return values need not be described in detail, but usage context and safety caveats would improve completeness.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must compensate. It does: `dir_path` is explained as a single directory, and `all=true` means delete all unpack directories by prefix in temp. This adds meaningful semantics beyond the bare schema properties, though it could clarify the exact prefix matching rules.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb 'Удалить' (delete) and the resource 'временный каталог unpack' (temporary unpack directory), and it distinguishes the two modes: deleting a single directory vs. deleting all unpack directories via `all=true`. It is easy for an agent to understand what the tool does, though it does not explicitly contrast it with sibling tools.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives per-parameter usage guidance: `dir_path` targets one directory, and `all=true` targets all unpack directories by prefix. However, it does not state when cleanup should be invoked relative to unpack/repack operations, nor does it mention any conditions or alternatives.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

diffA

Сравнить два распакованных каталога (результат unpack) пообъектно. По содержимому (построчный diff): .mxl (декодируется структурно), .json, .obj.bsl, XML форм. По байтам (только факт изменения, помечается binary=true): зашифрованные .obj.bin, СКД .bin, картинки. full=false — только факт изменения без диффа

ParametersJSON Schema
NameRequiredDescriptionDefault
fullNo
dir_aYes
dir_bYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.7/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full burden and does so thoroughly: it explains content-based line-by-line diffing for structured formats, byte-level change detection for binary formats, and the meaning of full=false. It also discloses the binary=true marker behavior without any contradiction.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two dense sentences cover scope, file-type routing, comparison modes, and flag semantics with zero filler. The main purpose is front-loaded, followed by structured technical details.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Despite no annotations, the description provides enough behavioral detail for an agent to invoke diff correctly: input requirements, file-category behavior, and the effect of the only optional parameter. The presence of an output schema covers return-value expectations.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 0%, so the description compensates by explaining the full parameter's behavior explicitly. It identifies dir_a and dir_b as the two unpacked directories, though it does not clarify comparison direction/order semantics, which is a minor gap.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a precise verb and resource: compare two unpacked directories object-by-object. It enumerates the file types and comparison modes, so the tool's role is unmistakable and clearly distinguished from sibling tools like unpack/repack.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description makes clear this tool operates on two unpacked directories (the result of unpack), giving strong context for when to call it. It does not explicitly name alternatives or exclusions, but the usage context is unambiguous enough for agent selection.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

export_dcsA

Выгрузить СКД макета целиком в XML (штатный формат платформы: ). output_path — куда записать файл; не задан — XML возвращается в поле 'xml'. Только чтение

ParametersJSON Schema
NameRequiredDescriptionDefault
dir_pathYes
object_pathNo
output_pathNo
template_nameNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.5/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the transparency burden, and it states that the operation is read-only and defines the two output modes: writing to output_path or returning XML in the xml field. It does not cover error behavior or permission requirements, but the main side-effect profile is disclosed.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two short sentences: the first establishes the primary action and format, the second covers the conditional output behavior. There is no filler or redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Despite clear purpose and a useful output-mode note, the description is incomplete for a four-parameter tool with zero schema descriptions. The required dir_path parameter and the object_path/template_name parameters remain undefined, so the agent lacks enough information to call the tool reliably.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the text must explain the parameters. It only clarifies output_path; the required dir_path and the optional object_path and template_name are left with only their generic titles. An agent cannot confidently construct a valid invocation without extra context.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description names a specific verb and resource: export the entire SCD layout to XML in the standard platform format. The word 'целиком' and the explicit format make the tool's scope clear and help distinguish it from related read/import siblings.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives no guidance on when to prefer this tool over siblings such as read_dcs, import_dcs, or read_template, and no exclusions or alternative conditions. The only secondary sentence explains output_path behavior, which is parameter semantics rather than use-case guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_helpA

Прочитать справочную информацию (help) объекта из raw-слоя каталога unpack. object_path пуст для внешней обработки/отчёта, 'Тип/Имя' для конфигурации/расширения. mode='check' — только факт наличия справки; mode='get' — ещё и текст (HTML) + языки

ParametersJSON Schema
NameRequiredDescriptionDefault
modeNoget
dir_pathYes
object_pathNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the behavioral burden. It discloses that mode='check' only verifies help existence while mode='get' returns HTML text and languages, and explains object_path semantics. It does not cover error conditions or permissions, but the read-only nature is implied well enough for this tool.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single dense sentence with no filler. It front-loads the core action, then efficiently covers mode semantics and object_path rules. Every clause contributes useful information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the output schema exists and the tool is relatively simple, the description covers the key behavioral distinctions and path rules. The main gap is not explaining dir_path in detail or mentioning relationship to sibling tools, but the essential calling context is present.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must compensate. It explains mode values and object_path rules well, but the required dir_path parameter is not explicitly described beyond the overall catalog context. This is meaningful partial compensation, not complete.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb ('read') and resource ('help info of an object from the raw layer of the unpack catalog'). It is distinct from set_help by orientation, but it does not explicitly compare itself to sibling tools, so it falls just short of full differentiation.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives clear usage context for the mode parameter ('check' vs 'get') and for object_path (empty for external processing/reports, 'Type/Name' for config/extension). It does not explicitly mention when not to use this tool or name alternatives like set_help, so no exclusions are provided.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_metadataA

Метаданные распакованного каталога. Без object_path — сводка (вид, счётчики по типам). С object_path='Тип/Имя' — метаданные объекта (имя, синоним, uuid, формы, макеты, модули). detail=true — полный список по типам

ParametersJSON Schema
NameRequiredDescriptionDefault
detailNo
dir_pathYes
object_pathNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.6/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden of behavioral disclosure. It clearly explains that output changes depending on object_path and detail, and it lists the kinds of metadata returned. It does not explicitly state read-only behavior or error conditions for missing/unpacked directories, but the core behavior is competently disclosed.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is compact and front-loaded: it states the resource first, then gives two conditional behaviors and a modifier. Every sentence contributes useful information, with no filler or repetition.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's moderate complexity, the presence of an output schema, and the detailed parameter explanations, the description is complete for selecting and invoking the tool. An agent knows what to expect for each combination of object_path and detail without needing to open the schema.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must compensate, and it does. It explains object_path with a concrete format ('Тип/Имя'), explains the effect of detail=true, and the required dir_path is naturally tied to the 'unpacked catalog' resource. Every parameter gains meaning beyond the raw schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool returns metadata for an unpacked catalog and distinguishes the two main use cases: a summary when object_path is absent and per-object metadata when it is provided. This makes it easy for an agent to understand what resource and operation the tool targets, and to separate it from siblings like list_objects or read_module.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives clear conditional usage guidance: use with object_path for a specific object, without it for a summary, and with detail=true for a full type-by-type list. It does not explicitly mention when not to use this tool or name alternatives, so it is one step below fully explicit usage routing.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_module_structureB

Структура BSL-модуля: объявления переменных (Перем), процедуры и функции (имя, вид, Экспорт, директивы, докстринг, параметры, start/end строки) и секция основной программы (код после процедур). object_path — путь к объекту, module_name — подстрока имени файла модуля

ParametersJSON Schema
NameRequiredDescriptionDefault
dir_pathYes
module_nameNo
object_pathNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the burden of explaining what the tool does. It discloses the returned structural elements in good detail, but does not mention behavior such as whether it is read-only, how it filters or traverses the directory, or how it handles missing objects.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is compact and information-dense, listing concrete output elements and parameter meanings without fluff. It is slightly run-on, but every part contributes to understanding the tool.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description covers the tool's output shape and two of three parameters, and an output schema exists to further clarify return values. However, it omits the meaning of the required dir_path parameter and provides no usage context relative to sibling tools.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must compensate. It explains object_path and module_name, but the only required parameter, dir_path, is not explained at all. This is a significant gap for the required input.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly identifies the tool's purpose: it returns the structural decomposition of a BSL module, including variables, procedures/functions, and the main program section. It is detailed enough to distinguish this from sibling tools like read_module or search_code, though it lacks an explicit verb such as 'returns' or 'gets'.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no explicit guidance on when to use this tool versus alternatives like read_module, search_code, or get_metadata. The content implies structural introspection, but the description does not state conditions or exclusions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

import_dcsB

Загрузить СКД макета целиком из XML (штатный формат платформы). Источник: template_path (файл) или xml_text (строка). Пишет в raw-слой; сборку выполняет repack

ParametersJSON Schema
NameRequiredDescriptionDefault
dir_pathYes
xml_textNo
object_pathNo
template_nameNo
template_pathNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.2/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the behavioral burden. It does disclose the side effect (writes to raw layer) and the downstream repack step, which is useful. However, it omits overwrite behavior, idempotence, validation behavior, error handling, or any access/permission implications.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is compact and front-loaded: it opens with the main action, then specifies the two source formats, then states the target layer and downstream step. Every sentence contributes information without repetition or filler.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The tool has 5 parameters, no annotations, and 0% schema coverage, so the description needs to be far more complete. It fails to explain the required dir_path parameter, the roles of object_path and template_name, or any edge-case behavior. The output schema may cover return values, but the calling contract is still incomplete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must compensate, but it only partially does so. It clarifies that template_path is a file and xml_text is a string, but it completely ignores the required dir_path parameter and provides no meaning for object_path or template_name. The one required parameter is left undocumented.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states a specific action: loading an entire ACS layout (СКД макета) from XML in the standard platform format. It is unambiguous about the resource and source format, though it does not explicitly differentiate from sibling tools like import_template or read_dcs.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives useful pipeline context by noting that writing goes to the raw layer and assembly is performed by repack, implying this tool is the raw-import step. However, it does not explicitly say when to use this tool versus alternatives such as import_template or read_dcs, nor does it state when not to use it.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

import_templateA

Импортировать готовый .mxl (табличный документ) в макет объекта — замена содержимого существующего макета (template_name или единственный). Пишет в raw-слой; сборку делает repack

ParametersJSON Schema
NameRequiredDescriptionDefault
dir_pathYes
object_pathNo
template_nameNo
template_pathNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.9/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description must disclose behavior itself. It does: replacement of existing template content, writing to raw layer, and the need for repack. Missing details like error behavior or reversibility, but the key mutation and layering semantics are stated.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two compact sentences with no fluff. The primary action and the critical follow-up (repack) are both present and front-loaded.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a four-parameter tool with no annotations and 0% schema coverage, the description is insufficient for correct invocation: required dir_path is unexplained, and the roles of object_path and template_path are unclear. An output schema exists, so return values need no description, but input semantics are incomplete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description needs to explain parameters. It only hints at template_name ('template_name or the only one') and the .mxl input concept; dir_path, object_path, and template_path remain undefined. An agent cannot reliably map all inputs.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb (import) and resource (object template), with file format (.mxl) and semantics (replaces contents of an existing template). This clearly differentiates it from siblings like read_template (reading), import_dcs (different format), and repack (assembly).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly says the tool writes to the raw layer and that repack performs assembly, effectively instructing the agent to run repack afterward. It does not explicitly list exclusions vs alternatives, but the raw-layer/repack framing provides clear usage context.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

job_statusA

Статус фонового задания (unpack_async/repack_async): status=running|done|error, progress (число обработанных объектов), result (при status=done — как у unpack/repack), error (при status=error). Опрашивайте повторно, пока status!='done'

ParametersJSON Schema
NameRequiredDescriptionDefault
job_idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.5/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full behavioral burden and does well: it discloses status semantics, field availability per status, and that repeated polling is expected. The polling instruction inherently communicates that the operation is safe and side-effect-free.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single dense sentence conveys the tool's purpose, response fields, and polling behavior without redundancy. The semicolon-separated field list is compact and the polling instruction is placed at the end.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple status-check tool, the description fully covers response fields, status semantics, and the polling loop. The output schema exists, so return values need no further explanation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0% and the description does not explicitly document job_id; it only implies it is the identifier of the background job created by unpack_async/repack_async. This is inferable but not fully spelled out, and the description does not mention how the ID is obtained.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly identifies the tool as a status query for background jobs from unpack_async/repack_async, listing the possible status values and response fields. This verb+resource combination makes it distinct from the sibling tools.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It explicitly instructs polling until status != 'done', providing the core usage pattern, and scopes the tool to unpack_async/repack_async background jobs. It does not explicitly name alternatives or exclusions, but the context is clear enough for correct use.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_objectsA

Список объектов внутри распакованного контейнера: {вид_объекта: [имена]} (только имена; полные метаданные — get_metadata)

ParametersJSON Schema
NameRequiredDescriptionDefault
dir_pathYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.2/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden. It does disclose the output shape and that only names are returned, but it does not explicitly mention read-only behavior, failure modes for nonexistent paths, or whether listing is recursive/top-level. The name implies a read operation, but the description itself adds limited behavioral context beyond the result format.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single compact sentence that leads with the main result, states the output format, and adds the alternative tool. There is no redundant wording or filler.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given a single parameter and the presence of an output schema, the description is mostly complete. It covers result shape and the closest alternative. It could be more complete by explicitly stating the prerequisite of a successful unpack and a more exact definition of dir_path, but these are minor for this simple listing tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage for dir_path is 0%, so the description must compensate. It provides some context by tying the listing to an unpacked container, which suggests dir_path points to that container. However, it never explicitly names or defines dir_path, leaving the exact path semantics somewhat inferred.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific operation: list objects inside an unpacked container, and specifies the returned shape ({object_type: [names]}). It also distinguishes itself from get_metadata by explicitly noting that only names are returned while full metadata is handled by that sibling.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It gives clear context (operates on an unpacked container) and an explicit boundary: use this for names only, and use get_metadata for full metadata. This is sufficient to route an agent between this tool and its closest sibling.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

read_bytecodeB

Разобрать байт-код закрытого модуля (методы, константы, поток опкодов) из raw-слоя каталога unpack

ParametersJSON Schema
NameRequiredDescriptionDefault
dir_pathYes
object_pathNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full behavioral burden. It communicates that this is a parsing/read operation from a specific directory and names the output categories, but it does not explicitly state that the operation is non-mutating, what happens if the module is not closed or unpacked, or any permission/error behavior.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is one tightly packed sentence with no filler. It front-loads the purpose, then adds useful parenthetical detail about what the bytecode parsing yields. It is concise without sacrificing essential information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The output schema exists, so return-value documentation is already covered. However, the description leaves the object_path parameter unexplained and provides no usage boundary against sibling tools. For a low-complexity read operation this is mostly adequate, but the missing parameter semantics and usage guidance keep it from being complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must compensate for missing parameter documentation. It gives context for dir_path by mentioning the unpack directory, but it says nothing about object_path, which is optional and defaults to empty. An agent cannot infer whether object_path selects a module within the directory or is a path inside the bytecode bundle.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a specific verb 'Разобрать' (parse), names the resource (bytecode of a closed module), and specifies the source (raw layer of the unpack directory). It also enumerates the content of the parse result (methods, constants, opcode stream), which clearly distinguishes it from sibling tools like read_module or get_module_structure.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No explicit guidance is given about when to choose this tool over siblings such as read_module, list_objects, or get_module_structure. The phrase 'from raw-layer of unpack directory' implies a prior unpack step, but there is no direct 'use this when...' statement or exclusion of alternatives.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

read_dcsA

Прочитать схему компоновки данных (СКД) макета. Уровень 1 (без data_set/variant) — обзор: data_sets (имя/тип), parameters, variants (имя/представление). data_set='Имя' — текст запроса и список полей набора. variant='Имя' — сырой XML настроек варианта (как хранится в .bin). Только чтение

ParametersJSON Schema
NameRequiredDescriptionDefault
variantNo
data_setNo
dir_pathYes
object_pathNo
template_nameNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.5/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full behavioral burden. It explicitly states the operation is read-only and describes exactly what each mode returns: overview, query with fields, or raw variant XML as stored in .bin. This is strong transparency, though it does not address error behavior or prerequisites.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is compact and front-loaded: purpose first, then mode-specific behavior. Every sentence adds useful information, and the use of semicolons keeps the three modes scannable without unnecessary prose.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description provides good operational detail for the main read modes and an output schema exists to cover return shapes. However, the required parameter dir_path and two additional schema properties are left unexplained, and there is no guidance for choosing this tool among siblings, creating noticeable gaps.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must explain all parameters. It covers data_set and variant well, but does not explain the required dir_path parameter nor the additional object_path/template_name parameters that appear in the schema. This leaves significant parameter semantics undocumented.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool reads a data composition scheme (DCS) of a layout, and enumerates the three modes of operation. It does not explicitly distinguish itself from sibling tools such as read_template or export_dcs, so it misses the sibling-differentiation criterion for a 5.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies the tool is for read-only inspection and explains how data_set and variant influence the result. However, it does not say when to choose this tool over alternatives or mention any exclusions, so the guidance is implied rather than explicit.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

read_moduleA

Прочитать BSL-модуль объекта из распакованного каталога. object_path — путь к объекту ('' для корня epf/erf, 'CommonModule/Имя' для cf/cfe); module_name — подстрока имени файла модуля (пусто = список модулей объекта); ranges — список диапазонов строк вида 'start-end' (или 'N'), 1-based, суммарно не более 400 строк на пакет (пусто = весь модуль)

ParametersJSON Schema
NameRequiredDescriptionDefault
rangesNo
dir_pathYes
module_nameNo
object_pathNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the behavioral burden and does well: it discloses that ranges are 1-based, limited to 400 lines per batch, and that empty module_name/ranges have specific default meanings. It does not mention error behavior or permissions, but for a read operation this is acceptable.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single dense sentence that leads with purpose, then packs parameter semantics into semicolon-separated clauses. Every part earns its place and nothing is redundant.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the output schema exists, return-value details are not needed. The description covers path formats, defaults, and range constraints. The only notable omission is an explicit dir_path definition, but the tool name and 'from unpacked catalog' provide enough context for an agent to infer it.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must explain the parameters. It does explain object_path, module_name, and ranges with syntax and defaults, but it never explicitly names or defines the required dir_path parameter, only implying it through 'из распакованного каталога'. This is a meaningful gap.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description opens with a specific verb and resource: 'Прочитать BSL-модуль объекта из распакованного каталога'. This clearly identifies what the tool does and distinguishes it from siblings like read_bytecode and get_модуль_structure.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It gives clear context for when to use the tool (read a BSL module from an unpacked catalog) and provides concrete parameter conventions. It does not name sibling alternatives or exclusions, so it misses the top score.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

read_templateA

Прочитать табличный документ (MXL) макета в структурированном виде. Декодирует MOXCEL в дерево: возвращает канонический текст structure и список текстовых значений strings. Только чтение

ParametersJSON Schema
NameRequiredDescriptionDefault
dir_pathYes
object_pathNo
template_nameNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.6/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description must carry the behavioral burden. It states 'only read' and describes the output format (structure + strings), which is good. However, it doesn't disclose details like whether it follows references, handles large files, or any error behavior. The 'read only' tag adds safety context.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is concise and front-loaded with the main action ('read tabular document'), then provides output details. It's part Russian, part English, which slightly reduces clarity, but it's appropriately sized and not bloated.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The tool reads a template and returns structure+strings, but given no annotations and no parameter descriptions, an agent might not know how to fill object_path or template_name correctly. Since only dir_path is required, that's a clue, but still, the description gives no prerequisites or examples. It's adequate but with clear gaps.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%—the schema gives only field names, types, and defaults, no descriptions. The description does not explain the parameters at all. With 0% coverage, the description should compensate but doesn't, so the baseline 3 for high coverage doesn't apply; however, the needed parameter info is absent, so 3 is appropriate as a neutral score.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description explicitly states it reads a tabular document (MXL) of a template into structured form, decodes MOXCEL into a tree, and returns canonical text structure and list of string values. This is a specific verb+resource and clearly distinguishes it as a read operation.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage—it's a read-only decode operation returning structure and strings—but does not explicitly mention alternatives or when to use it vs other tools. Since sibling names aren't provided, there's no way to give exclusions, but it still lacks explicit 'when to use' guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

repackA

Собрать файл 1С из распакованного каталога (результат unpack) в целевой файл

ParametersJSON Schema
NameRequiredDescriptionDefault
dir_pathYes
output_pathYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.7/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden. It states the basic operation (create a file from a directory) but does not disclose whether the output file is overwritten, whether the operation is blocking, what happens on invalid input, or any side effects. For a write-like operation, this is a significant gap.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

One dense sentence holds all essential information: the action, source, destination, and the dependency on unpack. No filler words, no redundant restatement of the tool name, and the key relationship is placed early.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With an output schema present, return values need no explanation. The two parameters are semantically covered, and the unpack dependency is stated. However, for a tool that likely creates files, the absence of behavior notes (overwrite, async/sync, error conditions) makes it only minimally complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must compensate. It maps dir_path to 'unpacked catalog' and output_path to 'target file', giving both parameters concrete meaning that the bare schema lacks. It stops short of explaining path formats or constraints, but the mapping is explicit and useful.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a specific verb ('assemble'), names the resource ('1C file'), and states the source ('unpacked directory') and destination ('target file'). It also explicitly ties the input to the 'unpack' result, which distinguishes it from the other tools in the sibling list.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The phrase 'result of unpack' clearly implies this tool is used after unpacking, giving workflow context. However, it does not explicitly mention alternatives such as repack_async, nor does it state when to prefer the synchronous over the asynchronous variant.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

repack_asyncA

АСИНХРОННАЯ сборка файла 1С из распакованного каталога. Запускает работу в фоновом задании и СРАЗУ возвращает {job_id, status:'running'}. Результат получите через job_status (status='done', поле result)

ParametersJSON Schema
NameRequiredDescriptionDefault
dir_pathYes
output_pathYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.8/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full behavioral disclosure burden. It discloses the key behaviors: execution in a background job, immediate return of `{job_id, status:'running'}`, and result retrieval via `job_status` with `status='done'`. It does not cover error conditions or side effects, but the core async contract is clearly exposed.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two compact sentences deliver the purpose, the async behavior, the immediate response shape, and the follow-up retrieval mechanism. Every sentence earns its place, and the key behavioral constraint is front-loaded.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple two-parameter async tool with no output schema and no annotations, the description covers the essential invocation flow: input directory, target output, immediate job id, and polling via `job_status`. It omits failure modes and edge cases, but is largely sufficient for correct invocation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema has 0% description coverage, so the description must compensate. It adds context by mapping `dir_path` to the unpacked directory and implying `output_path` is the target 1C file, but it does not specify path formats, constraints, or whether these should be file or directory paths.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the specific operation ('сборка файла 1С из распакованного каталога') and the asynchronous execution model, distinguishing it from a synchronous repack tool. However, it does not explicitly name the sibling `repack` as the alternative, so it stops short of full sibling differentiation.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage for asynchronous repack and explicitly instructs the agent to retrieve the result via `job_status`, which is helpful. It does not state when to use this async variant versus the synchronous `repack`, nor when not to use it, leaving the selection guidance implicit.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

search_codeA

Поиск подстроки/regex по текстовым слоям распакованного каталога. layers: modules, forms, templates_text, templates_html, dcc (пусто = все). scope (для СКД, слой dcc): 'query' (по умолчанию, только тексты запросов) или 'all' (весь XML СКД). Каждое совпадение содержит поле layer

ParametersJSON Schema
NameRequiredDescriptionDefault
regexNo
scopeNoquery
layersNo
patternYes
dir_pathYes
max_resultsNo
case_sensitiveNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.6/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full burden of behavioral disclosure. It usefully reveals that each match contains a layer field and explains scope behavior for SKD, but it does not mention side effects, required prior unpacking, max_results truncation, or error behavior.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The descripion is compact: three short, information-dense sentences, front-loaded with the primary purpose. It avoids fluff, though the telegraphic parameter notes could be slightly better structured for readability.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a 7-parameter tool with no annotations, the description adequately covers the central search semantics and the most nuanced parameters, but leaves gaps around result limiting, case sensitivity, and regex selection. The presence of an output schema reduces the need to document return values, so the overall completeness is acceptable but not thorough.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must compensate. It does a good job explaining the most complex parameters (layers values and empty=all; scope with query/all), while other parameters like pattern, dir_path, max_results, and case_sensitive are reasonably inferable from their names and defaults. The regex toggle is implied by 'подстроки/regex' but not explicitly mapped to the regex parameter.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific action ('Поиск подстроки/regex') applied to a concrete resource ('текстовым слоям распакованного каталога'). This clearly distinguishes search_code from sibling read/list tools, since it scans across text layers and returns matches tagged with the layer.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides clear context for when the tool is relevant—searching substring/regex patterns across unpacked catalog text layers—and gives parameter-level usage notes for layers and scope. However, it never explicitly states when to prefer this tool over alternatives like read_module or list_objects, nor does it mention exclusions or prerequisites.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

set_helpA

Записать справочную информацию (help) объекта в raw-слой каталога unpack (сборку делает repack). object_path пуст для внешней обработки/отчёта, 'Тип/Имя' для конфигурации/расширения. overwrite=false — существующую справку не перезаписывать

ParametersJSON Schema
NameRequiredDescriptionDefault
dir_pathYes
help_htmlNo
overwriteNo
object_pathNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the disclosure burden. It explains that the write goes to the raw layer, that repack performs the build, and that overwrite=false preserves existing help. It does not mention permissions or return values, but the main side effects and the overwrite semantics are disclosed.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is compact and front-loaded with the operative behavior. Every clause adds information: what is written, where it is written, who builds, and how the two key parameters behave. No filler or repetition.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description covers the main behavior, the repack relationship, and the two non-obvious parameter semantics. Since an output schema exists, return-value details are not required here. The only minor gap is the lack of explicit definitions for dir_path and help_html, but both are inferable from context.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema has no parameter descriptions, so the description must compensate. It explicitly explains object_path (empty vs 'Type/Name') and overwrite (false means don't overwrite). However, the required dir_path is only implied by 'каталог unpack' and help_html is not directly described, leaving partial coverage.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb ('Записать' = write), the resource ('справочную информацию (help) объекта'), and the target ('raw-слой каталога unpack'). It also distinguishes itself from repack by noting that repack performs the build.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It gives concrete usage context: object_path is empty for external processing/reports and 'Type/Name' for configuration/extension, and it notes that repack does the build. There is no explicit when-not-to-use or named alternative, but the context is enough to guide invocation.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

unpackA

Полная распаковка файла 1С (.cf/.cfe/.epf/.erf) в отдельный временный каталог (без лимита размера, любые объекты). Первый шаг любого цикла. Возвращает путь к каталогу (организованное дерево + raw-слой .v8unpack_raw)

ParametersJSON Schema
NameRequiredDescriptionDefault
file_pathYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full burden of behavioral disclosure. It explains that unpacking is complete, has no size limits, handles any objects, writes to a separate temporary directory, and returns a path with both an organized tree and a raw .v8unpack_raw layer. It does not cover temporary directory cleanup or lifecycle, but it discloses the key side effects and output structure.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, information-dense sentence with no filler. Every clause contributes: the operation, supported formats, scope, temporary location, workflow position, and return value. It is front-loaded with the core purpose.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description is sufficient for invoking the tool correctly: it identifies the input file types, what the unpack does, and what it returns. The presence of an output schema covers further return details, and the workflow hint links it to the tool family. A minor gap is the lack of explicit guidance on how the returned temporary directory interacts with the cleanup tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must compensate for the file_path parameter. It does so by specifying the supported 1C file extensions and clarifying that the parameter refers to a file to be fully unpacked. For a single simple path parameter, this adds meaningful context beyond the bare schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb ('распаковка'), resource ('файла 1С'), and supported file extensions (.cf/.cfe/.epf/.erf), making the tool's function immediately clear. It also distinguishes itself from repack and other siblings by positioning itself as the first step in any cycle and by describing its full unpacking behavior.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The phrase 'Первый шаг любого цикла' gives clear workflow context: this tool should be used before other operations on 1C files. It does not explicitly mention alternatives such as unpack_async or cleanup, but it implies the normal sequence well enough for an agent to make a reasonable choice.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

unpack_asyncA

АСИНХРОННАЯ распаковка крупного файла 1С. Запускает работу в фоновом задании и СРАЗУ возвращает {job_id, status:'running'} — не ждёт завершения, поэтому не срывается таймаутом клиента. Опрашивайте статус через job_status, пока status!='done'; в result будет тот же результат, что у unpack

ParametersJSON Schema
NameRequiredDescriptionDefault
file_pathYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.7/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden. It clearly discloses background-job execution, immediate {job_id, status:'running'} return, timeout avoidance, and the polling contract—exactly the behavioral traits an agent needs.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three sentences, front-loaded with the async nature and immediate return behavior, then giving polling instructions. Every sentence earns its place without repetition or fluff.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a single-parameter tool with an output schema existing, the description covers the complete invocation cycle: start the job, receive as job handle, poll with job_status, and receive the same result as unpack. No essential guidance is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The only parameter is file_path and the schema has 0% description coverage. The description compensates only indirectly by referring to 'unpacking a large 1C file'; it does not explicitly define file_path, path format, or constraints. The parameter name is self-explanatory enough to prevent confusion, but no extra semantics are added.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb ('unpack'), the resource ('large 1C file'), and the asynchronous behavior that distinguishes it from the sync sibling 'unpack'. The immediate-return job semantics make the tool's function unmistakable.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly says to poll via job_status until status!='done' and notes the result will match 'unpack'. This gives the agent a clear usage path and an implicit alternative (use sync unpack when file is small or timeout is not a concern).

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 20 tool updatesv0.2.0
    • First observedcleanup
    • First observeddiff
    • First observedexport_dcs
    • First observedget_help
    • First observedget_metadata
    • First observedget_module_structure
    • First observedimport_dcs
    • First observedimport_template
    • First observedjob_status
    • First observedlist_objects
    • First observedread_bytecode
    • First observedread_dcs
    • First observedread_module
    • First observedread_template
    • First observedrepack
    • First observedrepack_async
    • First observedsearch_code
    • First observedset_help
    • First observedunpack
    • First observedunpack_async

TDQS

A3.7/5.0

Scored across 20 tools

Disambiguation5/5

Each tool targets a clearly distinct operation: unpack/repack lifecycle with async wrappers and job_status, object enumeration vs metadata, module source vs structure vs bytecode, help/template/DCS read/write variants, search, diff, and cleanup. Even read_dcs and export_dcs are differentiated by granularity (structured exploration vs full platform XML export). No two tools appear to perform the same job.

Naming Consistency4/5

Most tools follow a verb_noun snake_case pattern (list_objects, get_metadata, read_module, import_template, export_dcs), and async variants consistently use the <verb>_async suffix. Minor deviations include bare verbs like unpack, repack, diff, cleanup, the noun-style job_status, and an arbitrary read/get split among extraction tools. Overall the naming is still predictable and readable.

Tool Count4/5

At 20 tools, the server is on the upper boundary for tool count, but the 1C unpack/repack domain is complex enough to justify dedicated tools for async operations, module analysis, bytecode, help, templates, DCS, diff, and cleanup. A few closely related tools (read_dcs/export_dcs) could potentially be merged, but none feel like filler.

Completeness4/5

The toolset covers the full lifecycle: unpack (sync/async), inspection (list, metadata, modules, bytecode, search), modification (help, template, DCS imports into raw layer), repack (sync/async), diff, and cleanup. Minor gaps exist—no direct tool for writing arbitrary module code or forms—but editing the unpacked directory externally and repacking is a viable workaround.

Maintenance

ActivityMaintained
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    A
    maintenance
    MCP server providing tools for interacting with 1С:Напарник AI, including asking questions, syntax explanation, code review, and documentation search. Also serves as a web chat interface and OpenAI-compatible API gateway.
    105
    AGPL 3.0
  • F
    license
    Not graded
    quality
    D
    maintenance
    Acts as a bridge between AI agents (Claude, Cursor) and 1C:Enterprise databases, enabling metadata retrieval, configuration analysis, and code generation through natural language using the MCP protocol.
    -
  • F
    license
    Not graded
    quality
    B
    maintenance
    MCP server for searching and analyzing 1C enterprise metadata and BSL code using a SQLite backend. Enables querying configuration structure, code routines, and performing compliance checks via natural language.
    -