three.ws Solana Memo Media について
three.ws Solana Memo Mediaは、Solana SPL Memoトランザクション内の画像を抽出・表示する、キー不要の読み取り専用MCPサーバーです。画像形式とファイルシグネチャを検証し、MCPの画像コンテンツブロックとして返します。
主な機能
- 01トランザクション内の画像を抽出
- 02アドレスの最近の署名をスキャン
- 03画像データURIをローカルでデコード
- 04複数パートのインスクリプションを再構築・検証
- 05安全ポリシーとRPC設定を確認
活用シーン
- 01SolanaトランザクションのMemo内画像を表示
- 02アドレスに関連する最近の画像付きMemoを検索
- 031つのトランザクション署名からインスクリプションを再構築
MCP 対応
Solana Memo画像の抽出・検索・デコード、インスクリプションの再構築、状態確認ツールをMCPクライアントに提供し、対応画像をインラインで返します。読み取り専用で、署名・送信・オンチェーンデータの変更は行いません。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
npx -y @three-ws/solana-memo-media-mcpSOLANA_RPC_URLSOptional comma-separated Solana JSON-RPC failover endpoints. Public mainnet endpoints are used when omitted.SOLANA_RPC_URLOptional primary Solana JSON-RPC endpoint.ローカルサーバーにはマシン上の実行環境(Node.js 18 以上など)が必要です。設定ファイルの場所はクライアントごとに異なります。
ツール
4掲載時のツール一覧 · 2 週間前に更新
| パラメーター | 型 | 必須 | 説明 |
|---|---|---|---|
| dataUri | string | はい | SPL Memo 命令から取得した完全な Base64 画像 data URI。 |
詳細
@three-ws/solana-memo-media-mcp
Solana SPL Memo 命令に埋め込まれた画像データ URI を読み取り、表示します。data:image/...;base64,... 形式の Memo ペイロードをブラウザーの変換ツールにコピーする代わりに、AI アシスタントにトランザクション署名を渡すと、検証済みの画像がインラインで返されます。
これは、キー不要で読み取り専用の stdio MCP サーバーです。チェーンデータへの署名、送信、アップロード、キャッシュ、変更は一切行いません。
インストール
claude mcp add solana-memo-media -- npx -y @three-ws/solana-memo-media-mcp
Cursor、Claude Desktop、またはその他の stdio MCP クライアントの場合:
{
"mcpServers": {
"solana-memo-media": {
"command": "npx",
"args": ["-y", "@three-ws/solana-memo-media-mcp"]
}
}
}
ツール
| ツール | 目的 |
|---|---|
extract_solana_memo_media | 1 件の legacy、v0、または v1 トランザクションを取得し、トップレベルと内部の Memo 命令に含まれる対応画像をすべて、署名者、スロット、バージョンとともに返します。 |
find_solana_memo_media | アドレスの直近の署名を最大 1,000 件スキャンします(before を使ってページ指定できます)。Memo の概要にデータ URI が含まれる署名のみを取得するため、スキャンに必要な RPC 呼び出しは少数です。 |
decode_solana_memo_data_uri | コピー済みのデータ URI をローカルでデコードします。ネットワーク呼び出しはありません。 |
read_inscription | 任意のトランザクション署名から、複数パートのインスクリプション(first/1、firsts/1、spl404)を再構築して検証します。画像はインラインで表示し、SVG、HTML、テキストは実行されないテキストとして扱います。 |
get_solana_memo_media_status | ローカルポリシー、認識される Memo プログラム、RPC フェイルオーバーホストを表示します。ネットワーク呼び出しはありません。 |
認識される Memo プログラム:SPL Memo v1(Memo1UhkJRfHyvLMcVLMbLJYfW2tfU8G8H4PqvV6v8)、SPL Memo v2(MemoSq4gqABAXKb96qnH8TysNcWxMyWCqXgDLGmfcHr)、およびバージョン 1 のトランザクションで使われる新しいプログラム(Memo4c2pN8afCj432Lb7RMVKi9PbQnnW7ewFFaV3oAH)。
例
MCP クライアントに「Solana トランザクション <signature> に埋め込まれた画像を表示して」と尋ねます。次の内容で extract_solana_memo_media が呼び出されます。
{ "signature": "<base58 Solana transaction signature>" }
応答は JSON レコードと、アセットごとに 1 つの MCP image コンテンツブロックです。レコードには署名、手数料支払者、スロット、トランザクションのバージョンに加え、各アセットの MIME タイプ、バイト長、SHA-256、寸法が含まれます。生のデータ URI は、意図的にテキスト出力に含めていません。
独自のコードから使用する場合:
import { decodeDataUri } from '@three-ws/solana-memo-media-mcp/src/lib/media.js';
const media = decodeDataUri('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAADUlEQVR42mP8z8BQDwAFgwJ/lwV8YQAAAABJRU5ErkJggg==');
console.log(media.mimeType, media.byteLength, media.dimensions, media.sha256);
詳しいガイド:docs/mcp-solana-memo-media.md。
安全性と来歴
SPL Memo は、任意の署名済みテキストです。データ URI はそのテキスト内の慣例にすぎず、Solana のメディア標準ではありません。また、ウォレット、エクスプローラー、このパッケージのいずれも、その内容を推奨するものではありません。
image/png、image/jpeg、image/webp、image/gifのみ受け付けます。- SVG および実行可能なメディアやドキュメントメディアはすべて拒否されます。
- デコード後の内容は 262,144 バイトまでに制限されます。
- 画像を返す前に、宣言された MIME タイプが PNG、JPEG、WebP、GIF のファイルシグネチャと一致することを確認します。
- 呼び出し側が正確な参照を保持できるよう、サーバーは SHA-256 ダイジェストを報告します。
- 画像の意味を信頼する前に、トランザクションの署名者、プログラム、周辺のトランザクションコンテキストを個別に確認してください。
RPC 設定
サーバーは SOLANA_RPC_URLS、次に SOLANA_RPC_URL、最後に公開 Solana mainnet エンドポイントの順に試行します。通常の使用にキーは不要です。
| 変数 | 必須 | 説明 |
|---|---|---|
SOLANA_RPC_URLS | いいえ | 優先順に並べた JSON-RPC フェイルオーバーエンドポイント(カンマ区切り)。 |
SOLANA_RPC_URL | いいえ | プライマリ JSON-RPC エンドポイント 1 つ。 |
開発
npm test --prefix packages/solana-memo-media-mcp
npx -y @modelcontextprotocol/inspector node packages/solana-memo-media-mcp/src/index.js
ライセンス:Apache-2.0。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。