
three.ws Solana Memo Media
io.github.nirholasv0.1.0Updated Oct 10, 2026
Extract validated image data URIs from Solana SPL Memos and return them inline to MCP clients.
Overview
Reads Solana SPL Memo instructions and returns any embedded image data URIs inline to an MCP client.
- What it does
- The server fetches a Solana transaction by signature and returns every supported image found in its top-level and inner Memo instructions, along with signer, slot, and transaction version. It can also scan up to 1,000 recent signatures for an address to find memos containing data URIs, decode a data URI locally without network access, and report its local policy, recognized memo programs, and RPC failover hosts. Responses include a JSON record plus one image content block per asset, with MIME type, byte length, SHA-256 digest, and dimensions.
- When to use it
- Useful when you want an assistant to display an image stored in a Solana memo without manually copying a base64 data URI into a converter. It fits read-only inspection of memo media tied to a known transaction signature or address.
- Requirements
- Runs locally over stdio, typically via npx with Node.js. No account or API key is required; optional SOLANA_RPC_URL and SOLANA_RPC_URLS environment variables can point to your own JSON-RPC endpoints, otherwise public Solana mainnet endpoints are used. Network access is needed for the fetch and scan tools.
Installation
In SourceWeft
- Open three.ws Solana Memo Media in the dashboard and add it to a workspace.
- Enable the server for the chats that should use its tools.
Desktop only via STDIO. STDIO servers start a local process, so they need the SourceWeft desktop host.
Other MCP clients
Follow the launch instructions in the repository.
README
@three-ws/solana-memo-media-mcp
Read and display image data URIs embedded in Solana SPL Memo instructions. Instead of copying a data:image/...;base64,... memo payload into a browser converter, give an AI assistant the transaction signature and receive the validated image inline.
This is a keyless, read-only stdio MCP server. It never signs, sends, uploads, caches, or modifies chain data.
Install
For Cursor, Claude Desktop, or another stdio MCP client:
Tools
Recognized memo programs: SPL Memo v1 (Memo1UhkJRfHyvLMcVLMbLJYfW2tfU8G8H4PqvV6v8), SPL Memo v2 (MemoSq4gqABAXKb96qnH8TysNcWxMyWCqXgDLGmfcHr), and the newer program carried by version 1 transactions (Memo4c2pN8afCj432Lb7RMVKi9PbQnnW7ewFFaV3oAH).
Example
Ask an MCP client: "Show any image embedded in Solana transaction <signature>." It calls extract_solana_memo_media with:
The response is a JSON record plus one MCP image content block per asset. The record carries the signature, fee payer, slot, transaction version, and for each asset its MIME type, byte length, SHA-256, and dimensions. The raw data URI is intentionally not echoed into text output.
Use it from your own code:
Full guide: docs/mcp-solana-memo-media.md.
Safety and provenance
An SPL Memo is arbitrary signed text. A data URI is only a convention inside that text, not a Solana media standard and not an endorsement by a wallet, explorer, or this package.
- Only
image/png,image/jpeg,image/webp, andimage/gifare accepted. - SVG and all executable or document media are rejected.
- Decoded content is capped at 262,144 bytes.
- The declared MIME type must match PNG, JPEG, WebP, or GIF file signatures before an image is returned.
- The server reports a SHA-256 digest so callers can preserve an exact reference.
- Verify the transaction signer, program, and surrounding transaction context independently before trusting what an image means.
RPC configuration
The server tries SOLANA_RPC_URLS, then SOLANA_RPC_URL, then public Solana mainnet endpoints. You do not need a key for normal use.
Development
License: Apache-2.0.
Source: packages/solana-memo-media-mcp/README.md at commit 0e68f46
Tools
0Version history
1- v0.1.0LatestOct 10, 2026
