Substreams搜索分析服务

一个支持AI代理搜索、检查和分析Substreams包的服务,适用于区块链数据分析和部署场景。

  • by PaulieB14
  • JavaScript
  • 混合部署
  • 更新于
在 GitHub 查看 PaulieB14/substreams-search-mcp

使用说明

子流搜索MCP服务器

允许AI代理搜索、检查和分析的MCP服务器 子流 包——从注册表发现到接收器部署。支持 双重运输 --stdio用于本地客户端,SSE/HTTP用于远程代理(OpenClaw、自定义框架)。

工具

search_substreams

搜索substreams.dev包注册表。

参数 类型 默认值 说明
query string(必填) -- 搜索词,例如。 "solana dex" 或 "uniswap"
sort 字符串 "most_downloaded" most_downloaded, alphabetical, most_used, last_uploaded
network string -- 按链筛选: ethereum, solana, arbitrum-one等等。

返回包名称、URL、创建者、网络、版本、发布日期和下载计数。

inspect_package

检查Substreams包(.spkg)以查看其完整的模块图、protobuf类型和元数据。

参数 类型 说明
url string(必填) 指向的直接URL .spkg 文件

退货:

  • 包元数据(名称、版本、文档、网络)
  • 所有模块及其类型(map/store/blockIndex)、输出类型和更新策略
  • 完整DAG:每个模块的 dependsOn 和 dependedBy 关系
  • 每个模块的输入链(源代码块、其他映射、具有get/deltas模式的存储、参数)
  • 所有protobuf输出类型和原型文件的列表
  • 模块图的美人鱼图

list_package_modules

轻量级的替代品 inspect_package --只有模块名称、类型和输入/输出。

参数 类型 说明
url string(必填) 指向的直接URL .spkg 文件

get_sink_config

分析软件包的接收器配置,并生成可运行的CLI命令。

参数 类型 说明
url string(必填) 指向的直接URL .spkg 文件

返回以下三个结果之一:

  • sink_configured --软件包具有嵌入式接收器配置。提取SQL模式(用于SQL接收器),标识接收器模块和类型,并生成 install, setup,以及 run 具有正确网络端点的命令。
  • no_sink_config_but_compatible_modules_found --没有嵌入式配置,但模块输出接收器兼容类型(例如。 DatabaseChanges).识别它们并建议如何接线。
  • no_sink_support --没有与水槽兼容的模块。列出所有模块输出类型,以便您知道需要什么自定义消费者。

工作流程

search_substreams("uniswap", network: "polygon")
  → find package, get spkg.io URL

inspect_package("https://spkg.io/creator/package-v1.0.0.spkg")
  → see module DAG, output types, what it produces

get_sink_config("https://spkg.io/creator/package-v1.0.0.spkg")
  → get SQL schema + CLI commands to deploy

快速入门(npx)

无需安装:

克劳德桌面/光标/克劳德代码(stdio)

添加到MCP配置(claude_desktop_config.json, ~/.cursor/mcp.json,或 ~/.claude/mcp.json):

{
  "mcpServers": {
    "substreams-search": {
      "command": "npx",
      "args": ["substreams-search-mcp"]
    }
  }
}

OpenClaw/远程代理(SSE)

使用HTTP传输启动服务器:

# Dual transport — stdio + SSE on port 3849
npx substreams-search-mcp --http

# SSE only (for remote/server deployments)
npx substreams-search-mcp --http-only

# Custom port
MCP_HTTP_PORT=4000 npx substreams-search-mcp --http

然后将您的代理指向SSE端点:

{
  "mcpServers": {
    "substreams-search": {
      "url": "http://localhost:3849/sse"
    }
  }
}

运输方式

调用 运输 用例
npx substreams-search-mcp stdio 克劳德桌面、光标、克劳德代码
npx substreams-search-mcp --http stdio+SSE:3849 双--本地+远程代理
npx substreams-search-mcp --http-only SSE:3849 OpenClaw,远程部署

A. /health 端点位于 http://localhost:3849/health 当HTTP传输处于活动状态时。

运作原理

  • 搜索:substreams.dev注册表没有公共API。此服务器抓取包列表页面,对所有结果进行分页,消除重复,并返回结构化JSON。多词查询在服务器端搜索第一个词,并在客户端过滤其余的词。
  • 检查:用途 @substreams/core 获取和解析 .spkg 文件(protobuf编码的Substreams包),提取模块定义、DAG关系和原型信息。
  • 水槽配置:读取嵌入 sinkConfig 一 google.protobuf.Any 字段),根据URL类型对其进行解码,并将网络映射到Substreams端点以获得正确的CLI命令。