Neo N3 モデルコンテキストプロトコル (MCP) v1.4.0
Neo N3モデルコンテキストプロトコル(MCP)は、AIエージェントとアプリケーションがNeo N3ブロックチェーンとやり取りするための標準化されたインターフェースを提供します。このサーバー実装はシンプルさと使いやすさを追求しており、標準的な使用においては手動で環境設定を行うことなく、 npx経由で直接実行できます。
MCP をクライアント (例: VS Code) に追加する
npx経由で標準 I/O サーバーを使用するようにクライアントを構成します。
オプション A: VS Code ユーザー設定 (JSON)
ユーザー設定 JSON に以下を追加します ( Ctrl+Shift+P > Preferences: Open User Settings (JSON) )。
{
"mcp": {
"servers": {
"neo-n3": { // You can choose any name
"command": "npx",
"args": [
"-y", // Auto-confirm npx installation/update
"@r3e/neo-n3-mcp"
]
}
}
}
}
オプション B: ワークスペース構成 (
.vscodeディレクトリ内にmcp.jsonという名前のファイルを作成します。
{
"servers": {
"neo-n3": { // You can choose any name
"command": "npx",
"args": [
"-y", // Auto-confirm npx installation/update
"@r3e/neo-n3-mcp"
]
}
}
}
オプション C: その他のクライアント (例: カーソル)
クライアントの指示に従って、コマンドを使用してMCPサーバーを追加します。コマンドnpxと引数["-y", "@r3e/neo-n3-mcp"]を指定します。
Related MCP server: Salesforce MCP Server
利用可能なツール
詳細なパラメータと例については、
構成とネットワーク
道具 | 説明 | 主なパラメータ |
get_network_mode
| 現在設定されているネットワークモードを取得する | なし |
set_network_mode
| 以降の通話のアクティブネットワークモードを設定する | mode : "mainnet_only"、"testnet_only"、または "both"
|
ブロックチェーン情報
道具 | 説明 | 主なパラメータ |
get_blockchain_info
| 現在の高度とネットワークの一般情報を取得する | network
|
get_block_count
| 現在のブロックの高さを取得する | network
|
get_block
| ハッシュまたは高さでブロックの詳細を取得する | network 、 hashOrHeight
|
get_transaction
| 取引IDで取引の詳細を取得する | network 、 txid
|
check_transaction_status
| 取引が確認されたかどうかを確認する | network 、 txid
|
ウォレットとアカウント管理
道具 | 説明 | 主なパラメータ |
create_wallet
| 新しい暗号化ウォレットファイルを作成する | password
|
import_wallet
| WIF/秘密鍵から既存のウォレットをインポートする | key 、 password
|
get_balance
| アドレスのトークン残高を取得する | network 、 address
|
資産移転
道具 | 説明 | 主なパラメータ |
transfer_assets
| NEO、GAS、その他のNEP-17トークンを送信する | network 、 fromWIF 、 toAddress 、 asset 、 amount 、 confirm
|
estimate_transfer_fees
| 送金にかかるネットワークおよびシステム料金の見積もり | network 、 fromAddress 、 toAddress 、 asset 、 amount
|
スマートコントラクトの相互作用
道具 | 説明 | 主なパラメータ |
list_famous_contracts
| サーバーでサポートされているよく知られたコントラクトを一覧表示します | network
|
get_contract_info
| 有名な契約の詳細(ハッシュ、メソッド)を取得する | network 、 contractName
|
invoke_contract (invoke_read/write の置き換え)
| スマート コントラクト メソッドを呼び出す (読み取りまたは書き込み) | network 、 scriptHash 、 operation 、 args 、 fromWIF (書き込み用)、 confirm (書き込み用)
|
NeoFS(分散型ストレージ)
道具 | 説明 | 主なパラメータ |
neofs_create_container
| NeoFSストレージコンテナを作成する | network 、 fromWIF 、 ownerId 、 rules 、 confirm
|
neofs_get_containers
| ID が所有するコンテナを一覧表示する | network 、 ownerId
|
NeoBurger(ステーキングサービス)
道具 | 説明 | 主なパラメータ |
neoburger_deposit
| NEOを入金してbNEOを受け取る | network 、 fromWIF 、 confirm
|
neoburger_withdraw
| bNEOを返却してNEOを引き出す | network 、 fromWIF 、 amount 、 confirm
|
リクエストの例
ブロックチェーン情報を入手する
リクエスト:
{
"name": "get_blockchain_info",
"arguments": {
"network": "mainnet"
}
}
応答:
{
"result": {
"height": 3456789,
"network": "mainnet"
}
}
資産の移転
リクエスト:
{
"name": "transfer_assets",
"arguments": {
"network": "testnet",
"fromWIF": "YourSenderWalletWIF",
"toAddress": "NZNos2WqTbu5oCgyfss9kUJgBXJqhuYAaj",
"asset": "NEO",
"amount": "1",
"confirm": true
}
}
応答:
{
"result": {
"txid": "0x1234567890abcdef1234567890abcdef1234567890abcdef1234567890abcdef",
"address": "NVbGwMfRQVudQCcChhCFwQRwSxr5tYEqQs",
"network": "testnet"
}
}
エラー処理
MCP サーバーは標準化されたエラー応答を返します。
{
"error": {
"code": "INVALID_PARAMETER",
"message": "Invalid network parameter. Must be 'mainnet' or 'testnet'."
}
}
一般的なエラーコード:
INVALID_PARAMETER : パラメータが欠落しているか無効です
NETWORK_ERROR : Neo N3ノードへの接続エラー
BLOCKCHAIN_ERROR : Neo N3ブロックチェーンからのエラー
WALLET_ERROR : ウォレット操作エラー
CONTRACT_ERROR : スマートコントラクト操作のエラー
UNAUTHORIZED : 操作は許可されていません
INTERNAL_ERROR : 予期しないサーバーエラー
セキュリティのベストプラクティス
**WIFの取り扱い:**ウォレットインポートフォーマット(WIF)キーを提供する際は、細心の注意を払ってください。MCPサーバーが実行される環境と通信チャネルが安全であることを確認してください。サーバーはローカルまたは信頼できるネットワーク内で実行することを検討してください。堅牢な認証とトランスポートセキュリティ(HTTPS)なしでサーバーを公開することは避けてください。
ファイルベースのアプローチを使用する場合は、ウォレット ファイルを安全に保存します (ただし、現在の API は WIF ベースのようです)。
トランザクションがネットワークによって処理されるようにするには、すべての状態変更操作 (転送、コントラクトの呼び出し) にconfirm: trueを使用します。
強力なパスワードを使用してウォレットファイルを安全に保存します
開発とテストにはテストネットを使用する
Neo N3 MCPサーバーを最新バージョンに更新してください
HTTPサーバー
このパッケージは、MCPサーバーに加えて、RESTful APIを通じてNeo N3機能を公開するHTTPサーバーも提供します。HTTPサーバーはMCPサーバーを実行すると自動的に起動し、デフォルトでポート3002をリッスンします。
HTTPエンドポイント
終点 | 方法 | 説明 |
/api/blockchain/info
| 得る | ブロックチェーン情報を取得する |
/api/blockchain/height
| 得る | 現在のブロックの高さを取得する |
/api/blocks/:height
| 得る | 高さでブロックの詳細を取得する |
/api/transactions/:txid
| 得る | 取引IDで取引の詳細を取得する |
/api/accounts/:address/balance
| 得る | アドレスのトークン残高を取得する |
/api/wallets
| 役職 | 新しいウォレットを作成する |
/api/wallets/:address
| 得る | ウォレット情報を取得する |
/api/wallets/import
| 役職 | WIFまたは秘密鍵からウォレットをインポートする |
/api/network/mode
| 得る | 現在のネットワークモードを取得する |
/api/contracts/:name/invoke
| 役職 | スマートコントラクトメソッドを呼び出す |
/api/contracts/deploy
| 役職 | 新しいスマートコントラクトをデプロイする |
HTTPリクエストの例
# Get blockchain information
curl http://localhost:3002/api/blockchain/info
# Get the current block height
curl http://localhost:3002/api/blockchain/height
# Get token balances for an address
curl http://localhost:3002/api/accounts/NZNos2WqTbu5oCgyfss9kUJgBXJqhuYAaj/balance
# Create a new wallet
curl -X POST -H "Content-Type: application/json" -d '{"password":"your-password"}' http://localhost:3002/api/wallets
# Get the current network mode
curl http://localhost:3002/api/network/mode
# Deploy a smart contract
curl -X POST -H "Content-Type: application/json" -d '{
"wif": "your-private-key-wif",
"script": "base64-encoded-contract-script",
"manifest": {
"name": "MyContract",
"groups": [],
"features": {},
"abi": {
"methods": [
{
"name": "myMethod",
"parameters": [],
"returnType": "Boolean",
"offset": 0
}
],
"events": []
},
"permissions": [
{
"contract": "*",
"methods": "*"
}
],
"trusts": [],
"supportedStandards": []
}
}' http://localhost:3002/api/contracts/deploy
HTTPサーバーの利点
アクセシビリティ: MCPプロトコルをサポートしていないアプリケーションにNeo N3ブロックチェーン機能へのアクセスを提供します
シンプルさ: あらゆるHTTPクライアントで使用できるシンプルなRESTful API
互換性: 既存のWebアプリケーションおよびフレームワークと連携
テスト: MCPプロトコルよりもテストとデバッグが簡単
テスト
このパッケージには、MCP サーバーと HTTP サーバーの両方の機能を検証するための統合テストが含まれています。
テストの実行
# Build the project
npm run build
# Run the core functionality tests
npm run test:core
# Run the HTTP integration tests
npm run test:http
# Run the MCP integration tests
npm run test:integration
リソース
ライセンス
このプロジェクトは MIT ライセンスに基づいてライセンスされています - 詳細については LICENSE ファイルを参照してください。