An open-source benchmark of how well LLMs solve nonogram puzzles, from 5x5 to 20x20.
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.
Check a grid against a puzzle's clues, using the same rule as the benchmark grader. Reports which rows and columns do not match.
Puzzle id from list_puzzles
Row-major string of 0 (empty) and 1 (filled), width × height characters
Check a grid against a puzzle's clues, using the same rule as the benchmark grader. Reports which rows and columns do not match.
| Argument | Type | Description |
|---|---|---|
| id* | string | Puzzle id from list_puzzles |
| grid* | string | Row-major string of 0 (empty) and 1 (filled), width × height characters |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"id",
"grid"
],
"properties": {
"id": {
"type": "string",
"description": "Puzzle id from list_puzzles"
},
"grid": {
"type": "string",
"description": "Row-major string of 0 (empty) and 1 (filled), width × height characters"
}
}
}Side-by-side core overall and per-size accuracy, cost, latency and token results for model or family names.
| Argument | Type | Description |
|---|---|---|
| models* | array | 2 to 20 model variant ids or family names, e.g. claude-opus-5.5 or gpt-6-astra-xhigh |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"models"
],
"properties": {
"models": {
"type": "array",
"items": {
"type": "string"
},
"maxItems": 20,
"minItems": 2,
"description": "2 to 20 model variant ids or family names, e.g. claude-opus-5.5 or gpt-6-astra-xhigh"
}
}
}Models ranked by accuracy; defaults to all effort levels for compatibility.
| Argument | Type | Description |
|---|---|---|
| size | string | Grid size to filter on |
| effort | string | best, all (default), or one effort level; empty means all |
| family | string | Comma-separated family ids; empty means no filter |
| version | string | Comma-separated benchmark versions: 1.0, 1.1, 1.2; empty means all |
| provider | string | Comma-separated provider ids; empty means no filter |
| reasoning | boolean | Only reasoning (true) or non-reasoning (false) variants |
| min_correct | integer | Minimum puzzles solved in the selected tier; default 0 includes unsolved variants |
| open_weights | boolean | Only open-weight (true) or closed (false) models |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"size": {
"enum": [
"5x5",
"10x10",
"15x15",
"20x20"
],
"type": "string",
"description": "Grid size to filter on"
},
"effort": {
"type": "string",
"description": "best, all (default), or one effort level; empty means all"
},
"family": {
"type": "string",
"description": "Comma-separated family ids; empty means no filter"
},
"version": {
"type": "string",
"description": "Comma-separated benchmark versions: 1.0, 1.1, 1.2; empty means all"
},
"provider": {
"type": "string",
"description": "Comma-separated provider ids; empty means no filter"
},
"reasoning": {
"type": "boolean",
"description": "Only reasoning (true) or non-reasoning (false) variants"
},
"min_correct": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": 0,
"description": "Minimum puzzles solved in the selected tier; default 0 includes unsolved variants"
},
"open_weights": {
"type": "boolean",
"description": "Only open-weight (true) or closed (false) models"
}
}
}Which puzzles one model solved, missed, timed out on, or has not run.
| Argument | Type | Description |
|---|---|---|
| model* | string | Model variant id as listed on the leaderboard, e.g. claude-opus-5.5-high |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"model"
],
"properties": {
"model": {
"type": "string",
"description": "Model variant id as listed on the leaderboard, e.g. claude-opus-5.5-high"
}
}
}Accuracy, cost, latency and token use for one model, broken down by grid size.
| Argument | Type | Description |
|---|---|---|
| model* | string | Model name as listed on the leaderboard, e.g. gpt-5.4-xhigh |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"model"
],
"properties": {
"model": {
"type": "string",
"description": "Model name as listed on the leaderboard, e.g. gpt-5.4-xhigh"
}
}
}One puzzle, including the clue text models were prompted with. The reference solution is only included on request; some puzzles have several valid solutions.
| Argument | Type | Description |
|---|---|---|
| id* | string | Puzzle id from list_puzzles |
| include_solution | boolean | Include a reference solution |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"description": "Puzzle id from list_puzzles"
},
"include_solution": {
"type": "boolean",
"description": "Include a reference solution"
}
}
}Per-model outcomes for one puzzle. Answers are omitted unless requested.
| Argument | Type | Description |
|---|---|---|
| id* | string | Puzzle id from list_puzzles |
| effort | string | best, all (default), or one effort level |
| family | string | Comma-separated family ids; empty means no filter |
| provider | string | Comma-separated provider ids; empty means no filter |
| reasoning | boolean | Only reasoning (true) or non-reasoning (false) variants |
| open_weights | boolean | Only open-weight (true) or closed (false) models |
| include_answers | boolean | Include each model's answer grid |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"description": "Puzzle id from list_puzzles"
},
"effort": {
"type": "string",
"description": "best, all (default), or one effort level"
},
"family": {
"type": "string",
"description": "Comma-separated family ids; empty means no filter"
},
"provider": {
"type": "string",
"description": "Comma-separated provider ids; empty means no filter"
},
"reasoning": {
"type": "boolean",
"description": "Only reasoning (true) or non-reasoning (false) variants"
},
"open_weights": {
"type": "boolean",
"description": "Only open-weight (true) or closed (false) models"
},
"include_answers": {
"type": "boolean",
"description": "Include each model's answer grid"
}
}
}Model families, available efforts and best variants.
No arguments.
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {}
}Provider ids, names, families and variant counts.
No arguments.
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {}
}The benchmark puzzles with their ids and row/column clues.
| Argument | Type | Description |
|---|---|---|
| size | string | Grid size to filter on |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"size": {
"enum": [
"5x5",
"10x10",
"15x15",
"20x20"
],
"type": "string",
"description": "Grid size to filter on"
}
}
}Individual benchmark runs (one model on one puzzle), optionally with the raw prompt and model output.
| Argument | Type | Description |
|---|---|---|
| size | string | Grid size to filter on |
| limit | integer | Default 100 |
| model | string | Only runs of this model variant id |
| offset | integer | Runs to skip, for paging; default 0 |
| puzzle_id | string | Only runs on this puzzle id from list_puzzles |
| include_output | boolean | Include raw prompt and model output (large) |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"size": {
"enum": [
"5x5",
"10x10",
"15x15",
"20x20"
],
"type": "string",
"description": "Grid size to filter on"
},
"limit": {
"type": "integer",
"maximum": 500,
"minimum": 1,
"description": "Default 100"
},
"model": {
"type": "string",
"description": "Only runs of this model variant id"
},
"offset": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": 0,
"description": "Runs to skip, for paging; default 0"
},
"puzzle_id": {
"type": "string",
"description": "Only runs on this puzzle id from list_puzzles"
},
"include_output": {
"type": "boolean",
"description": "Include raw prompt and model output (large)"
}
}
}