Nonobench MCP server
online · 100% uptimeio.github.mauricekleine/nonobench·v1.1.0·6 starsAn open-source benchmark of how well LLMs solve nonogram puzzles, from 5x5 to 20x20.
6 stars
Reviews
Write oneNobody has reviewed Nonobench yet.
If you have run it, two minutes of your experience saves the next person an afternoon.
Nonobench tools (11)
write = sends, deletes, buys or postscheck_solutionFreeCheck a grid against a puzzle's clues, using the same rule as the benchmark grader. Reports which rows and columns do not match.
compare_modelsFreeSide-by-side core overall and per-size accuracy, cost, latency and token results for model or family names.
get_leaderboardFreeModels ranked by accuracy; defaults to all effort levels for compatibility.
get_model_puzzlesFreeWhich puzzles one model solved, missed, timed out on, or has not run.
get_model_resultsFreeAccuracy, cost, latency and token use for one model, broken down by grid size.
get_puzzleFreeOne puzzle, including the clue text models were prompted with. The reference solution is only included on request; some puzzles have several valid solutions.
get_puzzle_resultsFreePer-model outcomes for one puzzle. Answers are omitted unless requested.
list_familiesFreeModel families, available efforts and best variants.
list_providersFreeProvider ids, names, families and variant counts.
list_puzzlesFreeThe benchmark puzzles with their ids and row/column clues.
list_runsFreeIndividual benchmark runs (one model on one puzzle), optionally with the raw prompt and model output.
Public scan report
scanner v0.1.10 · 2026-10-01 · same rubric, same numbers if you re-run it
- –Code scanremote-only server, no package to scann/a
- Live reliabilityremote reachable in 1029ms20/20
- Tool poisoning11 tool descriptions checked15/15
- Auth qualityopen endpoint, read-only tools10/15
- Maintenancelast push 1 days ago15/15
- Maintainer identityregistry namespace matches repository owner; GitHub account older than a year8/10
How Nonobench compares
Against every graded MCP server, from our own scans and uptime checks. Updated after each scan run.
- Safety score
- 91/100
- higher than 85% of 48,255 servers
- Tools
- 11
- the typical server has 7
- Tools that change things
- 0%
- typical: 0%. Fewer write tools means less an agent can break
- Uptime
- 100%
- of our recent checks; the typical remote server answers 100%
- Response time
- 260 ms
- faster than 54% of 30,031 servers
- GitHub stars
- 6
- more than 85% of 28,688 servers
What its tools let an agent do: 11 read
Install Nonobench in Claude Code, Cursor or VS Code
claude mcp add --transport http nonobench https://www.nonobench.com/mcp
What the publisher says
From the Nonobench repository's README, as published. We do not edit it. Read it on GitHub
Nonobench
A benchmark suite for evaluating LLM reasoning capabilities on Nonogram (Picross) puzzle solving across different grid sizes. Results are published at nonobench.com.
Built by Maurice Kleine.
What is a Nonogram?
Nonograms (also known as Picross, Griddlers, or Paint by Numbers) are logic puzzles where you fill in cells on a grid based on numeric clues for each row and column. The clues indicate consecutive groups of filled cells, separated by at least one empty cell. Solving these puzzles requires logical deduction and constraint satisfaction - making them an excellent test of LLM reasoning abilities.
Project Structure
nonobench/
├── bench/ # Benchmark runner, results database and exporter
└── visualizer/ # TanStack Start dashboard on Cloudflare Workers (nonobench.com), also home of the puzzle setPrerequisites
- Bun runtime (v1.4+)
- Node.js v24+ (for the visualizer)
- OpenRouter API key
Quick Start
1. Clone the Repository
git clone https://github.com/mauricekleine/nonobench.git
cd nonobench2. Set Up Environment Variables
Create a .env file in the bench/ directory (see bench/.env.example):
OPENROUTER_API_KEY=your_openrouter_api_key_hereThis is the only variable needed. The visualizer builds without any.
3. Running Benchmarks
cd bench
bun install
bun run bench # prints the plan and exits, no API calls
bun run bench --model <name> # run one model (repeat --model for more)
bun run bench --all-missing # run every configured model with missing work
bun run bench --model <name> --sizes 20x20 # opt in to the extended tierRuns are incremental and append-only: a model/puzzle pair that already has a successful result is never run again, and the database refuses to overwrite it. Failed runs are retried on the next invocation. Results are stored in bench/results.db (SQLite).
Useful flags:
- --max-cost stops launching new puzzles once this session's spend reaches the amount. Requests already in flight still finish, so a session can overshoot by up to --parallel requests per selected model. Use the OpenRouter key's own limit as the hard ceiling.
- --parallel sets concurrent requests per model (default 10); lower it for rate-limited providers.
- --limit runs only the first n puzzles of each size, for pilots against a scratch database (NONOBENCH_DB=/tmp/copy.db).
Output modes
New runs ask for the answer as strict structured output (a JSON schema, only routed to endpoints that enforce it), so models cannot wrap the grid in prose. For a few models the schema-enforcing endpoints measurably hurt answers; those run in text mode instead (outputMode: "text" in bench/constants.ts, chosen by a 5x5 A/B with the benchmark prompt). Every run records its mode, and grading is identical for both: the answer must satisfy every clue. The runner also stops a model that solves none of the 5x5 puzzles with structured output, and one whose early runs mostly report zero reasoning tokens, since both point at the harness rather than the model.
After benchmarking, export results for the visualizer:
bun run exportThis writes visualizer/app/results.json (aggregates) and visualizer/public/results-raw.json (every run, including prompts and outputs).
Other scripts:
- bun test - parser, grader, database-policy and puzzle checks
- bun run typecheck - TypeScript check
- bun run regrade - read-only comparison of stored grades against the current grader
Running Against a Local Model
The runner can benchmark a model that you serve yourself. Any server with an OpenAI-compatible /v1 endpoint works: vLLM, SGLang, llama.cpp, LM Studio, and Ollama.
Shortened. The full README is on GitHub.
Nothing above is checked by us. What we check is on the safety report.
Nonobench: common questions
- Is Nonobench MCP server safe?
- Yes, by our scan: it is graded A (91/100). Read the Nonobench safety report
- How do I install Nonobench?
- It runs remotely at www.nonobench.com. Add it to Claude Code, Cursor, VS Code or Claude Desktop with the snippets above, or call it through the mcp.market gateway without installing anything.
- Does Nonobench need an API key?
- Not as far as the registry entry and our scan can tell: no credentials are declared or required.
- Is Nonobench maintained?
- The last commit was 35 days ago (2026-09-30). The latest release is v1.1.0.
- Is Nonobench up?
- 100% of our last 28 checks got an answer. We check remote servers about four times a day.
- How does Nonobench compare with other MCP servers?
- safety score 91/100 (higher than 85% of 48,255 servers); tools 11 (the typical server has 7); tools that change things 0% (typical: 0%. Fewer write tools means less an agent can break). Full comparison.