-
-
Notifications
You must be signed in to change notification settings - Fork 1
Installation
Three ways to run the server. Docker is the recommended one — it pins Node, the operating system and every dependency, which matters here because CyberChef's operation set reaches into native crypto and image libraries.
docker run -i --rm ghcr.io/doublegate/cyberchef-mcp_v2:latest| Tag | Points at |
|---|---|
latest |
The newest release |
2.4.0 |
An exact version — use this in anything you depend on |
2.4 |
The newest patch of 2.4 |
2 |
The newest 2.x |
Also published to Docker Hub as parobek/cyberchef-mcp. Both registries carry the same image,
built once and pushed to both, with provenance and SBOM attestations.
-i is mandatory. stdio transport means the server reads JSON-RPC from standard input; without
-i Docker gives it no stdin and the process exits immediately.
--rm is a convenience, not a requirement — it cleans up the container when the client
disconnects. Without it you accumulate stopped containers.
The image runs as UID 65532 (nonroot) on a distroless Chainguard base, and contains no shell.
npx cyberchef-mcp does not work today. The package is publishable as of v2.3.0 — the
install script that blocked it is gone, and npm install --ignore-scripts of the packed tarball
starts and serves — but it is not on the registry.
server.json deliberately carries no npm record for the same reason: advertising a package that is
not there sends clients to an install that 404s. The record gets added in the same change that
publishes it.
Until then, use Docker or a source checkout. When it does ship it will require Node >=24 <27,
matching upstream CyberChef's own floor, and will carry a second binary — cyberchef-migrate, the
v1-to-v2 migration helper.
git clone https://github.com/doublegate/CyberChef-MCP.git
cd CyberChef-MCP
npm install
npx grunt configTests # REQUIRED -- generates two files that are not committed
npm run mcpnpx grunt configTests is not optional. It generates src/core/config/OperationConfig.json
and src/node/index.mjs, both of which are gitignored because they are build products. Skipping it
produces:
Error [ERR_MODULE_NOT_FOUND]: Cannot find module './index.mjs'
which reads like a broken checkout and is not.
One dependency (avsc) still references a Node API removed years ago. The Dockerfile and CI patch
it in place before running tests; locally, apply the same substitution to
node_modules/avsc/lib/types.js, replacing new SlowBuffer with Buffer.alloc. There are two
references in avsc@5.7.9.
Point a real MCP client at it. That is the authoritative check, and the reason is this
project's own most expensive lesson: raw JSON-RPC does no schema validation, so three releases once
shipped with every tool carrying an empty inputSchema while hand-written probes reported success.
A one-line ping is still a useful container smoke test — it proves the image starts and answers:
echo '{"jsonrpc":"2.0","id":1,"method":"tools/list","params":{}}' \
| docker run -i --rm ghcr.io/doublegate/cyberchef-mcp_v2:latestNext: Client Setup.
v2.4.0 · upstream CyberChef v11.4.0 · GPL-3.0-or-later
Maintained in docs/wiki/ and published here automatically — edit the repository, not the wiki, or your change is overwritten on the next sync.
Getting started
Using it
Operating it
Help
The project