Base MCP Server

Official
by base

local-only server

The server can only run on the client’s local machine because it depends on local resources.

Integrations

  • Allows interaction with Coinbase API for retrieving wallet addresses, listing balances, transferring funds, onramping funds, and managing ERC20 tokens

  • Enables deployment of smart contracts written in Solidity to the Base Network blockchain

ベースMCPサーバー 🔵

Claude Desktop や Cursor などの AI アプリケーションにオンチェーン ツールを提供し、Base Network や Coinbase API と対話できるようにする Model Context Protocol (MCP) サーバー。

概要

この MCP サーバーは、Base 上であらゆることを実行するためのツールを提供することで、あらゆる MCP クライアントの機能を拡張します。

  • ウォレットアドレスを取得する
  • ウォレット残高を一覧表示する
  • ウォレット間で資金を移動
  • スマートコントラクトをデプロイする
  • オンチェーン融資のためにMorpho Vaultと連携
  • 契約関数を呼び出す
  • Coinbase経由のオンランプ資金
  • ERC20トークンを管理する
  • NFT(ERC721およびERC1155)の一覧表示と転送
  • USDCでOpenRouterクレジットを購入する

サーバーは、Base Developer Tools とAgentKitを活用して Base と対話します。

3Pプロトコル、ツール、データソースによるベースMCPの拡張

Base MCPは拡張性を重視して設計されており、独自のサードパーティ製プロトコル、ツール、データソースを追加できます。このセクションでは、Base MCPサーバーを新しい機能で拡張する方法の概要を説明します。

新しいツールの追加

Base MCP サーバーに新しいツールを追加する場合は、次の手順に従います。

  1. src/toolsディレクトリにツール用の新しいディレクトリを作成します。
  2. 既存のパターンに従ってツールを実装します。
    • index.ts : ツールの定義とエクスポート
    • schemas.ts : ツールの入力スキーマを定義する
    • handlers.ts : ツールの機能を実装する
  3. src/tools/index.tsの利用可能なツールのリストにツールを追加します。
  4. README.mdにツールのドキュメントを追加します
  5. ツールの使用方法の例をexamples.mdに追加します。
  6. ツールのテストを書く

プロジェクト構造

ベース MCP サーバーは、ツールに関して次の構造に従います。

src/ ├── tools/ │ ├── index.ts (exports toolsets) │ ├── [TOOL_NAME]/ <-------------------------- ADD DIR HERE │ │ ├── index.ts (defines and exports tools) │ │ ├── schemas.ts (defines input schema) │ │ └── handlers.ts (implements tool functionality) │ └── utils/ (shared tool utilities)

ツール開発のベストプラクティス

Base MCP 用の新しいツールを開発する場合:

  • 既存のコードスタイルとパターンに従う
  • ツールの目的が明確で焦点が絞られていることを確認する
  • 包括的な入力検証を提供する
  • 詳細なエラー処理を含める
  • 徹底したドキュメントを書く
  • ツールの使い方を示す例を追加します
  • ツールのテストを含める

新しいツールやプロトコルの追加など、Base MCP への貢献に関する詳細については、 CONTRIBUTING.mdファイルを参照してください。

前提条件

  • Node.js (v16 以上)
  • npmまたはyarn
  • Coinbase API 認証情報 (API キー名と秘密鍵)
  • ウォレットシードフレーズ
  • Coinbase プロジェクト ID (オンランプ機能用)
  • Alchemy API キー(NFT 機能に必要)
  • オプション: OpenRouter API キー (OpenRouter クレジットの購入用)

インストール

オプション1: npmからインストールする(推奨)

# Install globally npm install -g base-mcp # Or install locally in your project npm install base-mcp

パッケージをインストールしたら、次のコマンドでクライアントを構成できます。

base-mcp --init

オプション2: ソースからインストールする

  1. このリポジトリをクローンします:
    git clone https://github.com/base/base-mcp.git cd base-mcp
  2. 依存関係をインストールします:
    npm install
  3. プロジェクトをビルドします。
    npm run build
  4. オプションで、グローバルにリンクします。
    npm link

構成

資格情報を使用して.envファイルを作成します。

# Coinbase API credentials # You can obtain these from the Coinbase Developer Portal: https://cdp.coinbase.com/ COINBASE_API_KEY_NAME=your_api_key_name COINBASE_API_PRIVATE_KEY=your_private_key # Wallet seed phrase (12 or 24 words) # This is the mnemonic phrase for your wallet SEED_PHRASE=your seed phrase here # Coinbase Project ID (for onramp functionality) # You can obtain this from the Coinbase Developer Portal COINBASE_PROJECT_ID=your_project_id # Alchemy API Key (required for NFT functionality) # You can obtain this from https://alchemy.com ALCHEMY_API_KEY=your_alchemy_api_key # OpenRouter API Key (optional for buying OpenRouter credits) # You can obtain this from https://openrouter.ai/keys OPENROUTER_API_KEY=your_openrouter_api_key # Chain ID (optional for Base Sepolia testnet) # Use 84532 for Base Sepolia testnet # You do not have to include this if you want to use Base Mainnet CHAIN_ID=your_chain_id

テスト

MCP サーバーをテストして、正しく動作していることを確認します。

npm test

このスクリプトは、接続と利用可能なツールをテストして、MCP サーバーが正しく動作していることを確認します。

Claude を介して Base MCP ツールと対話する方法の詳細な例については、 examples.mdファイルを参照してください。

Claude Desktopとの統合

この MCP サーバーを Claude Desktop に追加するには:

  1. 次の場所で Claude Desktop 構成ファイルを作成または編集します。
    • macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
    • Windows: %APPDATA%\Claude\claude_desktop_config.json
    • Linux: ~/.config/Claude/claude_desktop_config.json

Claude デスクトップ アプリから「Claude > 設定 > 開発者 > 構成の編集」に移動すると、このファイルに簡単にアクセスできます。

  1. 次の構成を追加します。
    { "mcpServers": { "base-mcp": { "command": "npx", "args": ["-y", "base-mcp@latest"], "env": { "COINBASE_API_KEY_NAME": "your_api_key_name", "COINBASE_API_PRIVATE_KEY": "your_private_key", "SEED_PHRASE": "your seed phrase here", "COINBASE_PROJECT_ID": "your_project_id", "ALCHEMY_API_KEY": "your_alchemy_api_key", "PINATA_JWT": "your_pinata_jwt", "OPENROUTER_API_KEY": "your_openrouter_api_key", "CHAIN_ID": "optional_for_base_sepolia_testnet" }, "disabled": false, "autoApprove": [] } } }
  2. 変更を有効にするには、Claude Desktop を再起動してください。

利用可能なツール

住所取得

ウォレットのアドレスを取得します。

クロードへのクエリの例:

「私のウォレットアドレスは何ですか?」

リスト残高

ウォレットの残高をすべて一覧表示します。

クロードへのクエリの例:

「ウォレットの残高を見せてください。」

送金資金

ウォレットから別のアドレスに資金を転送します。

パラメータ:

  • destination : 送金先のアドレス
  • assetId : 転送する資産ID
  • amount : 送金する資金の金額

クロードへのクエリの例:

「0.01 ETHを0x1234567890abcdef1234567890abcdef12345678に転送します。」

デプロイ契約

スマート コントラクトをブロックチェーンにデプロイします。

パラメータ:

  • constructorArgs : コントラクトコンストラクタの引数
  • contractName : デプロイするコントラクトの名前
  • solidityInputJson : コントラクトソースと設定を含むSolidityコンパイラのJSON入力
  • solidityVersion : solidityコンパイラのバージョン

クロードへのクエリの例:

「シンプルな ERC20 トークン コントラクトをデプロイしてください。」

アドレスの評判を確認する

アドレスの評判を確認します。

パラメータ:

  • address : 確認するEthereumアドレス

クロードへのクエリの例:

「0x1234567890abcdef1234567890abcdef12345678 の評判はどうですか?」

get_morpho_vaults

Morpho 上の特定のアセットのボールトを取得します。

パラメータ:

  • assetSymbol : ボールトをフィルタリングする資産シンボル(オプション)

クロードへのクエリの例:

「USDC で利用可能な Morpho Vault を表示してください。」

コール契約

ブロックチェーン上のコントラクト関数を呼び出します。

パラメータ:

  • contractAddress : 呼び出すコントラクトのアドレス
  • functionName : 呼び出す関数の名前
  • functionArgs : 関数に渡す引数
  • abi : 契約のABI
  • value : トランザクションで送信するETHの値(オプション)

クロードへのクエリの例:

「0x1234567890abcdef1234567890abcdef12345678 のコントラクトの balanceOf 関数を呼び出します。」

オンランプアセットを取得する

特定の国/区分でオンランプに使用できる資産を取得します。

パラメータ:

  • country : 購入ユーザーの居住国を表す ISO 3166-1 2桁の国コード文字列
  • subdivision : ISO 3166-2 2桁の国区分コード(米国の場合は必須)

クロードへのクエリの例:

「米国、特にニューヨークでオンランプできる資産は何ですか?」

オンランプ

Coinbase 経由で資金をオンランプするための URL を取得します。

パラメータ:

  • amountUsd : オンランプする資金の額
  • assetId : オンランプする資産ID

クロードへのクエリの例:

「100ドル相当のETHをオンランプしたい。」

erc20残高

ERC20トークンの残高を取得します。

パラメータ:

  • contractAddress : ERC20コントラクトのアドレス

クロードへのクエリの例:

「0x1234567890abcdef1234567890abcdef12345678 のトークンの残高はいくらですか?」

erc20_転送

ERC20トークンを別のアドレスに転送します。

パラメータ:

  • contractAddress : ERC20コントラクトのアドレス
  • toAddress : 受信者のアドレス
  • amount : 転送するトークンの量

クロードへのクエリの例:

「10 USDCを0x1234567890abcdef1234567890abcdef12345678に転送します。」

リスト_nfts

特定のアドレスが所有する NFT を一覧表示します。

パラメータ:

  • ownerAddress : リストするNFTの所有者のアドレス
  • limit : 返されるNFTの最大数(デフォルト: 50)

クロードへのクエリの例:

「0x89A93a48C6Ef8085B9d07e46AaA96DFDeC717040 が所有する NFT を表示してください。」

転送_nft

NFTを別のアドレスに転送します。ERC721とERC1155の両方の規格をサポートします。

パラメータ:

  • contractAddress : NFTコントラクトのアドレス
  • tokenId : 転送するNFTのトークンID
  • toAddress : 受信者のアドレス
  • amount : 転送する金額(ERC1155のみ使用、デフォルト: 1)

クロードへのクエリの例:

「契約番号0x3F06FcF75f45F1bb61D56D68fA7b3F32763AA15c、トークンID 56090175025510453004781233574040052668718235229192064098345825090519343038548のNFTを0x1234567890abcdef1234567890abcdef12345678に転送してください。」

オープンルータークレジットを購入する

USDC で OpenRouter クレジットを購入します。

パラメータ:

  • amountUsd : 購入するクレジットの量(USD)

クロードへのクエリの例:

「20 ドル相当の OpenRouter クレジットを購入してください。」

セキュリティに関する考慮事項

  • 設定ファイルには機密情報(APIキーやシードフレーズなど)が含まれています。適切に保護され、共有されていないことを確認してください。
  • 機密情報をハードコーディングする代わりに、環境変数または安全な資格情報マネージャーの使用を検討してください。
  • 資金を送金したり契約を展開したりする際には、これらの操作はブロックチェーン上では元に戻せないため、注意してください。
  • オンランプ機能を使用する場合は、安全な接続であることを確認してください。
  • 特に資金を送金する場合やクレジットを購入する場合は、確認する前にすべての取引の詳細を確認してください。

トラブルシューティング

問題が発生した場合:

  1. Coinbase APIの認証情報が正しいことを確認してください
  2. シードフレーズが有効であることを確認する
  3. 正しいネットワーク(ベースメインネット)に接続していることを確認してください
  4. Claude Desktopのログでエラーメッセージを確認してください

ライセンス

MITライセンス

貢献

貢献を歓迎します!お気軽にプルリクエストを送信してください。

Base MCP への貢献に関する詳細なガイドラインは次のとおりです。

  • バグの報告
  • 機能強化の提案
  • 開発セットアップ
  • コーディング標準
  • 新しいツール、プロトコル、データ ソースの追加(上記のBase MCP の拡張セクションも参照)
  • テスト要件
  • ドキュメント標準

包括的なCONTRIBUTING.mdガイドを参照してください。

基本的な貢献手順:

  1. リポジトリをフォークする
  2. 機能ブランチを作成します( git checkout -b feature/amazing-feature
  3. 変更をコミットします ( git commit -m 'Add some amazing feature' )
  4. ブランチにプッシュする ( git push origin feature/amazing-feature )
  5. プルリクエストを開く

コードが既存のスタイルに従っており、適切なテストが含まれていることを確認してください。

ID: s37x9aoxum