Skip to main content

edt-bridge-mcp

English · Русский

stdio MCP front-end for the edt-bridge 1C:EDT plugin.

The Java plugin serves MCP as plain JSON-RPC over HTTP on 127.0.0.1:8770 – which means an MCP client configured with that URL loses the server whenever EDT is not running. This wrapper is what the client talks to instead:

  • EDT open (GUI or headless) → every request is forwarded to the live bridge;
  • EDT closed → it auto-starts a headless EDT (1cedtcli with a keepalive pipe, the same recipe as scripts/run-headless.ps1) and forwards once the model is ready;
  • plugin jar missing → it delivers the jar itself from the latest GitHub release (checksum-verified) into EDT's dropins/ before starting – a bare pipx install edt-bridge-mcp is enough to get a working bridge;
  • a client session never hangs on startup: while the backend is starting, tools/list returns an empty list and a notifications/tools/list_changed follows when ready.

How the bridge is wired

Install

pipx install edt-bridge-mcp        # or: pipx install ./python  from a checkout

Register in an MCP client

claude mcp add edt-bridge -- edt-bridge-mcp --workspace "D:\\path\\to\\edt-workspace"

From a shell

The default mode speaks JSON-RPC over stdin/stdout, for an MCP client to drive. To reach the same bridge by hand or from a script, use the sub-commands – same port scan, same token, same headless auto-start:

edt-bridge-mcp tools                    # what the running bridge serves
edt-bridge-mcp call edt_projects        # call a tool, print what it returned
edt-bridge-mcp call edt_metadata_details --json '{"projectName": "SM", "fqn": "CommonModule.Foo"}'
edt-bridge-mcp call edt_create_extension --json-file args.json   # arguments from a UTF-8 file
edt-bridge-mcp status                   # is a bridge up? (never starts one)

--raw prints the JSON result instead of the text a tool returned. Arguments come from --json, --json-file or --stdin; a file is the dependable route for non-ASCII arguments on Windows.

Exit codes: 0 fine, 1 the call could not be made (no bridge, bad usage, transport error), 2 the bridge ran the tool and the tool reported an error – so a script can tell "it failed" from "it never ran".

Self-update

edt-bridge-mcp self-update             # refresh the plugin jar (GitHub Releases) + the wrapper (PyPI)
edt-bridge-mcp self-update --jar-only  # only the jar
edt-bridge-mcp self-update --pip-only  # only the wrapper
edt-bridge-mcp self-update --pip-only --from <repo>/python   # from a checkout

A running EDT (GUI or headless) keeps the old jar loaded until it restarts; the wrapper restarts its own headless instance on the next auto-start.

--from installs the wrapper from a local checkout instead of PyPI – for trying a build that is not released yet, without a full pipx install --force (which rebuilds the venv and replaces the exe the running client holds).

The wrapper updates itself by unpacking, not through an installer: it downloads the wheel from PyPI (or copies the package out of the checkout given to --from) and replaces the package inside site-packages using the standard library alone. No pip, no pipx, no build backend – which matters, because pipx 1.15 builds its venvs through uv and a uv-built venv contains no pip at all.

Plugins

External packages installed into the wrapper's environment can add MCP tools of their own – the home for what a public repository cannot carry (reference material under somebody's license, tools wired to an internal service). The wrapper discovers them through the edt_bridge.tools entry-point group, lists their tools next to the bridge's and dispatches them itself, so they answer even while no EDT is running.

pipx inject edt-bridge-mcp <package>   # install a plugin
edt-bridge-mcp plugins                 # what is plugged in, or why a plugin refused to load

EDT_BRIDGE_NO_PLUGINS=1 turns the discovery off. The declaration contract for plugin authors is on the installation page.

The exes in Scripts are never touched: they are what a running client holds open, Windows will not let them be replaced, and they do not need to be – the stub launches whatever code is in site-packages the next time it starts. pipx_metadata.json is corrected so pipx list does not go on reporting the old version. An editable install is refused rather than overwritten.

Configuration

CLI flags override the environment.

Env Flag Meaning
EDT_BRIDGE_PORT --port bridge port (default 8770)
EDT_BRIDGE_TOKEN write-tools token, forwarded as Authorization: Bearer and injected into the headless JVM
EDT_BRIDGE_WORKSPACE --workspace EDT workspace path – required for the headless auto-start
EDT_BRIDGE_EDT_DIR --edt-dir EDT install dir (.../1cedt); newest install auto-detected when omitted
EDT_BRIDGE_START_TIMEOUT --start-timeout seconds to wait for a starting backend (default 360)
EDT_BRIDGE_AUTOSTART --no-autostart set 0/pass the flag for proxy-only mode

The rarely-touched ones (EDT_BRIDGE_PORT_SCAN, EDT_BRIDGE_WINDOW_WAIT, EDT_BRIDGE_LANG) and the plugin's own variables are in Environment variables.

Safety

  • If a GUI EDT is running but the bridge port is dead (plugin missing there), the wrapper refuses to start a headless instance – the GUI holds the workspace lock. It still delivers the jar into dropins/ when missing, so restarting that EDT activates the bridge.
  • If a headless 1cedtcli is already starting, the wrapper waits for it instead of spawning a second one.

Download files

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

Source Distribution

edt_bridge_mcp-0.17.0.tar.gz (54.8 kB view details)

Uploaded Source

Built Distribution

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

edt_bridge_mcp-0.17.0-py3-none-any.whl (38.0 kB view details)

Uploaded Python 3

File details

Details for the file edt_bridge_mcp-0.17.0.tar.gz.

File metadata

  • Download URL: edt_bridge_mcp-0.17.0.tar.gz
  • Upload date:
  • Size: 54.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for edt_bridge_mcp-0.17.0.tar.gz
Algorithm Hash digest
SHA256 6c217be3204011a2bf4640f81a92b48c0a5ce4a0c3d2b93c934ea0d4801580b0
MD5 fbc4033445f3bce93dc67e90afde4f90
BLAKE2b-256 4357a8dc3c2df43bd38838e75353f7e7d19cd1e81e7d9fb6a0d47cfe958c0300

See more details on using hashes here.

Provenance

The following attestation bundles were made for edt_bridge_mcp-0.17.0.tar.gz:

Publisher: pypi-publish.yml on keyfire/edt-bridge

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file edt_bridge_mcp-0.17.0-py3-none-any.whl.

File metadata

  • Download URL: edt_bridge_mcp-0.17.0-py3-none-any.whl
  • Upload date:
  • Size: 38.0 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for edt_bridge_mcp-0.17.0-py3-none-any.whl
Algorithm Hash digest
SHA256 dd96f4f77dc62850a89e3a503977347a067a9502dada5b630dcda8240f4b9279
MD5 c47d25e22ff32c6e2f14689de586fc41
BLAKE2b-256 8c3376e65b144efc966786b5e28a493187099e6726ce5bef7329a585b9ddb2bd

See more details on using hashes here.

Provenance

The following attestation bundles were made for edt_bridge_mcp-0.17.0-py3-none-any.whl:

Publisher: pypi-publish.yml on keyfire/edt-bridge

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Release history Release notifications | RSS feed

0.19.0

2 files

0.18.1

2 files

0.18.0

2 files

This release

0.17.0 This release

2 files

0.16.0

2 files

0.15.0

2 files

0.14.0

2 files

0.13.0

2 files

0.12.0

2 files

0.11.2

2 files

0.11.1

2 files

0.11.0

2 files

0.10.0

2 files

0.9.0

2 files

0.8.0

2 files

0.7.1

2 files

0.7.0

2 files

0.6.0

2 files

0.5.0

2 files

0.4.1

2 files

0.4.0

2 files

0.3.1

2 files

0.3.0

2 files

0.2.1

2 files

0.2.0

2 files

0.1.0

2 files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page