Integrations
Used as a recommended runtime environment for the MCP server, with specific compatibility for Bun 1.0.0 or higher
Supports interaction with Starknet on Ethereum's Sepolia testnet, providing integration between Starknet and Ethereum ecosystems
Supports Node.js 18.0.0 or higher as an alternative runtime environment for the MCP server
スタークネット MCP サーバー
Starknetブロックチェーン向けの包括的なモデルコンテキストプロトコル(MCP)サーバー。このサーバーは、AIエージェントにStarknetネットワークとのインタラクション、ブロックチェーンデータのクエリ、ウォレットの管理、スマートコントラクトとのインタラクション機能を提供します。
📋 目次
🔭 概要
Starknet MCPサーバーは、モデルコンテキストプロトコル(Model Context Protocol)を活用してAIエージェントにブロックチェーンサービスを提供します。Starknetエコシステムへの包括的なインターフェースを提供し、AIアシスタントが自然言語でStarknetブロックチェーンのデータや操作を操作できるようにします。
主な機能は次のとおりです。
- ブロックチェーンの状態(残高、取引、ブロック)の読み取り
- Cairoスマートコントラクトとのやり取り
- トークン(ETH、STRK、その他のERC20トークン)の転送
- NFTとトークンメタデータの操作
- StarknetIDドメインの解決(EthereumのENSに類似)
- 適切なトランザクション処理で読み取りと書き込みの両方の操作を実行する
すべてのサービスは、MCPツールとリソースの一貫したインターフェースを通じて公開されているため、AIエージェントはStarknetブロックチェーンの機能を容易に発見し、利用できます。Starknetアドレスを受け入れるすべてのツールはStarknetIDもサポートしており、人間が読めるIDをバックグラウンドで自動的にアドレスに変換します。
✨ 特徴
- Starknet 統合: Starknet.js を使用した完全な Starknet ブロックチェーン統合
- ネットワークサポート:メインネットとSepoliaテストネットの両方をサポート
- StarknetID 統合: Starknet ID からアドレスへの解決、およびその逆
- ネイティブトークンのサポート: ETHとSTRKの両方のネイティブトークンをサポート
- スマートコントラクトインタラクション: Starknet スマートコントラクトの呼び出しとクエリ
- デュアルトランスポート: さまざまな統合ニーズに合わせて stdio サーバーまたは HTTP サーバーとして実行します。
- AI対応: Claude、GPT、その他のAIアシスタントと併用できるように設計されています
ブロックチェーン情報
- クエリチェーン情報(チェーンID、最新ブロック)
- ブロックの詳細とトランザクションを調べる
- 取引の領収書とステータスを表示する
- 住所情報と契約データを取得する
ネイティブトークン操作
- 任意のアドレスのETHとSTRKの残高を取得
- アカウント間でETHとSTRKを転送する
- ネイティブトークンの合計残高を表示する
トークン操作
- ERC20トークンの残高と情報を取得する
- ERC20トークンの転送
- トークンの供給とメタデータを表示する
- トークンの所有権を確認する
NFTオペレーション
- トークンIDでNFTの所有権を確認する
- NFTコレクション情報を取得する
- アドレスのNFT残高を表示する
スマートコントラクトの相互作用
- 読み取り専用コントラクト関数を呼び出す
- トランザクション確認による契約書き込みの実行
- 契約保管情報を取得する
- ABI と契約クラス情報を表示する
スタークネットID
- Starknet アドレスを Starknet ID に解決する
- Starknet IDをアドレスに解決する
- 検証データ付きの完全なStarknet IDプロファイルを取得する
- Starknetドメインを検証する
🔧 サポートされているネットワーク
サーバーは次の Starknet ネットワークをサポートしています。
- メインネット: Starknetの主要実稼働ネットワーク
- Sepolia : イーサリアムの Sepolia 上の Starknet のテストネット
🛠️ 前提条件
- Bun 1.0.0以上(推奨)
- Node.js 18.0.0以上
📦 インストール
オプション1: インストールせずに使用 (npx)
最も簡単な方法は、 npx
を使用してパッケージを直接実行することです。
これにより、最初にインストールする必要なく、最新バージョンが自動的にダウンロードされて実行されます。
オプション2: グローバルインストール
頻繁に使用する予定の場合は、グローバルにインストールできます。
オプション3: ローカルプロジェクトのインストール
次に、package.json スクリプトに次のコードを追加します。
オプション4: ソースから実行
ソースから実行したり、ローカルで開発したりする場合:
自動リロードを使用した開発の場合:
⚙️ サーバー構成
サーバーは次のデフォルト構成を使用します。
- デフォルトネットワーク: メインネット
- サーバーポート: 3000 (HTTP モード)
- サーバーホスト: 0.0.0.0 (どのネットワークインターフェースからもアクセス可能)
これらの値はアプリケーションにハードコードされています。変更が必要な場合は、以下のファイルを編集してください。
- ネットワーク設定の場合:
src/core/chains.ts
- サーバー構成の場合:
src/server/http-server.ts
🔍 使用方法
サーバーの実行
Starknet MCP サーバーは、次の 2 つのモードで実行できます。
HTTP サーバーはデフォルトでポート 3000 で実行され、リアルタイム通信用に REST API と Server-Sent Events (SSE) の両方を提供します。
カーソルからの接続
Cursor から Starknet MCP サーバーに接続するには:
- カーソルを開いて設定(左下の歯車アイコン)に移動します
- 左側のサイドバーの「機能」をクリックします
- 「MCPサーバー」セクションまでスクロールします
- 「新しいMCPサーバーを追加」をクリックします
- 次の詳細を入力してください。
- サーバー名:
starknet-mcp-server
- タイプ:
command
- コマンド:
npx @mcpdotdirect/starknet-mcp-server
- サーバー名:
- 「保存」をクリック
接続すると、Cursor 内で MCP サーバーの機能を直接使用できるようになります。サーバーは MCP サーバーリストに表示され、必要に応じて有効化/無効化できます。
カーソルでmcp.jsonを使用する
チームと共有したり、プロジェクト間で使用したりできる、より移植性の高い構成にするには、プロジェクトのルート ディレクトリに.cursor/mcp.json
ファイルを作成します。
このファイルをプロジェクトの.cursor
ディレクトリに配置すると (存在しない場合は作成します)、そのプロジェクトで作業するときに Cursor はこれらの MCP サーバー構成を自動的に検出して使用します。
SSE を使用した HTTP モード
Web アプリケーションを開発していて、Server-Sent Events (SSE) を使用して HTTP サーバーに接続する場合は、次の構成を使用できます。
Claude CLI を使用して接続する
Claude CLI を使用している場合は、次の 2 つのコマンドだけで MCP サーバーに接続できます。
例: カーソルでMCPサーバーを使用する
MCPサーバーを設定したら、Cursorで簡単に使用できます。例:
- プロジェクトに新しい JavaScript/TypeScript ファイルを作成します。
- カーソルでファイルを開いた状態で、カーソルに次の操作を実行できます。
- 「vitalik.starkのETH残高を確認する」
- 「スタークネットの最新ブロックに関する情報を取得する」
- 「コレクション 0x 内の NFT #123 の所有者を検索します...」
例: Starknet IDでETH残高を取得する
例: Starknet IDの解決
例: スマートコントラクトの呼び出し
Node.jsプロジェクトでの使用
Node.js プロジェクトで MCP サーバーをプログラム的に使用する場合:
より高度な使用方法としては、HTTP API のラッパー クラスを作成したり、Axios などのライブラリを使用して API 呼び出しをよりクリーンにしたりできます。
📚 APIリファレンス
利用可能なMCPツール
このサーバーは、次の MCP ツールを実装します。
ネットワークツール
get_starknet_chain_info
: Starknet ネットワークに関する情報を取得するget_supported_starknet_networks
: サポートされているStarknetネットワークのリストを取得します
バランスツール
get_starknet_eth_balance
: Starknet アドレスまたは Starknet ID の ETH 残高を取得します。get_starknet_token_balance
: アドレスのトークンの残高を取得するget_starknet_strk_balance
: アドレスのSTRKトークン残高を取得するget_starknet_native_balances
: アドレスのすべてのネイティブトークン残高(ETH および STRK)を取得します。
StarknetIDツール
resolve_starknet_name
: アドレスのStarknet IDを取得するresolve_starknet_address
: Starknet IDのアドレスを取得するget_starknet_profile
: アドレスの完全な Starknet ID プロファイルを取得しますvalidate_starknet_domain
: 文字列が有効なStarknet IDであるかどうかを確認する
ブロックツール
get_starknet_block
: 特定のブロックに関する情報を取得するget_starknet_block_transactions
: 特定のブロック内のトランザクションを取得する
取引ツール
get_starknet_transaction
: トランザクションの詳細を取得するget_starknet_transaction_receipt
: トランザクションの領収書を取得するcheck_starknet_transaction_status
: トランザクションが確認されたかどうかを確認する
契約ツール
call_starknet_contract
: コントラクトの読み取り専用関数を呼び出すget_starknet_contract_class
: 契約のクラス(ABI およびその他の情報)を取得します。execute_starknet_contract
: コントラクト呼び出しを実行する(書き込み操作)
トークンツール
get_starknet_token_info
: トークンに関する情報を取得するget_starknet_token_supply
: トークンの総供給量を取得するcheck_starknet_nft_ownership
: アドレスが特定のNFTを所有しているかどうかを確認するget_starknet_nft_balance
: アドレスが所有するNFTの数を取得する
転送ツール
transfer_starknet_eth
: あるアカウントから別のアカウントに ETH を転送する (金額は人間が読める形式で表示されます)transfer_starknet_strk
: あるアカウントから別のアカウントに STRK を転送する (金額は人間が読める形式で表示されます)transfer_starknet_token
: ERC20トークンをあるアカウントから別のアカウントに転送する(金額は人間が読める形式で表示)
利用可能なMCPリソース
サーバーは次の MCP リソースを提供します。
ネットワークリソース
starknet://{network}/chain
: 特定のネットワークのチェーン情報を取得するstarknet://networks
: サポートされているすべてのネットワークのリストを取得します
ブロックリソース
starknet://{network}/block/{blockIdentifier}
: 特定のブロックに関する情報を取得するstarknet://{network}/block/latest
: 最新のブロックを取得する
アドレスリソース
starknet://{network}/address/{address}
: アドレスに関する情報を取得する
取引リソース
starknet://{network}/tx/{txHash}
: トランザクション情報を取得する
StarknetIDリソース
starknet://{network}/id/address/{address}
: アドレスをStarknet IDに解決するstarknet://{network}/id/name/{name}
: Starknet IDをアドレスに解決するstarknet://{network}/id/profile/{address}
: アドレスのStarknet IDプロファイルを取得します。
利用可能なMCPプロンプト
LLM のやり取りの場合、サーバーは次のプロンプトを提供します。
explore_starknet_block
: 特定のStarknetブロックに関する情報を探索するexplore_starknet_address
: Starknet アドレスに関する情報を取得するexplore_starknet_transaction
: Starknet トランザクションに関する情報を取得するlookup_starknet_id
: Starknet IDを検索するか、アドレスをStarknet IDに解決するexplore_starknet_id_profile
: Starknet ID の完全なプロファイルを調べる
🔍 AIアシスタントとの使用
このサーバーをClaudeやGPTなどのAIアシスタントで使用する場合:
- このMCPサーバーを使用するようにAIアシスタントを構成する
- アシスタントはツールを使用してStarknetと対話することができます
- クエリの例:
- 「アドレス0x04d07e40e93398ed3c76981e449d3446f7c4e52aac5b3e8a37d7b0ca30845a5dのETH残高はいくらですか?」
- 「アドレス0x04d07e40e93398ed3c76981e449d3446f7c4e52aac5b3e8a37d7b0ca30845a5dのStarknet IDを検索してください」
- 「Starknet メインネットの最新ブロックには何が含まれていますか?」
- 「トランザクション 0x7e3a33ab42f2e24184763563b7b8482b53e3b89831ebc3eacf29d4d11f5198 に関する情報を取得します」
- 「Starknet ID vitalik.stark をアドレスに解決する」
🔒 セキュリティに関する考慮事項
- 秘密鍵はトランザクションの署名にのみ使用され、サーバーに保存されることはありません。
- すべてのトークンの量は、 weiや最小単位ではなく、人間が読める形式(例:ETH、STRK、トークン単位)で指定されます。
- 操作を実行する前に、入力パラメータを常に検証してサニタイズする
- 本番環境での使用のために追加の認証メカニズムを実装することを検討する
- 実稼働環境ではHTTPサーバーにHTTPSを使用する
- 不正使用を防ぐためにレート制限を実装する
- 高価値サービスの場合は確認手順を追加することを検討してください
📁 プロジェクト構造
🛠️ 開発コンベンション
カスタム ツール、リソース、またはプロンプトを追加する場合:
- すべてのリソース、ツール、プロンプト名ではハイフン(
-
)の代わりにアンダースコア(_
)を使用してくださいCopy - この命名規則により、カーソルや他のAIツールとの互換性が確保されます。
📚 ドキュメント
詳細については以下をご覧ください。
📄 ライセンス
このプロジェクトは MIT ライセンスに基づいてライセンスされています - 詳細についてはLICENSEファイルを参照してください。
You must be authenticated.
AI エージェントが Starknet ブロックチェーンと対話し、データを照会し、ウォレットを管理し、スマート コントラクトを操作できるようにする包括的なモデル コンテキスト プロトコル サーバー。
- 📋 Contents
- 🔭 Overview
- ✨ Features
- 🔧 Networks Supported
- 🛠️ Prerequisites
- 📦 Installation
- ⚙️ Server Configuration
- 🔍 Usage
- 📚 API Reference
- 🔍 Usage with AI Assistants
- 🔒 Security Considerations
- 📁 Project Structure
- 🛠️ Development Conventions
- 📚 Documentation
- 📄 License