three.ws Solana Memo Media — Claude Code MCP server for Solana images
Pulls images embedded in Solana SPL Memo instructions and hands them to your assistant inline. Useful when you have a transaction signature instead of a file.
claude mcp add --env SOLANA_RPC_URLS=<SOLANA_RPC_URLS> --env SOLANA_RPC_URL=<SOLANA_RPC_URL> --transport stdio solana-memo-media-mcp -- npx -y @three-ws/solana-memo-media-mcpWhat three.ws Solana Memo Media does
This MCP server reads memo instructions on Solana and extracts the data URI payloads that hold images. It runs over stdio, needs no key, and stays read-only: it never signs, sends, uploads, or caches anything. You pass a transaction signature and get a validated image back, so there is no need to paste a base64 blob into a browser converter.
Five tools ship with it. extract_solana_memo_media walks one legacy, v0, or v1 transaction and returns every supported image found in top-level and inner memos, along with signer, slot, and version. find_solana_memo_media scans recent signatures for an address and fetches only those whose memo summary carries a data URI. The rest cover local decoding of an already-copied URI, rebuilding a multi-part inscription from a single signature, and printing the current policy without touching the network.
The safety rules are strict. Only PNG, JPEG, WebP, and GIF pass, and the declared MIME type has to match the file signature. SVG and anything executable is dropped, and decoded content is capped at 262,144 bytes. Each asset comes with a SHA-256 digest so callers can keep an exact reference. A memo is arbitrary signed text, so verify the signer and transaction context yourself before trusting what an image means. No key is required for normal use: the server tries SOLANA_RPC_URLS, then SOLANA_RPC_URL, then public mainnet endpoints.
What it helps with
- pull an image out of a memo using its transaction signature
- check that a declared MIME type matches the actual file bytes
- rebuild a multi-part inscription from one transaction
- scan an address for recent memos that carry images
- decode a data URI locally without a network call
Example prompts for the agent
- Show any image embedded in Solana transaction
<signature>. - Find memos with images for address
<address>. - Rebuild the
first/1inscription from signature<signature>.
How to install three.ws Solana Memo Media
Platform CLI
claude mcp add --env SOLANA_RPC_URLS=<SOLANA_RPC_URLS> --env SOLANA_RPC_URL=<SOLANA_RPC_URL> --transport stdio solana-memo-media-mcp -- npx -y @three-ws/solana-memo-media-mcpReplace <…> with your own values
Platform CLI
codex mcp add solana-memo-media-mcp --env SOLANA_RPC_URLS=<SOLANA_RPC_URLS> --env SOLANA_RPC_URL=<SOLANA_RPC_URL> -- npx -y @three-ws/solana-memo-media-mcpReplace <…> with your own values
Config file
{
"mcpServers": {
"solana-memo-media-mcp": {
"command": "npx",
"args": [
"-y",
"@three-ws/solana-memo-media-mcp"
],
"env": {
"SOLANA_RPC_URLS": "<SOLANA_RPC_URLS>",
"SOLANA_RPC_URL": "<SOLANA_RPC_URL>"
}
}
}
}Replace <…> with your own values
Config file
{
"servers": {
"solana-memo-media-mcp": {
"type": "stdio",
"command": "npx",
"args": [
"-y",
"@three-ws/solana-memo-media-mcp"
],
"env": {
"SOLANA_RPC_URLS": "<SOLANA_RPC_URLS>",
"SOLANA_RPC_URL": "<SOLANA_RPC_URL>"
}
}
}
}Replace <…> with your own values
Platform CLI
gemini mcp add -e SOLANA_RPC_URLS=<SOLANA_RPC_URLS> -e SOLANA_RPC_URL=<SOLANA_RPC_URL> solana-memo-media-mcp npx -y @three-ws/solana-memo-media-mcpReplace <…> with your own values
Step by step, with commands for each platform: How to add an MCP server to Claude Code, Codex, Cursor, VS Code, Gemini CLI and more
Questions about three.ws Solana Memo Media
How do I install three.ws Solana Memo Media in Claude Code?
Run claude mcp add solana-memo-media-mcp -- npx -y @three-ws/solana-memo-media-mcp. To point it at your own RPC endpoints, add them with --env in the same command.
What does three.ws Solana Memo Media do?
It reads Solana SPL Memo instructions and returns the images inside their data URIs directly to an MCP client. Five tools cover single-transaction extraction, address scanning, local decoding, inscription rebuilding, and status output.
Which image formats are accepted?
PNG, JPEG, WebP, and GIF only, and the declared MIME type must match the file signature. SVG and executable formats are rejected, and decoded content is limited to 262,144 bytes.