1C binary unpack/repack MCP

v8unpack-mcp

An MCP server for the full unpack-edit-repack cycle on .cf, .cfe, .epf, .erf files without an EDT import, with granular rebuilds and closed-module decompilation

  • 8 ★ on the repository
  • Last commit
  • MIT
MCP server

Broad access

Why this level

  • Decompiles closed modules from bytecode, which the platform license only permits for your own objects
  • repack overwrites the configuration or processing binary based on the unpacked and edited directory
All reasons and checks
Russian stack

sergeyfedyakov/v8unpack-mcp

Install

Manual install

pip install -e .

Install from source; the vendored v8unpack core is included in the package.

Access and checks

How we review

Broad accessThe tool can change data, run commands or handle secrets.

  • Decompiles closed modules from bytecode, which the platform license only permits for your own objects
  • repack overwrites the configuration or processing binary based on the unpacked and edited directory

This is third-party code. Review the repository files before installing.

What it does

The server unpacks a 1C binary file into a temporary directory with an organized object tree and a parallel raw layer, provides tools for reading metadata, BSL modules, closed-module bytecode and searching code, forms and templates, then repacks the file. Repack itself picks the build path: byte-for-byte copying from the raw layer if the tree wasn't edited, granular rebuilding of only the touched objects if part was edited, or a full build from the tree. A separate four-step cycle finds closed modules, detects whether they're obfuscated, and decompiles the bytecode to BSL for analysis, though the decompiled result isn't guaranteed to compile in the platform. For large files there are async unpack_async and repack_async variants with job_status, so as not to hit the MCP client's timeout.

Who it is for. For 1C developers who need to quickly read or make a targeted edit to a binary .cf, .cfe, .epf or .erf file without a full EDT project import.

Good fit when

  • You want to quickly look inside a .cf or .epf file without exporting it to an EDT project
  • You need to make a targeted fix to one object in a large configuration and rebuild the file as fast as possible
  • You need to compare two 1C binaries object by object and see a unified diff of what changed

Not a fit when

  • The forms are 8.2-era managed forms (internal layout version 25-28): the README states their elements are not parsed or rebuilt at all
  • The configuration is in the 8.0/8.1 format (version-2 objects): the container reads but object decoding fails
  • You want to break protection on someone else's configuration: the README and DISCLAIMER explicitly restrict decompilation to your own objects

Example request

Unpack C:\1C\MyExt.cfe, find the Settings form module and show its source

MCP

Transport
stdio
Authentication
not required

Limitations

The 1C:Enterprise 8 platform license forbids modifying the product's code and data by non-standard means and decompiling the system's software part; this restriction protects the platform and standard configurations, not the author's own configurations, extensions and external processing reports. The README and DISCLAIMER explicitly state that closed-module decompilation is implemented for research purposes and must not be used to break or remove protection on someone else's configurations, citing Article 146 of the Russian Criminal Code. Obfuscated modules are not decompiled at all. Spreadsheet templates (.mxl) are not parsed yet, a parser is in development. The 8.2 managed-form layout and the 8.0/8.1 format are unsupported. Large .cf files are fully extracted; per-object reading without a full unpack doesn't exist yet.

How to disable. Remove the v8unpack block from your MCP client configuration and run cleanup(all=true) to remove leftover unpack directories.

FAQ

Does repack always rebuild the whole file from scratch?

No, it picks the path itself: if the tree wasn't edited it copies the raw layer byte-for-byte, if part of the objects were edited it rebuilds only those, and granular rebuilding is notably faster than a full one on large configurations.

Can decompiled code be loaded straight back into 1C?

Not guaranteed. The README states the decompiled result is meant for analysis and algorithm extraction, not for guaranteed platform compilation.

Discussion

No questions or reviews yet.

Russian stack

Ten MCP servers for 1C development: platform reference, targeted object dump and load, COM, storage, file search and BSL Language Server

MCP serverBroad access1Repository stars

1C AI development environment

1C AI Development Environment

Russian stack

1C development environment with an MCP server offering 10 tools: 11 BSL analyzers, JSON DSL to XML, dependency graph, and EPF build without 1C

MCP serverBroad access18Repository stars
Russian stack

An MCP server that unpacks 1C's .hbk help, indexes it in Qdrant and gives the agent search over API, snippets and standards

MCP serverExtended access4Repository stars
Russian stack

A local read-only MCP server suite for 1C: a Rust code indexer, metadata skills, a prompt gallery and platform help search, with evidence-backed answers

MCP serverExtended access
Russian stack

An MCP server for searching and validating 1C syntax that unpacks the reference straight from your installed platform on first run

MCP serverExtended access34Repository stars
Russian stack

A native component that runs a full MCP server inside 1C: tools, resources and prompts are written in BSL, while a DLL handles the protocol

MCP serverBroad access43Repository stars

README in short

The README describes in detail the unpack-read-repack-cleanup workflow, a table of fourteen tools with signatures, three repack build paths with speed measurements, a separate four-step closed-module decompilation cycle with an obfuscation detector, an async mode for large files, an architecture built on a vendored saby v8unpack core with patches, connection formats for different MCP clients including Kilo Code's special format, a list of known limitations, and a separate legal-notice section citing the platform license and Article 146 of the Russian Criminal Code. It ends by crediting the borrowed open-source components and their licenses.

README badge

Report a problem