Pulse Verity について
Pulse Verity は、検証可能な暗号資産価格を必要とするエージェントやアプリ向けの 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 署名が付いているため、価格に基づいて行動したエージェントは、後からどの価格に基づいて行動したのかを正確に証明できます。その証明は、エージェント、ゲートウェイ、Pulse のすべてがオフラインでも有効です。
Pipeworx の一部です — AI エージェントを1683以上のリアルタイムデータソースに接続する MCP ゲートウェイです。
これは、検証可能な情報を返すカタログ初のデータソースです。 ここにある他のすべての価格フィードは、信頼するしかない数値を返します。
ツール
pulse_signed_price(symbol)— 1つの資産の現在の署名付き価格です。pulse_signed_batch(symbols[])— 1回の呼び出しで最大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 も使用できます。
キーは Cloudflare のシークレットバインディングではなく、暗号化された platform_keys KEYSTORE に保存されています — scripts/pwcall.sh platform-key-put PLATFORM_PULSE_KEY < file
(fleet #2007、docs/platform-key-store-plan.md)。ここで新しいキーを追加する際に wrangler secret put を使わないでください。ゲートウェイは Cloudflare のテキストバインディング上限250件まで残り1件のところにあり、check-gateway-bindings ゲートは、シークレット数がコミット済みの基準値を超えた時点で、すべてのレーンのデプロイをブロックします。このパックは当初誤ってそのように構築されており、キーをキーストアに移して個別のバインディングを削除するまで、ゲートウェイのデプロイを失敗させていました。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 で署名し、署名は IEEE-P1363 の r||s を base64 で表します。
pulse-index-v1\n{symbol}\n{priceText}\n{at}\n{grade}
pulse_verify_print はワーカー内でこの値を再計算します。価格の有効性を Pulse に問い合わせることはありません。そのため Pulse は、自ら署名していない価格を保証できず、オフラインまたは侵害されたソースによって無効な価格が有効に変わることもありません。ローカルで行われないのは鍵の配布です。未確認の kid がある場合は公開鍵リングを1回取得し、その後キャッシュします。すべてのレスポンスで、どちらの処理が行われたかを key_source に示します。「ローカルで検証済み」はセキュリティ上の主張であり、曖昧に述べるべきではないためです。
2026-09-16 に Pulse 独自のコードとは別に、改ざん検知を設けて実際に検証済みです。常に true しか返さない検証器では、何も証明できません。
| 入力 | valid |
|---|---|
| 返されたままの価格 | true |
| 価格 + 1 | false |
| grade を変更 | false |
at を 1 ms ずらす | false |
| シンボルを入れ替える | false |
リングに存在しない kid | エラーになり、無効ではなく未検証として扱うよう示されます |
priceTextの落とし穴
正規の文字列ではpriceText、つまりワイヤーから届いたとおりの価格を使用し、再解析した浮動小数点数は決して使用しません。この実装時に使ったサンプルでは、たまたまString(price)がpriceTextと一致していたため、浮動小数点数を再解析する検証器でも正しく検証でき、見た目にも問題ありませんでした。しかし、末尾のゼロ、指数表記、または有効数字が17桁を超えるケースで、JSの数値フォーマットがワイヤー上のテキストと異なると、破綻します。価格に末尾のゼロが付くまでは正しい検証器は、ないよりも悪いものです。信頼されてしまうからです。
このパックではpriceTextを優先し、存在しない場合に限ってString(price)にフォールバックします。これはPulse自身が文書化しているフォールバックです。また、price_field_usedでその旨を示し、フォールバック使用時には警告を出します。
グレードは判定に不可欠です
| グレード | 取引所 | 決済可能 |
|---|---|---|
consensus | 3以上(独立) | はい |
blended | 2 | はい |
indicative | 1(完全一致でマッピング) | いいえ |
Pulseはindicativeを公開することで、流動性の薄い資産を、誤った確信を持たせるのではなく、流動性が薄いと分かるようにしています。下流でもこの情報を引き継がなければ正直な扱いとは言えません。そのため、このパックが返すすべての価格データには、導出したsettleableブール値と、その意味を明記するgrade_noteも含まれます。priceフィールドだけを見たエージェントには、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で誤ったパラメーター名(symbol=の代わりにsymbols=)を使うと、'?'に関するエラーを含む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がJustin(創業者)との関係をメールで開始、2026-09-15/16。 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":"..."} を指定して POST https://gateway.pipeworx.io/v1/tools/search_packs を実行します。
スタンドアロン(ゲートウェイアカウント不要)
このパッケージは、ローカルの 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 サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。