mcpField
C
Chainweb API

Chainweb API

ローカル
github.com金融データ04 週間前に更新

Chainweb API について

Chainweb API は、Kadena Chainweb ノードの照会とトランザクション送信を行う MCP サーバーです。ローカルシミュレーション、テーブル読み取り、SPV 証明、モジュールデプロイに対応し、書き込みには外部署名済みのトランザクションを使います。公開ネットワークのプロファイルは読み取り専用です。

主な機能

  1. 01`/local` でのトランザクションシミュレーション
  2. 02署名済みトランザクションの送信
  3. 03トランザクション状態のポーリング
  4. 04Chainweb テーブルの読み取り
  5. 05SPV 証明の取得
  6. 06モジュールのデプロイ

活用シーン

  1. 01Chainweb のブロックやテーブルデータの照会
  2. 02ローカルノードでのトランザクション検証
  3. 03外部署名済みトランザクションの送信
  4. 04対応ノードへの Pact モジュールのデプロイ

MCP 対応

シミュレーション、トランザクション送信とポーリング、テーブル読み取り、SPV 証明、モジュールデプロイを MCP クライアント向けのツールとして提供します。書き込みには署名済みトランザクションを使用し、testnet06 と mainnet のプロファイルは読み取り専用です。

設定

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

mcp.json · 共通設定
{
"mcpServers": {
"pact-community-organization-chainweb": {
"command": "npx",
"args": [
"-y",
"@pact-community/mcp-chainweb"
],
"env": {
"PACT_COMMUNITY_WORKSPACE_ROOT": "<PACT_COMMUNITY_WORKSPACE_ROOT>",
"PACT_COMMUNITY_CHAINWEB_MODE": "<PACT_COMMUNITY_CHAINWEB_MODE>",
"PACT_COMMUNITY_CHAINWEB_PROFILE": "<PACT_COMMUNITY_CHAINWEB_PROFILE>",
"PACT_COMMUNITY_CHAINWEB_BASE_URL": "<PACT_COMMUNITY_CHAINWEB_BASE_URL>",
"PACT_COMMUNITY_CHAINWEB_NETWORK_ID": "<PACT_COMMUNITY_CHAINWEB_NETWORK_ID>"
}
}
}
}
起動コマンドnpx -y @pact-community/mcp-chainweb
設定が必要な環境変数
PACT_COMMUNITY_WORKSPACE_ROOTWorkspace root directory; all file access is confined inside it.
PACT_COMMUNITY_CHAINWEB_MODENetwork mode; must be set and match PACT_COMMUNITY_CHAINWEB_PROFILE (devnet, testnet06, or mainnet).
PACT_COMMUNITY_CHAINWEB_PROFILENetwork profile: devnet (default, read/write), testnet06, or mainnet (both read-only).
PACT_COMMUNITY_CHAINWEB_BASE_URLChainweb node base URL (default per profile).
PACT_COMMUNITY_CHAINWEB_NETWORK_IDNetwork id, e.g. development, testnet06, mainnet01 (default per profile).

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

パッケージ
npm@pact-community/mcp-chainweb0.2.3

ツール

ツール一覧はまだ取得されていません

ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。

詳細

pact-mcp — Pact と Chainweb 用の MCP サーバー

CI npm License: Apache-2.0 Node >= 20.11

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-pactnpm6REPL テストの実行、重大な落とし穴のスキャン、ガスの見積もり、インターフェースの差分確認、フォーマットチェック
Chainweb API — @pact-community/mcp-chainwebnpm11/local によるシミュレーション、署名済み /send、ポーリング、テーブルの読み取り、SPV 証明、モジュールのデプロイ

どちらも公式の MCP レジストリに、 io.github.Pact-Community-Organization/pact と io.github.Pact-Community-Organization/chainweb として登録されています。

インストール

VS Code(ワンクリック)

GitHub Copilot と一緒に VS Code をお使いですか?ワンクリックでインストールできます。

Install Pact Tooling in VS Code Install Chainweb API in 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 分

  1. Pact CLI をインストールする — Pact Tooling は REPL の実行とガスの見積もりに使用します。kadena-io/pact-5 からリリースをダウンロードし、pact を PATH に追加して、pact --version で確認します。
  2. サーバーを追加する — 上記の設定を使ってクライアントに追加し、PACT_COMMUNITY_WORKSPACE_ROOT がコントラクトプロジェクトを指すようにします。
  3. エージェントに尋ねる:
    • "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 を参照してください。

ライセンス

Apache-2.0

コメント

MCP は初めてですか?

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

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