关于 three.ws Solana Memo Media
three.ws Solana Memo Media 是一个只读、无需密钥的 MCP 服务,用于从 Solana SPL Memo 交易中提取并显示图像。它会校验图像格式和文件签名,并以 MCP 图像内容块返回。
主要功能
- 01提取交易中的嵌入图像
- 02扫描地址的近期交易签名
- 03本地解码图像数据 URI
- 04重建并校验多段铭文
- 05检查安全策略和 RPC 配置
适用场景
- 01查看 Solana 交易 Memo 中的图像
- 02查找某地址近期含图像的 Memo
- 03从单个交易签名重建铭文
MCP 相关
它向 MCP 客户端提供 Solana Memo 图像提取、搜索、解码、铭文重建和状态查询工具,并以内联图像内容块返回受支持的图像。服务只读,不签名、发送或修改链上数据。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 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,... 备忘录载荷复制到浏览器转换器中,只需向 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 | 获取一笔 legacy、v0 或 v1 交易,并返回其顶层和内部 Memo 指令中的所有受支持图像,以及签名者、slot 和版本。 |
find_solana_memo_media | 扫描某个地址最近最多 1,000 个签名(可通过 before 分页)。仅获取备忘录摘要中包含数据 URI 的签名,因此一次扫描只需少量 RPC 调用。 |
decode_solana_memo_data_uri | 在本地解码一个已复制的数据 URI。不会发起网络调用。 |
read_inscription | 从多部分铭文(first/1、firsts/1、spl404)的任一交易签名重建并验证铭文。图像以内嵌形式返回;SVG、HTML 和文本则作为非活动文本返回。 |
get_solana_memo_media_status | 显示本地策略、已识别的备忘录程序和 RPC 故障转移主机。不会发起网络调用。 |
已识别的备忘录程序:SPL Memo v1(Memo1UhkJRfHyvLMcVLMbLJYfW2tfU8G8H4PqvV6v8)、SPL Memo v2(MemoSq4gqABAXKb96qnH8TysNcWxMyWCqXgDLGmfcHr),以及由版本 1 交易携带的较新程序(Memo4c2pN8afCj432Lb7RMVKi9PbQnnW7ewFFaV3oAH)。
示例
向 MCP 客户端提问:“显示 Solana 交易 <signature> 中嵌入的任何图像。”它会调用 extract_solana_memo_media,并提供:
{ "signature": "<base58 Solana transaction signature>" }
响应包含一条 JSON 记录,以及每个资产对应的一个 MCP image 内容块。记录包含签名、费用支付方、slot、交易版本,以及每个资产的 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 主网公共端点。正常使用无需密钥。
| 变量 | 必填 | 含义 |
|---|---|---|
SOLANA_RPC_URLS | 否 | 以逗号分隔、按顺序排列的 JSON-RPC 故障转移端点。 |
SOLANA_RPC_URL | 否 | 单个主要 JSON-RPC 端点。 |
开发
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 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。