z3-solver-mcp-server
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@z3-solver-mcp-server Find positive integers x and y such that 2x + 3y = 17."
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Z3 SMT Solver MCP Server
A Model Context Protocol (MCP) server that provides SMT (Satisfiability Modulo Theories) solving capabilities using the Z3 theorem prover. This server allows Claude and other MCP clients to solve complex constraint satisfaction problems, mathematical equations, logic puzzles, and optimization problems.
Features
SMT-LIB2 Support: Accepts problems in the standard SMT-LIB2 format
Z3 Integration: Powered by Microsoft's Z3 theorem prover
Mathematical Problem Solving: Handle algebra, logic, optimization, and constraint satisfaction
Simple Interface: Single tool with string input/output
Related MCP server: Logic-LM MCP Server
Installation
Prerequisites
Python 3.8 or higher
uv (recommended) or pip
Setup
Clone this repository:
git clone <repository-url>
cd z3-mcp-serverInstall dependencies:
uv syncOr with pip:
pip install z3-solver mcpMake the server executable:
chmod +x src/z3_mcp_server/main.pyUsage
With Claude Desktop
Add the server to your Claude Desktop configuration file:
macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
Windows: %APPDATA%/Claude/claude_desktop_config.json
{
"mcpServers": {
"z3-solver": {
"command": "uv",
"args": ["--directory", "/path/to/z3-mcp-server", "run", "main.py"],
"env": {}
}
}
}Example Problems
Once configured, you can ask Claude to solve various types of problems:
Age Problems:
"Joey is 20 years younger than Becky. In two years, Becky will be twice as old as Joey. How old are they?"
Algebra:
"Find integers x and y such that 2x + 3y = 17 and both are positive."
Logic Puzzles:
"Three people have ages 21, 22, and 23. Alice is not 21, and Bob is older than Alice. What are their ages?"
Optimization:
"A farmer has 100 feet of fencing. What rectangular dimensions maximize the enclosed area?"
Tool Reference
solve_smt_lib2
Solves constraint problems specified in SMT-LIB2 format.
Parameters:
problem(string): The constraint problem in SMT-LIB2 syntax
Returns:
String containing the solver result:
sat+ model if satisfiableunsatif no solution existsunknownif solver cannot determineError message if parsing fails
Example SMT-LIB2 Input:
(declare-const x Int)
(declare-const y Int)
(assert (= (+ x y) 10))
(assert (= (* x y) 21))
(check-sat)
(get-model)SMT-LIB2 Quick Reference
Basic Syntax
(declare-const name Type)- Declare a variable(assert condition)- Add a constraint(check-sat)- Check if constraints are satisfiable(get-model)- Get variable assignments (if sat)
Types
Int- IntegersReal- Real numbersBool- Boolean values
Operations
Arithmetic:
+,-,*,/,modComparison:
=,<,>,<=,>=Logic:
and,or,notSpecial:
distinct(all different)
Transport Support
Currently supports:
stdio: For use with Claude Desktop and similar local clients
Planned:
HTTP/WebSocket: For web-based integrations
Troubleshooting
Common Issues
Server not starting: Ensure Python and z3-solver are properly installed
Permission denied: Make sure the main.py file is executable
Import errors: Verify all dependencies are installed in the correct environment
Debug Mode
Run the server directly in the Inspector:
npx @modelcontextprotocol/inspector src/z3_mcp_server/main.py uv --directory /path/to/z3-mcp-server run main.pyContributing
Contributions are welcome! Please:
Fork the repository
Create a feature branch
Add tests for new functionality
Submit a pull request
Available Tools
1 toolsolve_smt_lib2B
Solve the constraint problem provided in SMT-LIB2 format
Inputs: problem (required).
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
Loading tool schema changelog…
TDQS
Scored across 1 tool
With only one tool, there is no possibility of confusion or overlap. The tool's purpose is singular and clear, so disambiguation is perfect.
The tool name 'solve_smt_lib2' follows a clear verb_noun pattern, indicating the action and the input format. Consistency is trivially high with a single tool.
The server has exactly one tool, which feels minimal for a solver domain. While it covers the core solve operation, a typical solver server might offer additional tools like model extraction or incremental assertions, making the count borderline.
The single tool accepts a full SMT-LIB2 script, which allows users to express a wide range of constraint problems including assertions, checks, and models. However, the lack of incremental interaction or separate utilities (e.g., parsing or model retrieval) is a minor gap.
Maintenance
Related MCP Connectors
Jailbreak-proof AI guardrails. Automated Reasoning SMT solver, not an LLM. ZK proofs included.
Deterministic reasoning stack for AI agents: simulate, decide & compute, plus cross-domain tools.
Integrates Wolfram Language and Wolfram|Alpha accessing curated data and sophisticated algorithms.
Solve production, blending, transport and scheduling problems with LP and MIP.
Related MCP Servers
- AlicenseBqualityFmaintenanceA best-effort universal logic and numerical solver interface using MCP that implements the 'LLM sandwich' model to process queries, call dedicated solvers (ortools, cvxpy, z3), and verbalize results.764Apache 2.0
- AlicenseNot gradedqualityDmaintenanceProvides symbolic reasoning capabilities by converting natural language logical problems into Answer Set Programming (ASP) format and solving them using the Clingo solver. Enables users to perform formal logical reasoning, verify logical arguments, and get step-by-step explanations for complex logical problems.5MIT
- AlicenseAqualityDmaintenanceEnables solving complex combinatorial optimization problems with logical and numerical constraints through multiple solvers (Z3, CVXPY, HiGHS, OR-Tools). Specializes in portfolio optimization, scheduling, resource allocation, and constraint satisfaction problems.55Apache 2.0
- AlicenseNot gradedqualityDmaintenanceEnables formal logical reasoning, mathematical problem-solving, and proof construction across 11 logic systems including propositional, predicate, modal, fuzzy, and probabilistic logic. Integrates external solvers (Z3, ProbLog, Clingo) for advanced reasoning, with support for proof storage, argument scoring, and cross-system translation.1MIT