Pact Tooling について
Pact Tooling は、Kadena Chainweb のコントラクト開発者向け Pact 5 MCP サーバーです。REPL テストや言語上の罠の検出、ガス見積もり、インターフェース差分、フォーマット確認を行い、秘密鍵は扱いません。
主な機能
- 01Pact REPL テストの実行
- 02重大な言語上の罠の検出
- 03ガス使用量の見積もり
- 04公開インターフェースの比較
- 05コードフォーマットの確認
活用シーン
- 01コントラクトテストと失敗内容の確認
- 02リスクのある Pact 5 の記述パターンの検出
- 03開発時のガス使用量の評価
- 04インターフェース変更の互換性確認
MCP 対応
Claude、Cursor、VS Code などの MCP クライアントに Pact 開発ツールを提供します。Pact Tooling は Pact CLI を使い、Chainweb ノードを必要としません。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
npx -y @pact-community/mcp-pactPACT_COMMUNITY_WORKSPACE_ROOTWorkspace root directory; all file access is confined inside it.PACT_COMMUNITY_PACT_BINPath to the pact binary (default: pact on PATH).ローカルサーバーにはマシン上の実行環境(Node.js 18 以上など)が必要です。設定ファイルの場所はクライアントごとに異なります。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
pact-mcp — Pact と Chainweb 用の MCP サーバー
AI エージェントに、Kadena Chainweb 上の Pact 5 開発サイクルへの安全で監査可能なアクセスを提供する Model Context Protocol サーバーです。
REPL テストの実行、モジュールに潜む重大な言語上の落とし穴のスキャン、ガスの見積もり、 Chainweb ノードへの問い合わせや送信を、Claude、Cursor、VS Code、または MCP 互換のクライアントから行えます。すべてのツールは、厳格で検証済みのセキュリティ 基準のもとで動作し、秘密鍵に触れるツールはありません。
{
"mcpServers": {
"pact": {
"command": "npx",
"args": ["-y", "@pact-community/mcp-pact"],
"env": { "PACT_COMMUNITY_WORKSPACE_ROOT": "/path/to/your/project" }
}
}
}
サーバー
| サーバー | インストール | ツール | 機能 |
|---|---|---|---|
Pact Tooling — @pact-community/mcp-pact | 6 | REPL テストの実行、重大な落とし穴のスキャン、ガスの見積もり、インターフェースの差分確認、フォーマットチェック | |
Chainweb API — @pact-community/mcp-chainweb | 11 | /local によるシミュレーション、署名済み /send、ポーリング、テーブルの読み取り、SPV 証明、モジュールのデプロイ |
どちらも公式の
MCP レジストリに、
io.github.Pact-Community-Organization/pact と
io.github.Pact-Community-Organization/chainweb として登録されています。
インストール
VS Code(ワンクリック)
GitHub Copilot と一緒に VS Code をお使いですか?ワンクリックでインストールできます。
ボタンをクリックすると VS Code が開き、設定があらかじめ入力されます。MCP Servers ビューで検索するか、コマンドラインから追加することもできます。
code --add-mcp '{"name":"pact","command":"npx","args":["-y","@pact-community/mcp-pact"],"env":{"PACT_COMMUNITY_WORKSPACE_ROOT":"${workspaceFolder}","PACT_COMMUNITY_PACT_BIN":"pact"}}'
VS Code Insiders では、リンクに
vscode-insiders:を、コマンドラインにcode-insidersを使用してください。
Claude Code
claude mcp add pact -e PACT_COMMUNITY_WORKSPACE_ROOT=/path/to/your/project \
-- npx -y @pact-community/mcp-pact
あらゆる MCP クライアント
クライアントの設定に両方のサーバーを追加してください。
{
"mcpServers": {
"pact": {
"command": "npx",
"args": ["-y", "@pact-community/mcp-pact"],
"env": {
"PACT_COMMUNITY_WORKSPACE_ROOT": "/path/to/your/project",
"PACT_COMMUNITY_PACT_BIN": "pact"
}
},
"chainweb": {
"command": "npx",
"args": ["-y", "@pact-community/mcp-chainweb"],
"env": {
"PACT_COMMUNITY_WORKSPACE_ROOT": "/path/to/your/project",
"PACT_COMMUNITY_CHAINWEB_MODE": "devnet",
"PACT_COMMUNITY_CHAINWEB_PROFILE": "devnet",
"PACT_COMMUNITY_CHAINWEB_BASE_URL": "http://localhost:8081",
"PACT_COMMUNITY_CHAINWEB_NETWORK_ID": "development"
}
}
}
}
各サーバーの README には、ツールの一覧と環境変数がすべて記載されています。 Pact Tooling · Chainweb API。
最初の 10 分
- Pact CLI をインストールする — Pact Tooling は REPL の実行とガスの見積もりに使用します。kadena-io/pact-5 からリリースをダウンロードし、
pactをPATHに追加して、pact --versionで確認します。 - サーバーを追加する — 上記の設定を使ってクライアントに追加し、
PACT_COMMUNITY_WORKSPACE_ROOTがコントラクトプロジェクトを指すようにします。 - エージェントに尋ねる:
- "
contracts/token.pactで Pact 5 の重大な落とし穴をスキャンして" — 2 進数以外の+、enforce内での DB 読み取り、組み込み機能のシャドーイングなどを検出します。 - "
tests/token.replを実行して、失敗を要約して" — 実際の Pact インタープリターでファイルを実行し、結果を解析します。 - "
token.pactの公開インターフェイスをtoken-v2.pactと比較して" — 追加、削除、変更された関数と、変更が互換性を損なうかどうかを報告します。 - "チェーン 0 の現在のブロック高は?" — Chainweb ノードに問い合わせます。
- "
Pact Tooling のすべての機能は CLI だけで動作し、ノードは不要です。Chainweb API は Chainweb 互換の任意のノードで動作します。PACT_COMMUNITY_CHAINWEB_BASE_URL を開発ネットワークに設定するか、読み取り専用の testnet06/mainnet プロファイルを使ってパブリックネットワークに問い合わせます。
セキュリティ
両サーバーは、同じテスト済みの基本方針を適用します(詳細は SECURITY.md を参照してください)。
- 秘密鍵は一切扱いません。
chainweb_send、chainweb_deploy_module、chainweb_continue_pactでは、トランザクションを外部(Ledger、@kadena/clientなど)で署名し、署名済みの状態で渡す必要があります。 - パブリックネットワークは読み取り専用です。
testnet06とmainnetのプロファイルでは、すべての書き込みツールがPROFILE_WRITE_BLOCKEDによってブロックされます。 - すべてのツール呼び出しを監査ログに記録し、入力の SHA-256 ハッシュを保存します(入力そのものは保存しません)。
- プロンプトインジェクションを除去してから、すべてのツール出力をモデルに渡します。
- ツールスキーマをロックし、ツールスキーマにずれがある場合はサーバーの起動を拒否します。
- ネットワークとファイルシステムの許可リストを使用し、シェル実行を禁止し、root での実行を拒否します。
互換性
| サーバー | ローカル開発ネットワーク | テストネット | メインネット |
|---|---|---|---|
| Pact Tooling | ✅ | — | — |
| Chainweb API | ✅ | ✅ 読み取り専用 | ✅ 読み取り専用 |
コントリビューション
git clone https://github.com/Pact-Community-Organization/pact-mcp.git
cd pact-mcp
pnpm install
pnpm build
pnpm test
Node.js >= 20.11 と pnpm >= 9 が必要です。ワークフロー、コーディング規約、ツールの追加や変更方法については CONTRIBUTING.md を参照してください。
ライセンス
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。