Skip to main content
Glama
doublegate

CyberChef MCP Server

by doublegate

cyberchef_classical_cipher

Read-onlyIdempotent

Encode or decode Playfair, Polybius square, ADFGVX, and Baudot/ITA2 messages using configurable keys, alphabets, and convention settings.

Instructions

Encode and decode the classical ciphers CyberChef has no operation for: Playfair, the Polybius square, ADFGVX and Baudot/ITA2 (tap code is a Polybius square, so it is the same tool). Every contested convention is a parameter, because implementations that disagree on one disagree on every message.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
keyNoKeyword for the square. Playfair, Polybius and ADFGVX only.
modeNoDirection.encode
inputYesThe message or ciphertext.
cipherYesWhich cipher.
polybius_sizeNoSquare size. 5x5 needs a 25-letter alphabet; 6x6 fits 26 letters and 10 digits.
baudot_profileNoWhich figures-shift table. They differ in exactly six cells.ita2
polybius_orderNoCoordinate order. Row-then-column is canonical.row_column
playfair_fillerNoThe letter inserted between a doubled pair and used to pad an odd length.X
baudot_bit_orderNoBit order in each five-bit group. `value` is Wikipedia's and dcode's, `transmission` is ITU-T S.1's. If CR and LF come out transposed, use the other.value
polybius_alphabetNoOverride the square's alphabet. The 6x6 default (letters then digits) is a convention, not a standard, so set this when matching a specific source.
transposition_keyNoADFGVX only: the columnar transposition applied after fractionation. Without it you get only ADFGVX's first half, a 6x6 Polybius square.
playfair_reductionNoHow Playfair gets 26 letters into 25 squares. merge_ij is canonical; omit_v is dcode.fr's default.merge_ij
playfair_replace_doublesNoBug-compatibility with pycipher, which REPLACES the second letter of a doubled pair rather than inserting a filler. Lossy: it does not round-trip.

Schema Changelog

Changes observed during successful MCP inspections. Dates show when Glama detected each change.

  1. First observedv3.6.0

TDQS

A4/5.0
Behavior3/5

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

Annotations already declare readOnlyHint, idempotentHint, and destructiveHint, so the safety profile is covered. The description adds that this is a pure encode/decode transform and that disputed conventions are exposed as parameters, which is useful but does not go into output format, error behavior, or operational edge cases.

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 two front-loaded sentences with no filler. The first sentence delivers the cipher list and scope; the second gives one concise rationale for the large parameter surface. Every clause earns its place.

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 high-complexity tool with 13 parameters, the description stays appropriately high-level while the schema's 100% coverage carries invocation details. It supplies key selection context: which ciphers, the tap-code equivalence, and the convention-parameter principle. An explicit output contract would be the only notable addition, but for encode/decode transforms the return shape is largely inferable.

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 100% and every parameter already has a detailed description, so the baseline of 3 applies. The description's statement that every contested convention is a parameter is a useful design principle but adds no concrete parameter-level meaning beyond the 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 names a specific verb ('encode and decode') and a concrete resource set ('Playfair, the Polybius square, ADFGVX and Baudot/ITA2'), and explicitly frames the tool as covering ciphers CyberChef lacks. The parenthetical about tap code being a Polybius square prevents a common mis-selection. This clearly distinguishes the tool from sibling operations.

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 clearly scopes use to the four listed classical ciphers and tells the agent these are ciphers CyberChef has no native operation for, which establishes when this tool is the right choice. It does not name a specific sibling tool as an alternative or list exclusion cases, but the selection context is strong enough to guide an agent.

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

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/doublegate/CyberChef-MCP'

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