protogrid

Search / io.github.vincentping/playsudoku

PlaySudoku

R0· no sign-in

Deterministic Sudoku puzzles, progress checks, logical hints, and step-by-step solutions.

v1.0.0 · active · descriptor JSON · versions

An agent can connect right now, no human step.Remote endpoint, no authentication, reachable on the last probe.
Quality82good
Trust73of 100
Uptime, 30 days97%
Latency p50283 ms

Connect

8 clients · secrets stay placeholders
{
  "mcpServers": {
    "playsudoku": {
      "type": "http",
      "url": "https://mcp.playsudoku.us/mcp"
    }
  }
}
claude mcp add --transport http playsudoku https://mcp.playsudoku.us/mcp
[mcp_servers.playsudoku]
url = "https://mcp.playsudoku.us/mcp"
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "playsudoku": {
      "type": "remote",
      "url": "https://mcp.playsudoku.us/mcp",
      "enabled": true
    }
  }
}
{
  "mcpServers": {
    "playsudoku": {
      "type": "http",
      "url": "https://mcp.playsudoku.us/mcp"
    }
  },
  "deeplink": "cursor://anysphere.cursor-deeplink/mcp/install?name=playsudoku&config=eyJ0eXBlIjoiaHR0cCIsInVybCI6Imh0dHBzOi8vbWNwLnBsYXlzdWRva3UudXMvbWNwIn0%3D"
}
{
  "servers": {
    "playsudoku": {
      "type": "http",
      "url": "https://mcp.playsudoku.us/mcp"
    }
  }
}
{
  "mcpServers": {
    "playsudoku": {
      "httpUrl": "https://mcp.playsudoku.us/mcp"
    }
  }
}
extensions:
  "playsudoku":
    enabled: true
    name: "playsudoku"
    type: streamable_http
    uri: "https://mcp.playsudoku.us/mcp"
    timeout: 300

Quality 82 / 100good

protocol75 · weight 25
  • warn
    protocol.modernnewest supported version is 2025-11-25; 2026-07-28 not supported, older versions are deprecated until 2027-07-28
  • n/a
    protocol.statelessonly applies to 2026-07-28 servers
  • pass
    protocol.transportstreamable HTTP
  • n/a
    protocol.list_ttlonly applies to 2026-07-28 servers
authorizationn/a · weight 15
  • n/a
    auth.prm, auth.as_metadata, auth.cimdno remote uses OAuth
  • n/a
    auth.secret_in_urlno templated URL
tool hygiene79 · weight 30
  • pass
    tools.descriptionsevery tool has a description
  • warn
    tools.description_length1 tools have descriptions over 1,024 characters, which crowds the context
  • pass
    tools.schemasevery tool has an object input schema
  • pass
    tools.annotations4 of 4 tools declare readOnlyHint or destructiveHint
  • fail
    tools.directory_hintsno tool declares all four of readOnlyHint, destructiveHint, idempotentHint and openWorldHint; missing: get_sudoku_puzzle (destructiveHint, idempotentHint, openWorldHint); solve_sudoku (destructiveHint, idempotentHint, openWorldHint); explain_next_step (destructiveHint, idempotentHint, openWorldHint); …
  • pass
    tools.token_costabout 1,332 tokens to load every tool
  • pass
    tools.api_dumptools are not a one-to-one API dump
stability100 · weight 15
  • pass
    stability.changesno tool changes in 30 days
  • pass
    stability.rug_pullno tool changed its meaning under the same name
dependenciesn/a · weight 15
  • n/a
    deps.known_vulns, deps.mcp_sdk_version, deps.resolvableno npm or PyPI package

4 tools, about 1,332 tokens to load them all · tool set 616fb2d04e3c · checked 2026-10-19 15:48 UTC

Tool changes

No tool definition changes recorded. A server's first observation is its baseline; later probes record what changes.

Checks run on what our credential-free, read-only probes observe; tools are never called and no code audit is performed. How it is computed.

Trust 73 / 100

no-repository
provenance35
liveness99
freshness85
hygiene80

+reachable +uptime-97% ~updated-56d-ago -no-repository

Derived from observable signals (official registry feed and our own credential-free probes); no code audit performed. How it is computed.

Endpoints

remoteauthreachableuptime 30dp50protocollast ok
https://mcp.playsudoku.us/mcp streamable-httpnoneyes97%283 ms2025-11-252026-10-19

Tools (4)

check_progressread-onlyCheck a user's current progress against the correct solution. Returns factual information only: whether the puzzle is complete, whether all filled cells are correct, which cells are incorrect (with the entered digit), and how many cells remain empty. Does not give hints or coaching — use explain_next_step for that. Use this when the user asks "am I done?" or "did I make any mistakes?" Every response includes a solve_url where the same puzzle can be continued in the interactive solver.
explain_next_stepread-onlyGet the next logical solving step for a sudoku puzzle, optionally from a partially-filled state. TWO-BOARD MODE (puzzle + progress) — use when you know both the original clue grid and the user's current work: puzzle: the original 81-char clue string (the given digits only, 0/. for empty cells). progress: the user's current 81-char board — must keep all original clue digits in place. This mode detects incorrect entries: if any user-filled cell contradicts the solution, the tool returns incorrect_cells instead of a step hint, so the user can correct errors before continuing. Use this when the user is solving a puzzle they received from get_sudoku_puzzle (puzzle is known). SINGLE-BOARD MODE (puzzle only, no progress) — use when the original clue grid is unknown (e.g. photo OCR): Pass the user's current full board as puzzle with no progress argument. The tool treats the board as both the clue grid and the current state, so it will not perform error checking (it cannot distinguish given digits from user entries). It simply returns the next logical step. Use this when you cannot separate the original clues from the user's entries. Returns: { technique, explanation, action, tutorial_links } on success, or { incorrect_cells, message } if errors found. Use this for step-by-step coaching — one hint at a time. Every response includes a solve_url for continuing the same board interactively and, on success, tutorial_links for the named technique.
get_sudoku_puzzleread-onlyGet a random sudoku puzzle from the PlaySudoku.us collection. Puzzle is returned as an 81-character string: digits 1–9 for given cells, 0 for empty cells. The response includes the techniques required to solve the puzzle and a solve_url to the interactive solver. Difficulties: easy (30–38 givens), medium (44–50), hard (50–55), expert (56–62), evil (56–62). Optional: pass a technique name (e.g. "X-Wing", "Hidden Pair") to get a puzzle that specifically requires that technique — useful when the user wants to practice a particular solving method. If no puzzle at the requested difficulty uses that technique, the error message lists which difficulties do have it. Use solve_sudoku for a full step-by-step solution, or explain_next_step to get one hint at a time. Every response includes a solve_url where the same puzzle can be continued in the interactive solver.
solve_sudokuread-onlySolve a sudoku puzzle completely with step-by-step logical deduction. Input: 81-character string of digits (0 or . for empty cells). Whitespace is tolerated. Returns: every solving step with technique name + human-readable explanation + action, the final solution string, a technique summary (counts), and tutorial links. Only uses logical techniques — never guesses. If the puzzle cannot be solved logically, the steps will end before completion. Use this when the user wants to understand how to solve a puzzle from scratch. The response includes a solve_url for continuing the same board interactively and tutorial_links for techniques used in the solution.

Schemas: list_tools.

Similar MCP servers

Official server.json
{
  "name": "io.github.vincentping/playsudoku",
  "title": "PlaySudoku",
  "$schema": "https://static.modelcontextprotocol.io/schemas/2025-12-11/server.schema.json",
  "remotes": [
    {
      "url": "https://mcp.playsudoku.us/mcp",
      "type": "streamable-http"
    }
  ],
  "version": "1.0.0",
  "description": "Deterministic Sudoku puzzles, progress checks, logical hints, and step-by-step solutions."
}