mcpField
F
Foundry MCP Server

Foundry MCP Server

ローカル
github.com/PraneshASP開発ツール25541 週間前に更新

Foundry MCP Server について

Foundry MCP Server は、Foundry ツールチェーン(Forge、Cast、Anvil)を用いて Solidity 開発の機能を提供する軽量な MCP サーバーです。LLM アシスタントをローカルの Anvil ノードやリモート RPC エンドポイントに接続します。実験的なプロジェクトです。

主な機能

  1. 01ローカル Anvil インスタンスの起動と管理
  2. 02読み取り専用のコントラクト関数呼び出し
  3. 03秘密鍵設定時のトランザクション送信
  4. 04Forge ワークスペースの管理とスクリプト実行
  5. 05Heimdall によるバイトコードの逆コンパイルと解析

活用シーン

  1. 01AI アシスタントによる Solidity コントラクトの作成、デプロイ、デバッグ
  2. 02オンチェーンのトランザクションデータと実行トレースの分析
  3. 03ローカル Anvil 上での ERC20 などのコントラクトのテスト

MCP 対応

本プロジェクトは MCP サーバーであり、Claude Desktop や Cursor などの MCP クライアントに対して Foundry を用いた Solidity 開発とオンチェーン操作の機能を公開します。

設定

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

mcp.json · 共通設定
{
"mcpServers": {
"foundry": {
"command": "npx",
"args": [
"-y",
"@pranesh.asp/foundry-mcp-server"
]
}
}
}
起動コマンドnpx -y @pranesh.asp/foundry-mcp-server

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

パッケージ
npm@pranesh.asp/foundry-mcp-server

ツール

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

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

詳細

Foundry MCP サーバー

Foundry ツールチェーン(Forge、Cast、Anvil)を使用して Solidity 開発機能を提供する、シンプルで軽量かつ高速な MCP(Model Context Protocol)サーバーです。

Foundry MCP のデモ

概要

このサーバーは LLM アシスタントを Foundry エコシステムに接続し、次のことを可能にします。

  • ノード(ローカルの Anvil インスタンスまたはリモート RPC エンドポイント)とのやり取り
  • スマートコントラクトとブロックチェーンデータの分析
  • Cast を使用した一般的な EVM 操作の実行
  • Solidity コードとスクリプトの管理、デプロイ、実行
  • 永続的な Forge ワークスペースの利用

機能

ネットワークとのやり取り
  • ローカルの Anvil インスタンスの起動と管理
  • 任意のリモートネットワークへの接続(RPC を指定するだけです)
  • ネットワーク/チェーン情報の取得
コントラクトとのやり取り
  • コントラクト関数の呼び出し(読み取り専用)
  • コントラクトへのトランザクション送信(PRIVATE_KEY が設定されている場合)
  • トランザクションレシートの取得
  • コントラクトストレージの読み取り
  • トランザクショントレースの分析
  • ブロックエクスプローラーからのコントラクト ABI とソースの取得
Solidity 開発
  • 専用の Forge ワークスペースの維持
  • Solidity ファイルの作成と編集
  • 依存関係のインストール
  • Forge スクリプトの実行
  • コントラクトのデプロイ
ユーティリティ関数
  • コントラクトアドレスの計算
  • コントラクトのバイトコードサイズの確認
  • ガスコストの見積もり
  • 単位間の変換(16 進数から 10 進数など)
  • ウォレットの生成
  • イベントログの取得
  • 関数とイベントのシグネチャの検索
スマートコントラクト分析(Heimdall)
  • EVM バイトコードを人間が読めるオペコードに逆アセンブル
  • ABI なしで生の calldata をデコード
  • EVM バイトコードを Solidity ソースコードと ABI に逆コンパイル
  • EVM バイトコードの制御フローグラフを視覚的に生成
  • calldata のデコードとトレース分析による詳細なトランザクション検査

使用方法

このサーバーは、MCP クライアント向けの MCP ツールプロバイダーとして使用することを想定しています。クライアントに接続すると、クライアント(claude desktop、cursor、client など)から Solidity およびオンチェーン操作を直接実行できます。

要件
手動セットアップ
  1. Foundry ツール(Forge、Cast、Anvil)がシステムにインストールされていることを確認します。

    curl -L https://foundry.paradigm.xyz | bash
    foundryup
    
  2. サーバーをクローンしてビルドします。

    bun i && bun build ./src/index.ts --outdir ./dist --target node
    
    
  3. クライアント設定を更新します(例:Claude desktop)。

 "mcpServers": {
    "foundry": {
      "command": "node",
      "args": [
        "path/to/foundry-mcp-server/dist/index.js"
      ],
      "env" :{
        "PRIVATE_KEY": "0x1234",
      }
    }
 }

メモ

PRIVATE_KEY は任意です。

NPM パッケージを使用したセットアップ

npm を使用して、サーバーを直接インストールして実行できるようになりました。

グローバルインストール
npm install -g @pranesh.asp/foundry-mcp-server
npx で直接使用
npx @pranesh.asp/foundry-mcp-server
MCP クライアントの設定

Claude Code

 claude mcp add-json foundry-mcp-server '{"type":"stdio","command":"npx","args":["@pranesh.asp/foundry-mcp-server"],"env":{"RPC_URL":"","PRIVATE_KEY":""}}'   

その他の MCP クライアント(Cursor、Claude、Windsurf)

MCP 設定に追加します。

{
  "mcpServers": {
    "foundry": {
      "command": "npx",
      "args": ["@pranesh.asp/foundry-mcp-server"],
      "env": {
        "RPC_URL": "http://localhost:8545",
        "PRIVATE_KEY": "0x..."
      }
    }
  }
}
設定

このサーバーでは、次の環境変数がサポートされています。

  • RPC_URL:指定されていない場合に使用するデフォルトの RPC URL(任意)
  • PRIVATE_KEY:トランザクションに使用する秘密鍵(任意)

注意

メインネット資金のある鍵は追加しないでください。コードは安全に使用するよう設計されていますが、LLM は誤った情報を生成し、悪意のあるトランザクションを送信する可能性があります。 テスト/開発目的にのみ使用してください。LLM を信頼しないでください!!

ヒント

Invalid configuration エラーが発生しますか?JSON 構文を確認してください。よくある問題には、二重引用符(""KEY" → "KEY")、末尾のカンマ、引用符で囲まれていないキーなどがあります。echo '...' | jq . で検証してください。

ワークスペース

このサーバーは、すべての Solidity ファイル、スクリプト、依存関係用に ~/.mcp-foundry-workspace で永続的な Forge ワークスペースを維持します。

ツール

Anvil
  • anvil_start:新しい Anvil インスタンスを起動
  • anvil_stop:実行中の Anvil インスタンスを停止
  • anvil_status:Anvil が実行中かどうかを確認し、ステータスを取得
Cast
  • cast_call:コントラクト関数を呼び出します(読み取り専用)
  • cast_send:コントラクト関数にトランザクションを送信します
  • cast_balance:アドレスの ETH 残高を確認します
  • cast_receipt:トランザクションのレシートを取得します
  • cast_storage:特定のスロットにあるコントラクトストレージを読み取ります
  • cast_run:公開済みのトランザクションをローカル環境で実行します
  • cast_logs:シグネチャまたはトピックでログを取得します
  • cast_sig:関数またはイベントのシグネチャに対応するセレクターを取得します
  • cast_4byte:4byte ディレクトリから関数またはイベントのシグネチャを検索します
  • cast_chain:現在のチェーンに関する情報を取得します
Forge
  • forge_script:ワークスペースから Forge スクリプトを実行します
  • install_dependency:Forge ワークスペースに依存関係をインストールします
ファイル管理
  • create_solidity_file:ワークスペース内の Solidity ファイルを作成または更新します
  • read_file:ワークスペース内のファイルの内容を読み取ります
  • list_files:ワークスペース内のファイルを一覧表示します
ユーティリティ
  • convert_eth_units:EVM の単位(wei、gwei、hex)を相互に変換します
  • compute_address:デプロイされるコントラクトのアドレスを計算します
  • contract_size:デプロイ済みコントラクトのバイトコードサイズを取得します
  • estimate_gas:トランザクションのガスコストを見積もります
Heimdall 分析
  • heimdall_disassemble:EVM バイトコードを人間が読めるオペコードに逆アセンブルします
  • heimdall_decode:ABI を必要とせずに生の calldata をデコードします
  • heimdall_decompile:EVM バイトコードを Solidity ソースコードと ABI に逆コンパイルします
  • heimdall_cfg:EVM バイトコードの視覚的な制御フローグラフを生成します
  • heimdall_inspect:Ethereum トランザクションを詳細に検査します

Claude デスクトップアプリでの使用 🎯

インストールが完了し、Claude デスクトップアプリの設定が済んだら、tavily-mcp サーバーを表示するために Claude デスクトップアプリを完全に終了してから再起動する必要があります。アプリの左下にハンマーアイコンが表示され、利用可能な MCP ツールを確認できます。ハンマーアイコンをクリックすると、利用可能なツールの詳細を確認できます。

代替テキスト

これで Claude は foundry-mcp サーバーに完全にアクセスできるようになります。以下の例を Claude デスクトップアプリに入力すると、foundry-mcp サーバーのツールが動作する様子を確認できます。

例
  1. トランザクションの分析:
Can you analyze the transaction and explain what it does? 
https://etherscan.io/tx/0xcb73ad3116f19358e2e649d4dc801b7ae0590a47b8bb2e57a8e98b6daa5fb14b
  1. 残高の照会:
Query the mainnet ETH and USDT balances for the wallet 0x195F46025a6926968a1b3275822096eB12D97E70.
  1. トランザクションの送信:
Transfer 0.5 USDC to 0x195F46025a6926968a1b3275822096eB12D97E70 on Mainnet. 
  1. コントラクトのデプロイ/スクリプトの実行:
Deploy a mock ERC20 contract to a local anvil instance and name it "Fire Coin".

謝辞 ✨

免責事項

本ソフトウェアは現状有姿で提供されます。本ソフトウェアの安全性または正確性について、明示的にも黙示的にも、保証、表明、または保証を行うものではありません。本ソフトウェアは監査を受けていないため、意図どおりに動作する保証はありません。また、ユーザーは遅延、障害、エラー、欠落、送信情報の損失、または資金の損失を経験する可能性があります。開発者は、上記のいずれについても責任を負いません。ユーザーは慎重に行動し、自己責任で使用してください。

コメント

MCP は初めてですか?

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

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