mcp-z3-prover について
mcp-z3-proverは、Z3ソルバーAPIをMCPサーバーとして公開します。制約問題の構築、求解や最適化、変数値の確認を行うクライアント向けです。
主な機能
- 01ブール、整数、実数変数の作成
- 02ソルバー制約の追加
- 03制約問題の求解
- 04目的関数の最適化
- 05モデル値の取得と変数一覧表示
- 06ソルバー状態のリセット
活用シーン
- 01変数と制約による問題のモデル化
- 02整数または実数制約の解の探索
- 03ソルバーの目的関数の最適化
- 04解の値の確認やソルバーの再初期化
MCP 対応
変数作成、制約管理、求解、最適化、モデル確認、リセットのためのZ3ツールをMCPクライアントに公開します。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
ツール
11掲載時のツール一覧 · 2 週間前に更新
| パラメーター | 型 | 必須 | 説明 |
|---|---|---|---|
| name | string | はい |
詳細
mcp-z3-prover
Z3 ソルバー API を公開する MCP サーバー
インストール
pip install mcp-z3-prover
使用方法
from mcp_z3_prover import mcp
# Run the server
mcp.run()
または、コマンドラインから実行します。
mcp-z3-prover
MCP ツール
サーバーは以下のツールを公開します。
- create_bool_var - ブール変数を作成します
- create_int_var - 整数変数を作成します
- create_real_var - 実数変数を作成します
- create_int_constant - 整数定数を作成します
- create_real_constant - 実数定数を作成します
- add_constraint - ソルバーに制約を追加します
- solve - 現在の問題を解きます
- get_model_value - モデルから変数の値を取得します
- optimize - 最適化の目的関数を指定して解きます
- reset_solver - ソルバーの状態をリセットします
- list_variables - 作成済みのすべての変数を一覧表示します
例
# Create variables
create_int_var("x")
create_int_var("y")
# Add constraints
add_constraint("int:x + int:y == 10")
add_constraint("int:x > 0")
add_constraint("int:y > 0")
# Solve
result = solve()
# Returns: {"status": "sat", "model": {"x": "5", "y": "5"}}
# Get specific values
x_val = get_model_value("int:x")
整数の素因数分解の例
# Factor n = 4295229443 where n = p * q with q <= sqrt(n)
create_int_var("p")
create_int_var("q")
# Add constraints
add_constraint("int:p * int:q == 4295229443")
add_constraint("4295229443 > int:p")
add_constraint("4295229443 > int:q")
add_constraint("int:q <= 65537") # sqrt(4295229443) ≈ 65537
add_constraint("int:q > 1")
add_constraint("int:p > 1")
add_constraint("int:q % 2 != 0") # q is odd
add_constraint("int:p % 2 != 0") # p is odd
# Solve
result = solve()
# Returns: {"status": "sat", "model": {"p": "65539", "q": "65537"}}
# Verification: 65537 * 65539 = 4295229443
開発
git clone https://github.com/daedalus/mcp-z3-prover.git
cd mcp-z3-prover
pip install -e ".[test]"
# run tests
pytest
# format
ruff format src/ tests/
# lint
ruff check src/ tests/
# type check
mypy src/
MCP 登録
mcp-name: io.github.daedalus/mcp-z3-prover
コメント
Markdown 対応
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。