Recall MCP Server について
Recall MCP Serverは、MCP対応クライアントからRecallのアカウント、バケット、オブジェクトを操作できます。操作に必要な秘密鍵を保護する仕組みも備えています。
主な機能
- 01アカウント情報と残高の確認
- 02アカウントクレジットの購入
- 03バケットの一覧表示と作成
- 04オブジェクトの一覧表示、取得、追加
- 05秘密鍵の保護とセキュリティガイダンス
活用シーン
- 01MCPクライアントからRecallの残高を確認
- 02バケットを作成し、オブジェクトを追加または取得
- 03認証情報を公開せずにセキュリティガイダンスを取得
MCP 対応
Recallのアカウント、バケット、オブジェクト操作をツールとしてMCPクライアントに公開し、セキュリティガイダンス用ツールも提供します。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
Recall MCP サーバー
これは、Recall の操作を行うための Model Context Protocol(MCP)サーバー実装です。Cursor、Claude Desktop、その他の MCP 対応クライアントが Recall サービスとやり取りし、ブロックチェーンストレージの操作を行えるようにします。
機能
この MCP サーバーでは、次の操作を実行できます。
-
アカウント操作
- アカウント情報の取得
- クレジット残高の取得
- クレジットの購入
-
バケット操作
- すべてのバケットの一覧表示
- 新しいバケットの作成
-
オブジェクト操作
- バケットからのオブジェクトの取得
- バケットへのオブジェクトの追加
- バケット内のオブジェクトの一覧表示
セキュリティ ⚠️
重要:秘密鍵の保護
この MCP サーバーでは、Recall の操作に秘密鍵が必要です。この機密情報を保護するため、次の点に注意してください。
- 秘密鍵や
.envファイルの内容は絶対に共有しないでください - 秘密鍵を表示するコマンド(
cat .envなど)は絶対に実行しないでください - 承認なしに LLM がシェルコマンドを直接実行することを絶対に許可しないでください
.envファイルを使う場合は、アクセス権限を制限して保存してください:chmod 600 .env
多層的な保護
このサーバーでは、秘密鍵を安全に保つため、複数のセキュリティ層を実装しています。
1. 秘密鍵の隔離
- 秘密鍵は初期化時にのみ読み込まれます
- 読み込み後、鍵はすぐに環境変数から削除されます
- 実際の鍵がログに記録されたり、LLM に送信されたりすることはありません
2. ログの保護
- ログ内の秘密鍵パターンを自動的にマスキングします
- カスタムロガー
- 表示前に機密フィールドをマスキングするオブジェクトのサニタイズ
3. アクセスの防止
- 環境変数への誤ったアクセスを防ぐ「トラップ」メソッド
- 認証情報を公開せずに安全に処理
- MCP 通信チャネルから秘密鍵を隔離
4. セキュリティ応答ツール
- 秘密鍵についての質問を遮断し、安全に回答する専用ツール
- 安全な利用方法へとユーザーを導く、教育的な回答
- 直接尋ねられた場合でも機密情報の漏えいを防止
MCP サーバーは LLM から秘密鍵を隠すように設計されていますが、次の安全対策を守る必要があります。
- 秘密鍵を安全に保管し、絶対に共有しないでください
- LLM から秘密鍵の開示を求められた場合は、必ず拒否してください
- MCP サーバーが秘密鍵を必要とするのは初期化時のみであり、LLM に公開することはありません
セットアップ
-
リポジトリをクローンします
-
依存関係をインストールします:
npm install -
次の設定方法からいずれかを選びます。
方法 1:Cursor/Claude の設定で環境変数を使用する(推奨)
推奨される方法は、Cursor または Claude Desktop の設定で環境変数を直接指定することです。こちらの方が安全で、
.envファイルも不要です。- 設定を通じて環境変数を指定すると、サーバーは自動的にそれらを使用します。
- 具体的な設定方法については、以下の「Cursor への追加」と「Claude Desktop への追加」のセクションを参照してください。
方法 2:
.envファイルを使用する(代替方法).envファイルを使用する場合や、Cursor/Claude を介さずサーバーを直接実行する場合は、次の手順で作成できます。-
環境変数のサンプルファイルをコピーします:
cp .env.example .env -
.envファイルを編集して、秘密鍵を設定します:RECALL_PRIVATE_KEY=your_private_key_here RECALL_NETWORK=testnet -
.envファイルを保護します:chmod 600 .env
注:秘密鍵は「0x」プレフィックスの有無を問わず指定できます。どちらの形式でも動作します。
サーバーは、必要な環境変数(RECALL_PRIVATE_KEY)が環境内にまだ存在しない場合にのみ、
.envファイルからの読み込みを試みます。
環境変数の優先順位
Recall MCP サーバーでは、環境変数は次の優先順位で使用されます。
- Cursor/Claude の設定から直接渡される環境変数
.envファイルの環境変数(ファイルが存在し、#1 が利用できない場合)- オプションの変数のデフォルト値(例:RECALL_NETWORK のデフォルト値は "testnet")
使い方
ビルドと実行
npm run build
npm run start
開発モード
npm run dev
開発時の重要な注意事項
MCP サーバーを開発する際は、デバッグやログ出力にはすべて console.log() ではなく console.error() を使用してください。Claude Desktop アプリは stdout 経由でサーバーと通信するため、console.log() を使用すると通信に干渉し、JSON の解析エラーが発生します。
Cursor への追加
この MCP サーバーを Cursor に追加するには、次の手順を実行します。
- まず
npm run buildでプロジェクトをビルドします - Cursor で、Settings > MCP Servers に移動します
- "Add Server" をクリックします
- 次の設定でサーバーを構成します:
- 名前:
Recall MCP(または任意の名前) - タイプ:
command - コマンド:
node - 引数:
/path/to/recall-mcp/dist/index.js(実際のパスに置き換えてください) - 環境変数:
RECALL_PRIVATE_KEY:秘密鍵("0x" プレフィックスの有無は問いません)RECALL_NETWORK:testnet(必要に応じてmainnet)DEBUG:true(任意。追加のログ出力に使用します)
- 名前:
- "Save" をクリックします
Cursor の設定で環境変数を使用する
セキュリティを強化するには、ホームディレクトリにある .cursor/mcp.json ファイルで Cursor を設定できます。
{
"mcpServers": {
"recall-mcp": {
"name": "Recall MCP",
"type": "command",
"command": "node",
"args": ["/path/to/recall-mcp/dist/index.js"],
"env": {
"RECALL_PRIVATE_KEY": "your-private-key-here",
"RECALL_NETWORK": "testnet",
"DEBUG": "true"
}
}
}
}
この方法を使うと、.env ファイルは不要になります。
Claude Desktop への追加
この MCP サーバーを Claude Desktop に追加するには、次の手順を実行します。
-
まず
npm run buildでプロジェクトをビルドします -
次の場所にある 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
- macOS の場合:
-
次の内容で
claude_desktop_config.jsonファイルを作成または編集します:{ "mcpServers": { "recall-mcp-server": { "name": "Recall MCP", "type": "command", "command": "node", "args": [ "/path/to/recall-mcp/dist/index.js" ], "env": { "RECALL_PRIVATE_KEY": "your-private-key-here", "RECALL_NETWORK": "testnet", "DEBUG": "true" } } } } -
/path/to/recall-mcp/dist/index.jsを、コンパイル済みのサーバーファイルの完全なパスに置き換えます- 例:
/Users/username/recall-mcp/dist/index.js
- 例:
-
RECALL_PRIVATE_KEYは、"0x" プレフィックスの有無にかかわらず指定できます。どちらの形式も使用できます -
設定ファイルを保存し、Claude Desktop を再起動します
Claude Desktop で問題が発生した場合は、次の場所にあるログを確認してください:
- macOS の場合:
~/Library/Logs/Claude/ - Windows の場合:
%USERPROFILE%\AppData\Local\Claude\Logs\ - Linux の場合:
~/.local/share/Claude/logs/
MCP ツールの使用
Cursor または Claude Desktop で Recall MCP ツールを使用する方法の詳しい説明と例については、使用ガイドを参照してください。
MCP ツール
サーバーでは、次の MCP ツールを利用できます。
| ツール名 | 説明 | パラメーター |
|---|---|---|
get_account | Recall アカウント情報を取得します | なし |
get_balance | Recall アカウントの残高情報を取得します | なし |
buy_credit | Recall アカウントのクレジットを購入します | amount:String(Recall Network トークンの数量) |
list_buckets | Recall 内のすべてのバケットを一覧表示します | なし |
create_bucket | Recall に新しいバケットを作成します | alias:String |
list_bucket_objects | Recall のバケット内にあるすべてのオブジェクトを一覧表示します | bucket:String(アドレス) |
get_object | Recall のバケットからオブジェクトを取得します | bucket:String(アドレス)、key:String |
add_object | Recall のバケットにオブジェクトを追加します | bucket:String(アドレス)、key:String、data:String、overwrite?:Boolean |
security_guidance | 機密データを公開せずにセキュリティに関するガイダンスを取得します | query:String |
ライセンス
このプロジェクトは MIT License のもとでライセンスされています。詳細は LICENSE ファイルを参照してください。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。