smt-sudoku-mcp
╭─╮╭┬╮╶┬╴ ╭─╮╷ ╷╶┬╮╭─╮╷╭ ╷ ╷
╰─╮│││ │ ╰─╮│ │ │││ │├┴╮│ │
╰─╯╵ ╵ ╵ ╰─╯╰─╯╶┴╯╰─╯╵ ╵╰─╯smt-sudoku-mcp
Теперь ваши агенты могут уверенно играть в судоку!
MCP-сервер, демонстрирующий мощь решения задач по модулю теорий (SMT) с помощью Z3 на классической задаче удовлетворения ограничений — судоку.
Судоку естественным образом отображается на примитивы SMT: генерация головоломки означает поиск модели, удовлетворяющей ограничениям судоку, а затем доказательство того, что уменьшенный набор подсказок по-прежнему имеет единственное решение; проверка сетки означает проверку тех же ограничений на заданных значениях ячеек; решение головоломки означает поиск модели или доказательство её отсутствия.
Инструменты
Все четыре инструмента не имеют состояния: каждый вызов явно принимает и/или возвращает полную сетку, без какого-либо состояния на стороне сервера.
Сетка судоку представляется как {"rows": [[...9 ints...], ...9 rows...]}, где каждая ячейка равна 1-9 для заданной цифры или 0 для пустой ячейки. Любой результат инструмента, который называет конкретную ячейку (конфликт), сообщает row/col с индексацией от 1, что соответствует общепринятому описанию ячеек судоку в тексте (строка 1, столбец 1 — верхняя левая ячейка).
generate_sudoku_puzzle
Генерирует новую судоку-головоломку с единственным решением.
Вход:
difficulty— одно из"easy","medium"или"hard"(по умолчанию"medium"), соответствующее приблизительному целевому количеству подсказок.Выход:
{"puzzle": <grid>, "difficulty": <str>, "givens": <int>}—givens— фактическое количество заполненных ячеек, которое может быть немного выше целевого, если удаление дополнительных ячеек нарушило бы единственность.
validate_partial_sudoku_solution
Проверяет, свободна ли частично заполненная сетка от конфликтов, и если да, можно ли её ещё завершить.
Вход:
grid— частичная сетка (0 для пустых ячеек).Выход:
{"has_conflicts": <bool>, "conflicts": [<cell>, ...], "is_completable": <bool | null>}—is_completableравенnullпри наличии конфликтов, поскольку вопрос о завершимости не имеет смысла, пока они не разрешены.
validate_full_sudoku_solution
Проверяет, является ли полностью заполненная сетка правильным решением судоку.
Вход:
grid— ожидается, что в ней нет пустых ячеек.Выход:
{"is_valid": <bool>, "has_empty_cells": <bool>, "conflicts": [<cell>, ...]}.
solve_sudoku_puzzle
Решает нерешённую сетку или сообщает, почему её невозможно решить.
Вход:
grid— частичная сетка для решения (0 для пустых ячеек).Выход:
{"status": "satisfiable" | "conflicting_givens" | "unsatisfiable", "solution": <grid | null>, "conflicts": [<cell>, ...]}.conflictsзаполняется только когдаstatusравен"conflicting_givens"(две заданные ячейки напрямую нарушают правило строки/столбца/блока);"unsatisfiable"означает, что заданные ячейки попарно не конфликтуют, но завершение не существует.
Related MCP server: Gurddy MCP Server
Установка
Требуется Python 3.13+. Пакет опубликован на PyPI.
Самый простой способ запустить его — с помощью uvx, который при первом использовании загружает пакет во временное окружение и не требует отдельного шага установки:
uvx smt-sudoku-mcpВ качестве альтернативы установите его с помощью pip (или uv pip) и запустите установленный консольный скрипт напрямую:
pip install smt-sudoku-mcp
smt-sudoku-mcpЧтобы работать с исходным кодом, а не с опубликованным пакетом, см. раздел Разработка ниже.
Использование с MCP-клиентом
Этот сервер по умолчанию работает с MCP через stdio, поэтому любой MCP-клиент, который может запустить подпроцесс, может использовать его без дополнительной настройки. Установите SMT_SUDOKU_MCP_TRANSPORT=streamable-http, если клиенту нужно обращаться к отдельному HTTP-сервису; см. Конфигурация.
Claude Code
claude mcp add smt-sudoku -- uvx smt-sudoku-mcpClaude Desktop
Добавьте запись в разделе Настройки → Разработчик → Изменить конфигурацию (claude_desktop_config.json):
{
"mcpServers": {
"smt-sudoku": {
"command": "uvx",
"args": ["smt-sudoku-mcp"]
}
}
}Другие MCP-клиенты и агентные фреймворки
Любой клиент, принимающий сырое определение MCP-сервера — Cursor, Windsurf, VS Code или пользовательский агент на основе MCP SDK — может использовать ту же пару command/args: uvx и ["smt-sudoku-mcp"]. Для streamable-http запустите сервер отдельно с SMT_SUDOKU_MCP_TRANSPORT=streamable-http uvx smt-sudoku-mcp и укажите клиенту адрес http://<host>:<port>/mcp вместо команды для запуска.
После подключения агент может вызывать четыре указанных выше инструмента так же, как и любой другой. Например, просьба агенту «сгенерировать сложную судоку-головоломку, затем решить её и проверить решение» приведёт к последовательному вызову generate_sudoku_puzzle, solve_sudoku_puzzle и validate_full_sudoku_solution без дополнительных указаний, поскольку описания и схемы каждого инструмента достаточны для того, чтобы агент сам спланировал последовательность.
Конфигурация
Переменные окружения, все необязательные:
Переменная | По умолчанию | Описание |
|
|
|
|
| Хост для привязки, только |
|
| Порт для привязки, только |
| (none) | Разрешённые источники браузера через запятую, только |
Разработка
Чтобы запустить сервер из исходников вместо опубликованного пакета, используйте uv:
uv sync
uv run smt-sudoku-mcpСм. AGENTS.md с заметками по архитектуре и полным набором команд разработки (just -l).
Вклад
Приветствуются сообщения об ошибках и pull request'ы.
Лицензия
MIT.
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceMCP-ORTools integrates Google's OR-Tools constraint programming solver with Large Language Models through the MCP, enabling AI models to: Submit and validate constraint models Set model parameters Solve constraint satisfaction and optimization problems Retrieve and analyze solution21MIT
- AlicenseNot gradedqualityDmaintenanceEnables solving Constraint Satisfaction Problems (CSP) like N-Queens, graph coloring, and Sudoku, as well as Linear Programming optimization problems through both MCP tools and HTTP API endpoints.2MIT
- AlicenseNot gradedqualityNot gradedmaintenanceAn MCP server that enables Large Language Models to interactively create, edit, and solve constraint models using backends like MiniZinc, Z3, PySAT, and Clingo. It bridges natural language with symbolic reasoning for solving complex logical, SAT, SMT, and optimization problems.
- FlicenseAqualityDmaintenanceEnables solving constraint satisfaction problems, mathematical equations, and logic puzzles using the Z3 SMT solver through natural language.13
Related MCP Connectors
Hosted MCP with 91 agent tools: X, domains, SEO, Maps, Trends, Search, YouTube, TikTok, and more.
500+ deterministic tools for AI agents: math, conversion, validation, hashing, encoding, date/time.
Free public MCP for AI agents — 193 tools, 44 workflows. No API key.
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/anirbanbasu/smt-sudoku-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server