Developers · v0.1.0

JotOak MCP

Find a published puzzle and its printable files from an MCP-compatible client.

Connection

Public endpoint. Version 0.1.0 is available as of October 15, 2026. Connect your MCP client using the URL below.

Endpoint URL
https://jotoak.com/mcp
Transport
Streamable HTTP, stateless JSON responses
Authentication
No account or API key; public, read-only catalog
Official Registry
io.github.iyuyoung/jotoak · v0.1.0

Use a client that supports remote Streamable HTTP servers. Initialize the connection, discover the tools, then call a tool with the arguments below. POST is supported at both /mcp and /mcp/; there is no long-running GET event stream or persistent session.

Tools and filters

search_puzzles

Search the same prepared word searches, crosswords and mazes that appear in the JotOak library. Results include an exact ID, description, source page, preview and real PDF editions. Results follow the library's stable order; they are not ranked recommendations.

Optional search_puzzles arguments
ArgumentAllowed values
query1–100 characters; all words must match a title, description or word list
kindword-search, crossword, maze
difficultyeasy, medium, hard; word searches only
largePrinttrue or false; word searches only
holidayhalloween, thanksgiving, christmas; word searches only
paperletter or a4; omit for both editions
offset / limitOffset 0–1000, default 0; limit 1–10, default 5

The result contains items, total and nextOffset. Use the returned offset for the next page. A null offset means the end. No matches returns an empty list.

get_puzzle

Pass the exact id returned by search and an optional paper. The result adds instructions, printing guidance and the published vocabulary or clues. An unknown ID returns a tool error. Invalid arguments are rejected, including unsupported filters or extra fields.

Unrecorded difficulty, typography or grid dimensions return null rather than an invented label. Crossword and maze difficulty is not inferred. These tools do not generate custom puzzles, search the earlier math archive or return answer placements as text.

Examples

Arguments for a tools/call request, after MCP initialization:

{
  "name": "search_puzzles",
  "arguments": {
    "kind": "word-search",
    "holiday": "christmas",
    "paper": "a4",
    "limit": 3
  }
}
{
  "name": "get_puzzle",
  "arguments": {
    "id": "garden-animals",
    "paper": "letter"
  }
}

Successful tools return validated structuredContent, the same JSON as text for client compatibility, and standard resource_link entries for the PDFs. File metadata includes paper size, MIME type, page count and the published data version.

Files and permissions

Each returned PDF has two pages: the puzzle on page 1 and its matching answer on page 2. Print only page 1 for the solver. Letter and A4 are editions of the same puzzle, with the same underlying data. There is no separate answer PDF.

The source page contains a preview and useful guidance. PDF links point directly to published files; the MCP server does not create temporary downloads or require a visit to an advertising page.

Free for home and direct classroom use. Keep the JotOak source line, and share the original page. Do not resell the files or republish them as a download library. See usage permissions.

Limits and privacy

Requests are limited to 16 KiB and five seconds. Cloudflare rate limits allow approximately 120 requests per network address per minute and 600 shared requests per minute at each Cloudflare location. These are regional protections, not a global quota. A shared school network may share an address limit.

HTTP 429 includes Retry-After: 60. Retry after that interval. HTTP 503 means the service is unavailable; HTTP 504 means a timeout. Avoid unbounded retries. An empty result is not an outage.

Browser requests must use the configured site Origin. Requests without Origin are accepted for server clients. CORS is not authentication. Requests cannot fetch arbitrary URLs, upload files, create accounts or save custom words.

Unlike the browser-only generator, MCP search arguments are processed by a server. Do not send names, student data or private vocabulary. Application logs contain only status and duration; they exclude raw queries, arguments and network addresses. Cloudflare processes network information to serve and protect requests. See MCP privacy details.

Support

Report a connection problem or incorrect puzzle record to [email protected]. Include the tool name, published puzzle ID and HTTP status, without private input or credentials.

For the browser experience, browse printable word searches, crosswords or mazes.