Skip to main content
Glama
TregardLabs-Dana

cyberchef-mcp-server

cyberchef-mcp-server

An MCP (Model Context Protocol) server that exposes CyberChef's ~480 data operations — encoding/decoding, hashing, compression, encryption, data format conversion, and more — as tools an LLM agent can call directly, via CyberChef's Node.js API.

Tools

Tool

Purpose

cyberchef_bake

Run a CyberChef "recipe" (one or more chained operations) against input data.

cyberchef_list_operations

Search CyberChef's operation catalog by name, category, or description.

cyberchef_operation_help

Get an operation's description, input/output types, and argument names/defaults.

Typical flow for an agent: cyberchef_list_operations (find the op) → cyberchef_operation_help (confirm its arguments) → cyberchef_bake (run it).

Note: CyberChef's Magic operation (auto-detecting unknown encodings) is a flow-control operation, and the Node API explicitly rejects flow-control operations in bake() — so it can't be exposed as a tool here, only the browser UI supports it.

Related MCP server: CTF MCP Server

Setup

npm install
npm run setup
npm run build

npm run setup is required, not optional — see "Why npm run setup?" below.

Running standalone

npm start

The server communicates over stdio, per MCP convention — it isn't a long-running HTTP service and won't print anything on stdout itself.

Registering with an MCP client

Add an entry to your client's MCP server config, pointing at the built entry point, e.g. for Claude Code / Claude Desktop:

{
  "mcpServers": {
    "cyberchef": {
      "command": "node",
      "args": ["/absolute/path/to/mcp-cyberchef/dist/index.js"]
    }
  }
}

Development

npm run dev         # run src/index.ts directly with tsx, restarting on change
npm test            # run the unit tests (node:test via tsx)
npm run build       # type-check and compile to dist/
npm run smoke-test  # spawn the built server and drive it with a real MCP client

Why npm run setup?

cyberchef@11.2.0's own postinstall script (npx grunt exec:fixCryptoApiImports && ...) requires grunt/grunt-exec/grunt-webpack/etc., which only exist in cyberchef's own devDependencies — npm never installs those for a consumer, so that postinstall always crashes a fresh npm install. .npmrc sets ignore-scripts=true project-wide so install can complete at all (this also skips harmless postinstalls, like esbuild's and tesseract.js's funding message).

npm run setup replaces the one fixup that actually matters for us: fixCryptoApiImports appends .mjs extensions to node_modules/crypto-api's relative imports, which Node's strict ESM resolver requires but crypto-api's published source omits — without it, every hash operation throws ERR_MODULE_NOT_FOUND. It also runs esbuild's install step by hand, since that's needed for tsx (used by npm run dev/test) and would otherwise be skipped along with everything else.

Two more of cyberchef's dependencies are simply missing from its published package.json (yaml, used by JSONtoYAML; js-yaml, used by YAMLToJSON) — those are just declared as direct dependencies here instead. js-yaml is pinned to ^4 deliberately: v5 dropped the default export cyberchef's source imports.

F
license - not found
-
quality - not tested
-
maintenance - not tested

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/TregardLabs-Dana/mcp-cyberchef'

If you have feedback or need assistance with the MCP directory API, please join our Discord server