Make printable mazes for parents, teachers and puzzle fans as a PDF with an answer key.
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 mazes (maze generator, maze puzzles, maze worksheets, circle maze, hexagon maze) as a PDF with an answer key. Put one object per maze in mazes[] when the mazes differ (shape, difficulty or size, age); for a set of the same kind, set count with shape and difficulty, or pass the child's age. Each maze has a single solution (only one path from Start to Finish, checked by a breadth-first search); the PDF has 1, 2 or 4 mazes per page on Letter or A4, an optional title and name line, and answer pages with the path drawn. Defaults: 1 medium rectangle maze, Letter, 1 per page, name line and answer key on. Does not make picture-shaped mazes, mazes with several solutions, or solve a maze from a photo.
Age of the solver; picks the difficulty when none is given (4 and under very easy, 5 to 7 easy, 8 to 10 medium, 11 and up hard). Example: 7
Starting seed; maze N uses seed + N - 1. Reuse it to reprint the same mazes. Example: 2026
Grid size for all mazes instead of a difficulty: "columns x rows" (rectangle, hexagon) or rings (circle). Example: "12x16"
How many mazes when they are all the same kind (1 to 20, default 1). Example: 4
One object per maze when the mazes differ, e.g. [{"shape":"circle","difficulty":"easy"},{"shape":"rectangle","size":"20x25"}]. Leave out and use count for a set of the same kind. Up to 20.
letter (default, US 8.5 x 11 in) or a4. Example: a4
Shape for all mazes: rectangle (default), circle (round theta maze) or hexagon. Example: circle
Title printed at the top of each page. Example: Space Explorer Mazes
Mazes per printed page: 1 (default), 2 or 4. Example: 2
backtracker (default) or wilson. Example: backtracker
Print a Name and Date line on the maze pages (default true). Example: false
Add answer pages with the solution path drawn (default true). Example: true
Difficulty for all mazes: very easy, easy, medium (default), hard or expert. Example: easy
Pick your client. Values in capitals, like YOUR_TOKEN, are yours to fill in.
Run in a terminal
claude mcp add --transport http maze-maker https://maze-maker.zovo.one/mcp
Use this when the user wants printable mazes (maze generator, maze puzzles, maze worksheets, circle maze, hexagon maze) as a PDF with an answer key. Put one object per maze in mazes[] when the mazes differ (shape, difficulty or size, age); for a set of the same kind, set count with shape and difficulty, or pass the child's age. Each maze has a single solution (only one path from Start to Finish, checked by a breadth-first search); the PDF has 1, 2 or 4 mazes per page on Letter or A4, an optional title and name line, and answer pages with the path drawn. Defaults: 1 medium rectangle maze, Letter, 1 per page, name line and answer key on. Does not make picture-shaped mazes, mazes with several solutions, or solve a maze from a photo.
| Argument | Type | Description |
|---|---|---|
| age | number | string | null | Age of the solver; picks the difficulty when none is given (4 and under very easy, 5 to 7 easy, 8 to 10 medium, 11 and up hard). Example: 7 |
| seed | number | string | null | Starting seed; maze N uses seed + N - 1. Reuse it to reprint the same mazes. Example: 2026 |
| size | number | string | null | Grid size for all mazes instead of a difficulty: "columns x rows" (rectangle, hexagon) or rings (circle). Example: "12x16" |
| count | number | string | null | How many mazes when they are all the same kind (1 to 20, default 1). Example: 4 |
| mazes | any | One object per maze when the mazes differ, e.g. [{"shape":"circle","difficulty":"easy"},{"shape":"rectangle","size":"20x25"}]. Leave out and use count for a set of the same kind. Up to 20. |
| paper | any | letter (default, US 8.5 x 11 in) or a4. Example: a4 |
| shape | any | Shape for all mazes: rectangle (default), circle (round theta maze) or hexagon. Example: circle |
| title | any | Title printed at the top of each page. Example: Space Explorer Mazes |
| per_page | number | string | null | Mazes per printed page: 1 (default), 2 or 4. Example: 2 |
| algorithm | any | backtracker (default) or wilson. Example: backtracker |
| name_line | boolean | string | number | null | Print a Name and Date line on the maze pages (default true). Example: false |
| answer_key | boolean | string | number | null | Add answer pages with the solution path drawn (default true). Example: true |
| difficulty | any | Difficulty for all mazes: very easy, easy, medium (default), hard or expert. Example: easy |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"age": {
"type": [
"number",
"string",
"null"
],
"description": "Age of the solver; picks the difficulty when none is given (4 and under very easy, 5 to 7 easy, 8 to 10 medium, 11 and up hard). Example: 7"
},
"seed": {
"type": [
"number",
"string",
"null"
],
"description": "Starting seed; maze N uses seed + N - 1. Reuse it to reprint the same mazes. Example: 2026"
},
"size": {
"type": [
"number",
"string",
"null"
],
"description": "Grid size for all mazes instead of a difficulty: \"columns x rows\" (rectangle, hexagon) or rings (circle). Example: \"12x16\""
},
"count": {
"type": [
"number",
"string",
"null"
],
"description": "How many mazes when they are all the same kind (1 to 20, default 1). Example: 4"
},
"mazes": {
"anyOf": [
{
"type": "array",
"items": {
"type": "object",
"properties": {
"age": {
"type": [
"number",
"string",
"null"
],
"description": "Age of the child solving it, used to pick the difficulty when none is given. Example: 7"
},
"seed": {
"type": [
"number",
"string",
"null"
],
"description": "Seed for this maze (same seed and size give the same maze). Example: 4821"
},
"size": {
"type": [
"number",
"string",
"null"
],
"description": "Grid size instead of a difficulty: columns x rows for rectangle and hexagon (\"20x25\"), number of rings for circle (\"10\"). Example: \"15x20\""
},
"shape": {
"anyOf": [
{
"type": "string",
"maxLength": 40
},
{
"type": "null"
}
],
"description": "rectangle (default), circle (round theta maze, finish in the centre) or hexagon (honeycomb cells). Example: circle"
},
"algorithm": {
"anyOf": [
{
"type": "string",
"maxLength": 30
},
{
"type": "null"
}
],
"description": "backtracker (default, long winding corridors) or wilson (more short dead ends). Example: wilson"
},
"difficulty": {
"anyOf": [
{
"type": "string",
"maxLength": 40
},
{
"type": "null"
}
],
"description": "very easy, easy, medium (default), hard or expert. Sets the grid size. Example: easy"
}
},
"additionalProperties": {}
},
"maxItems": 20
},
{
"type": "null"
}
],
"description": "One object per maze when the mazes differ, e.g. [{\"shape\":\"circle\",\"difficulty\":\"easy\"},{\"shape\":\"rectangle\",\"size\":\"20x25\"}]. Leave out and use count for a set of the same kind. Up to 20."
},
"paper": {
"anyOf": [
{
"type": "string",
"maxLength": 30
},
{
"type": "null"
}
],
"description": "letter (default, US 8.5 x 11 in) or a4. Example: a4"
},
"shape": {
"anyOf": [
{
"type": "string",
"maxLength": 40
},
{
"type": "null"
}
],
"description": "Shape for all mazes: rectangle (default), circle (round theta maze) or hexagon. Example: circle"
},
"title": {
"anyOf": [
{
"type": "string",
"maxLength": 200
},
{
"type": "null"
}
],
"description": "Title printed at the top of each page. Example: Space Explorer Mazes"
},
"per_page": {
"type": [
"number",
"string",
"null"
],
"description": "Mazes per printed page: 1 (default), 2 or 4. Example: 2"
},
"algorithm": {
"anyOf": [
{
"type": "string",
"maxLength": 30
},
{
"type": "null"
}
],
"description": "backtracker (default) or wilson. Example: backtracker"
},
"name_line": {
"type": [
"boolean",
"string",
"number",
"null"
],
"description": "Print a Name and Date line on the maze pages (default true). Example: false"
},
"answer_key": {
"type": [
"boolean",
"string",
"number",
"null"
],
"description": "Add answer pages with the solution path drawn (default true). Example: true"
},
"difficulty": {
"anyOf": [
{
"type": "string",
"maxLength": 40
},
{
"type": "null"
}
],
"description": "Difficulty for all mazes: very easy, easy, medium (default), hard or expert. Example: easy"
}
}
}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.