关于 Pulse Verity
Pulse Verity 是面向需要可验证行情数据的 Agent 和应用的加密货币价格 MCP 服务。价格记录带有 ECDSA 签名,可独立校验。
主要功能
- 01单个资产的签名价格
- 02最多 100 个资产的签名批量查询
- 03查询过去时间附近的签名记录
- 04本地校验签名
- 05资产覆盖范围与更新频率目录
- 06价格记录的可结算等级
适用场景
- 01行动前核验当前加密货币价格
- 02比较多个资产的签名价格
- 03重建某时间点附近的记录价格
- 04在数据源离线后验证价格记录
MCP 相关
向 MCP 客户端提供价格、批量查询、结算记录、验证、目录和公钥工具。可作为本地 stdio MCP 服务运行,也可通过 Pipeworx 网关连接。
配置
远程服务无需本地安装。选择你使用的客户端,复制配置或使用一键安装。
https://gateway.pipeworx.io/pulse-verity/mcpclaude mcp add --transport http pipeworx-io-pulse-verity https://gateway.pipeworx.io/pulse-verity/mcp{"mcpServers":{"pipeworx-io-pulse-verity":{"type":"http","url":"https://gateway.pipeworx.io/pulse-verity/mcp"}}}在 Cursor 中打开{"servers":{"pipeworx-io-pulse-verity":{"type":"http","url":"https://gateway.pipeworx.io/pulse-verity/mcp"}}}在 VS Code 中打开{"mcpServers":{"pipeworx-io-pulse-verity":{"type":"http","url":"https://gateway.pipeworx.io/pulse-verity/mcp"}}}{"mcpServers":{"pipeworx-io-pulse-verity":{"serverUrl":"https://gateway.pipeworx.io/pulse-verity/mcp"}}}命令在终端中运行;JSON 粘贴到对应客户端的 MCP 配置后重启。需要授权的服务会在首次连接时提示登录。
工具
详细介绍
@pipeworx/pulse-verity
附带证明的加密货币指数价格。Pulse Verity Index 的每条观测数据都经过 ECDSA P-256 签名,因此,基于某个价格采取行动的 Agent 日后可以准确证明自己采用了哪个价格——即使 Agent、网关和 Pulse 全部离线,这份证明依然成立。
Pipeworx 的一部分:https://pipeworx.io——一个将 AI Agent 连接到 1683+ 个实时数据源的 MCP 网关。
这是目录中首个会返回可验证数据的来源。这里的其他价格数据源都会给出一个必须靠信任的数据。
工具
pulse_signed_price(symbol)— 单个资产当前的签名报价。pulse_signed_batch(symbols[])— 一次调用最多获取 100 个资产的报价,每一行都有单独的签名。Pulse 不提供的交易代码会列在not_served中,而不会被悄悄省略。pulse_settlement_print(symbol, at)— Pulse 在过去某个时刻附近记录的签名报价,以及delta_ms。用于结算合约和还原某个时间戳的价格。pulse_verify_print(print)— 检查报价。返回valid: true|false。pulse_asset_catalog(limit?, offset?, band?, status?)— 覆盖范围和 6,700+ 个观测资产的测量频率。未签名(见下文)。pulse_key_ring()— 公钥、算法和规范格式。无需密钥。
身份验证
已配置平台密钥(PLATFORM_PULSE_KEY),因此调用方无需自备密钥。仍接受 _apiKey,供自带密钥的调用方使用。
密钥存储在加密的 platform_keys KEYSTORE 中,而不是 Cloudflare secret binding 中——使用 scripts/pwcall.sh platform-key-put PLATFORM_PULSE_KEY < file(fleet #2007,docs/platform-key-store-plan.md)。此处新增密钥时,不要使用 wrangler secret put:网关距离 Cloudflare 的 250 个文本 binding 上限只剩一个 binding,而 check-gateway-bindings 门禁会在 secret 数量超过已提交基线时,阻止所有通道的部署。此软件包最初曾误用这种方式构建,导致网关部署失败;直到密钥移入 keystore 并删除单独的 binding 后才恢复正常;scripts/pwcall.sh platform-key-status 应显示 binding_underneath: false。
在 https://thepulse.markets/developers 免费自助注册:每分钟 60 次请求,每月 25,000 次请求,无需银行卡。pulse_verify_print 和 pulse_key_ring 完全不需要密钥。上游无需密钥的 /sample 端点仅支持 BTC/ETH/SOL;要查询更多资产则需要密钥。
验证如何运作,以及“本地”意味着什么
规范字符串使用 ECDSA P-256 / SHA-256 签名,签名为 base64 编码的 IEEE-P1363 r||s:
pulse-index-v1\n{symbol}\n{priceText}\n{at}\n{grade}
pulse_verify_print 会在 worker 中重新计算此签名。不会向 Pulse 查询报价是否有效,因此 Pulse 无法为自己未签名的报价背书,离线或遭入侵的数据源也无法将无效报价变为有效报价。非本地的部分是密钥分发:遇到尚未见过的 kid 时,需要获取一次公钥环,之后会将其缓存。每个响应都会在 key_source 中说明实际采用的方式,因为“在本地验证”是一项安全声明,不应含糊其辞。
2026-09-16 进行实时验证,独立于 Pulse 自身代码,并采用篡改控制——如果验证器始终只返回 true,那就毫无证明力:
| 输入 | valid |
|---|---|
| 原样返回的报价 | true |
| 价格 + 1 | false |
| 更改 grade | false |
at 向后移动 1 ms | false |
| 替换交易代码 | false |
kid 不在密钥环中 | 抛出异常,并提示应将报价视为未验证,而不是无效 |
priceText 陷阱
标准字符串使用 priceText——即从线上原样获取的价格——绝不使用重新解析的浮点数。在构建过程中使用的示例里,String(price) 恰好等于 priceText,所以浮点数重新解析验证器验证结果正确,看起来也没问题。但只要 JS 数字格式与线上文本不一致,它就会失效:尾随零、指数形式,或超过 17 位有效数字。一个仅在价格带有尾随零之前才正确的验证器还不如没有,因为人们会信任它。
本工具包优先使用 priceText,仅当 priceText 不存在时才回退到 String(price)——这是 Pulse 自身文档所述的回退方式。它会在 price_field_used 中说明这一点,并在使用回退方式时发出警告。
等级至关重要
| 等级 | 市场 | 可结算 |
|---|---|---|
consensus | 3 个或更多独立市场 | 是 |
blended | 2 个市场 | 是 |
indicative | 1 个精确映射市场 | 否 |
Pulse 会发布 indicative,让数据稀疏的资产如实显示为数据稀疏,而不是显得胸有成竹却给出错误结果。只有下游也保留这一信息,这种做法才算诚实,因此本工具包返回的每条报价都会附带一个派生的 settleable 布尔值,以及一个说明其影响的 grade_note——仅看 price 字段的 Agent 不会推断出 indicative 不符合结算条件。无法识别的等级一律视为不可结算。
哪些内容经过签名,哪些没有
报价(pulse_signed_price、pulse_signed_batch、pulse_settlement_print)经过签名。资产目录未经过签名:其中的行包含价格和覆盖范围元数据,但没有签名。因此,pulse_asset_catalog 会返回 signed: false 并明确说明这一点,因为从一个主打签名的工具包中提供未签名价格,是最值得提前避免的误解。
注意事项
pulse_settlement_print返回的是距离最近的已记录报价,而不是按你指定的时刻合成的价格。请对照你声明的容差检查delta_ms。- 对于未提供服务的符号,批量接口返回的行数会少于请求数,而不是报错。未列出的符号并不代表价格为零——请查看
not_served。 - 上游会通过带内的
success: false和code表示拒绝;本工具包会抛出这些错误,而不是返回看起来像数据的正文。 /price使用错误的参数名称(symbols=而不是symbol=)时,会返回UNSUPPORTED_SYMBOL,并提示'?'。这是上游的特性,不是覆盖范围的答复。
数据来源
- https://thepulse.markets/developers — 密钥注册与文档
https://mcp.thepulse.markets/api/index/v1/price— 已签名报价https://mcp.thepulse.markets/api/index/v1/batch— 最多 100 个符号https://mcp.thepulse.markets/api/index/v1/print— 某个时间附近的已记录报价https://mcp.thepulse.markets/api/index/v1/verity/catalog— 覆盖范围,未签名https://mcp.thepulse.markets/api/index/v1/pubkey— 公钥环,无需密钥https://mcp.thepulse.markets/api/index/v1/symbols— 5,500 多个受支持的代码
Pulse 也发布了自己的 MCP 服务(npm 上的 pulse-verity,官方注册表中的 io.github.PulseBet/pulse-verity)。本工具包是一个独立适配器,可让错误形式、等级处理和命名方式与 Pipeworx 目录中的其他项目保持一致。
Bruce 于 2026-09-15/16 通过电子邮件与创始人 Justin 建立了联系。作为 fleet #2173 构建。
快速开始
添加到你的 MCP 客户端(Claude Desktop、Cursor、Windsurf 等):
{
"mcpServers": {
"pulse-verity": {
"url": "https://gateway.pipeworx.io/pulse-verity/mcp"
}
}
}
此端点实际提供的内容
https://gateway.pipeworx.io/pulse-verity/mcp 上的 tools/list 会返回上表中的工具,以及 Pipeworx 共享元工具——ask_pipeworx、
discover_tools、search_within、remember/recall 和网关范围内的其他工具。因此,你看到的工具数量会多于表格中的数量:目前,单个套件端点除了列出该套件自己的工具,还会列出约 30 个共享工具。连接的 initialize 响应会说明其确切范围,是了解当天实际情况的权威依据。
这是有意为之,并非意外发生的多路复用。元工具让限定范围的连接也能回答此套件未涵盖的问题——通过 ask_pipeworx 路由到整个目录——无需再添加第二个 MCP 服务。目前无法挂载不含这些元工具的套件端点;如果额外的架构信息带来的上下文成本超过路由的价值,请连接一次完整网关,而不是连接多个套件端点。
或者连接完整的 Pipeworx 网关,直接列出每个套件的工具,而不仅是此套件的工具:
{
"mcpServers": {
"pipeworx": {
"url": "https://gateway.pipeworx.io/mcp"
}
}
}
两个 URL 都连接到同一个网关和相同的 1683+ 个数据源。唯一的区别是直接列出哪些套件的工具;从任一端点都可以通过 ask_pipeworx 访问所有工具。
没有 MCP 客户端?通过 HTTP 调用
curl -X POST https://gateway.pipeworx.io/v1/tools/pulse_signed_price \
-H 'Content-Type: application/json' \
-d '{"symbol":"BTC"}'
首次调用无需账户。检查任意工具:GET https://gateway.pipeworx.io/v1/tools/pulse_signed_price。查找工具:使用 {"query":"..."} 向 https://gateway.pipeworx.io/v1/tools/search_packs 发送 POST 请求。
独立运行(无需网关账户)
此软件包也可作为本地 stdio MCP 服务运行——无需 Pipeworx 账户,也无需通过网关往返:
{
"mcpServers": {
"pulse-verity": {
"command": "npx",
"args": ["-y", "@pipeworx/mcp-pulse-verity"]
}
}
}
或者直接运行它,确认服务可以启动:
npx -y @pipeworx/mcp-pulse-verity
它通过 stdin/stdout 进行 MCP 通信,并针对仅此套件的工具响应 initialize/tools/list/tools/call——不含上述网关连接额外提供的任何共享元工具。相同的源码,相同的工具,但不支持 ask_pipeworx 路由。
使用 ask_pipeworx
你可以用通俗英语提问,而不是直接调用工具——这对上述套件端点和完整网关都适用:
ask_pipeworx({ question: "your question about Pulse Verity data" })
网关会自动选择合适的工具并填写参数。
更多信息
许可证
MIT
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。