Make printable cryptogram puzzles with answers from your own quotes, for a class, a club newsletter.
Maintain this server? Claim it
Call this server's tools from your browser. Nothing to install.
Requests go through mcptry because browsers can't call most MCP servers directly. Header values are sent to the server for that request only and are never stored or logged.
Tool list from our last check. Connect live to refresh it.
Use this when the user wants printable cryptogram puzzles (cryptogram maker, cryptoquote puzzles, cryptogram puzzles printable with answers, large print cryptograms) from their own quotes or phrases. Convert pasted quotes or a photo of a list into puzzles[] with quote and author fields; text is only a fallback. Each puzzle gets its own substitution key in which no letter stands for itself; optional hint letters, a letter-count helper grid and large print; the PDF ends with an answer key. Only A-Z letters are enciphered; accented letters and other alphabets stay as written. If the user gives no quotes, pick suitable public-domain quotes first. Does not make symbol ciphers or solve puzzles (use solve_cryptogram).
Seed for the letter keys; the same seed and quotes give the same puzzles. Example: 2026
Fallback only: pasted quotes, one per line, as "quote - author". Use puzzles[] when you can.
Hint letters revealed per puzzle (0 to 5); overrides difficulty. Example: 2
letter (default) or a4. Example: a4
Title on the first page. Example: Friday Cryptoquotes
One object per puzzle. Convert pasted quotes or a photo of a list into these fields. Example: [{"quote":"Well begun is half done.","author":"Aristotle"}]. Up to 30.
Include the answer key pages (default true). Example: true
easy (3 hint letters), medium (1 hint, default) or hard (no hints). Example: easy
Large print for seniors or low vision: letters about 22 pt with bigger answer boxes. Default false. Example: true
Print the letter-count helper grid under each puzzle (default true). Example: true
Encipher the author's name too, like a newspaper cryptoquote (default true). Example: false
Pick your client. Values in capitals, like YOUR_TOKEN, are yours to fill in.
Run in a terminal
claude mcp add --transport http cryptogram https://cryptogram.zovo.one/mcp
Use this when the user wants printable cryptogram puzzles (cryptogram maker, cryptoquote puzzles, cryptogram puzzles printable with answers, large print cryptograms) from their own quotes or phrases. Convert pasted quotes or a photo of a list into puzzles[] with quote and author fields; text is only a fallback. Each puzzle gets its own substitution key in which no letter stands for itself; optional hint letters, a letter-count helper grid and large print; the PDF ends with an answer key. Only A-Z letters are enciphered; accented letters and other alphabets stay as written. If the user gives no quotes, pick suitable public-domain quotes first. Does not make symbol ciphers or solve puzzles (use solve_cryptogram).
| Argument | Type | Description |
|---|---|---|
| seed | number | string | null | Seed for the letter keys; the same seed and quotes give the same puzzles. Example: 2026 |
| text | any | Fallback only: pasted quotes, one per line, as "quote - author". Use puzzles[] when you can. |
| hints | number | string | null | Hint letters revealed per puzzle (0 to 5); overrides difficulty. Example: 2 |
| paper | any | letter (default) or a4. Example: a4 |
| title | any | Title on the first page. Example: Friday Cryptoquotes |
| puzzles | any | One object per puzzle. Convert pasted quotes or a photo of a list into these fields. Example: [{"quote":"Well begun is half done.","author":"Aristotle"}]. Up to 30. |
| answer_key | boolean | string | number | null | Include the answer key pages (default true). Example: true |
| difficulty | any | easy (3 hint letters), medium (1 hint, default) or hard (no hints). Example: easy |
| large_print | boolean | string | number | null | Large print for seniors or low vision: letters about 22 pt with bigger answer boxes. Default false. Example: true |
| letter_counts | boolean | string | number | null | Print the letter-count helper grid under each puzzle (default true). Example: true |
| encipher_author | boolean | string | number | null | Encipher the author's name too, like a newspaper cryptoquote (default true). Example: false |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"seed": {
"type": [
"number",
"string",
"null"
],
"description": "Seed for the letter keys; the same seed and quotes give the same puzzles. Example: 2026"
},
"text": {
"anyOf": [
{
"type": "string",
"maxLength": 30000
},
{
"type": "null"
}
],
"description": "Fallback only: pasted quotes, one per line, as \"quote - author\". Use puzzles[] when you can."
},
"hints": {
"type": [
"number",
"string",
"null"
],
"description": "Hint letters revealed per puzzle (0 to 5); overrides difficulty. Example: 2"
},
"paper": {
"anyOf": [
{
"type": "string",
"maxLength": 30
},
{
"type": "null"
}
],
"description": "letter (default) or a4. Example: a4"
},
"title": {
"anyOf": [
{
"type": "string",
"maxLength": 200
},
{
"type": "null"
}
],
"description": "Title on the first page. Example: Friday Cryptoquotes"
},
"puzzles": {
"anyOf": [
{
"type": "array",
"items": {
"type": "object",
"required": [
"quote"
],
"properties": {
"quote": {
"type": "string",
"maxLength": 2000,
"description": "The quote or phrase to encipher, as written (up to 1,000 characters are used). Example: The only way to do great work is to love what you do."
},
"author": {
"anyOf": [
{
"type": "string",
"maxLength": 200
},
{
"type": "null"
}
],
"description": "Who said it (optional). Example: Steve Jobs"
}
},
"additionalProperties": {}
},
"maxItems": 500
},
{
"type": "null"
}
],
"description": "One object per puzzle. Convert pasted quotes or a photo of a list into these fields. Example: [{\"quote\":\"Well begun is half done.\",\"author\":\"Aristotle\"}]. Up to 30."
},
"answer_key": {
"type": [
"boolean",
"string",
"number",
"null"
],
"description": "Include the answer key pages (default true). Example: true"
},
"difficulty": {
"anyOf": [
{
"type": "string",
"maxLength": 30
},
{
"type": "null"
}
],
"description": "easy (3 hint letters), medium (1 hint, default) or hard (no hints). Example: easy"
},
"large_print": {
"type": [
"boolean",
"string",
"number",
"null"
],
"description": "Large print for seniors or low vision: letters about 22 pt with bigger answer boxes. Default false. Example: true"
},
"letter_counts": {
"type": [
"boolean",
"string",
"number",
"null"
],
"description": "Print the letter-count helper grid under each puzzle (default true). Example: true"
},
"encipher_author": {
"type": [
"boolean",
"string",
"number",
"null"
],
"description": "Encipher the author's name too, like a newspaper cryptoquote (default true). Example: false"
}
}
}Use this when the user is stuck on a cryptogram or cryptoquote (cryptoquote help, cryptogram solver) and gives the enciphered text. Returns up to 3 candidate readings ranked against an English word list of about 25,000 words, the letter key for the top reading, the letters still open, and a confidence of high, medium or low with the reason. Pass letters already known (a printed clue) in known_letters. Short texts, names and rare words lower the confidence, and the tool says so; report that confidence to the user. English only; does not solve number or symbol ciphers, Caesar shifts with a shown key, or today's newspaper puzzle without its text.
| Argument | Type | Description |
|---|---|---|
| ciphertext* | string | The enciphered text exactly as printed, including punctuation and the author line. Example: "GSV JFRXP YILDM ULC QFNKH LEVI GSV OZAB WLT." |
| known_letters | any | Letters already known, e.g. a printed clue. Example: [{"cipher":"Q","plain":"T"}] or "Q=T, X=E" |
| allow_self_mapping | boolean | string | number | null | Allow a letter to stand for itself (default false; most cryptograms forbid it). Example: false |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"ciphertext"
],
"properties": {
"ciphertext": {
"type": "string",
"maxLength": 3000,
"description": "The enciphered text exactly as printed, including punctuation and the author line. Example: \"GSV JFRXP YILDM ULC QFNKH LEVI GSV OZAB WLT.\""
},
"known_letters": {
"anyOf": [
{
"anyOf": [
{
"type": "array",
"items": {
"type": "object",
"required": [
"cipher",
"plain"
],
"properties": {
"plain": {
"type": "string",
"maxLength": 3,
"description": "Plain letter it stands for. Example: T"
},
"cipher": {
"type": "string",
"maxLength": 3,
"description": "Cipher letter. Example: Q"
}
}
}
},
{
"type": "string",
"maxLength": 400
}
]
},
{
"type": "null"
}
],
"description": "Letters already known, e.g. a printed clue. Example: [{\"cipher\":\"Q\",\"plain\":\"T\"}] or \"Q=T, X=E\""
},
"allow_self_mapping": {
"type": [
"boolean",
"string",
"number",
"null"
],
"description": "Allow a letter to stand for itself (default false; most cryptograms forbid it). Example: false"
}
}
}We read every tool's name, description and inputs the way the model will, looking for instructions hidden from you. A clean result means no warning signs, not a guarantee. Scanned Nov 8, 2026.