mcpField
M
mcp-z3-prover

mcp-z3-prover

ローカル
github.com/daedalus科学・教育127 週間前に更新

mcp-z3-prover について

mcp-z3-proverは、Z3ソルバーAPIをMCPサーバーとして公開します。制約問題の構築、求解や最適化、変数値の確認を行うクライアント向けです。

主な機能

  1. 01ブール、整数、実数変数の作成
  2. 02ソルバー制約の追加
  3. 03制約問題の求解
  4. 04目的関数の最適化
  5. 05モデル値の取得と変数一覧表示
  6. 06ソルバー状態のリセット

活用シーン

  1. 01変数と制約による問題のモデル化
  2. 02整数または実数制約の解の探索
  3. 03ソルバーの目的関数の最適化
  4. 04解の値の確認やソルバーの再初期化

MCP 対応

変数作成、制約管理、求解、最適化、モデル確認、リセットのためのZ3ツールをMCPクライアントに公開します。

設定

ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。

mcp.json · 共通設定
{
"mcpServers": {
"daedalus-mcp-z3-prover": {
"command": "uvx",
"args": [
"mcp-z3-prover"
]
}
}
}
起動コマンドuvx mcp-z3-prover

ローカルサーバーにはマシン上の実行環境(Node.js 18 以上など)が必要です。設定ファイルの場所はクライアントごとに異なります。

パッケージ
pypimcp-z3-prover0.1.0

ツール

11

掲載時のツール一覧 · 2 週間前に更新

パラメーター型必須説明
namestringはい

詳細

mcp-z3-prover

Z3 ソルバー API を公開する MCP サーバー

PyPI Python Ruff

インストール

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

コメント

MCP は初めてですか?

プロトコルの概要から最初のサーバーの導入まで、よくある疑問にまとめて答えます。

AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。