MCP.so
Sign In

Pulse Verity MCP ServerVerifiedFeatured

@PulseBet

Basic information

Category

Finance & Commerce

Last updated

License

MIT

Author

PulseBet

Submitted by

PulseBet

About Pulse Verity MCP Server

Signed crypto prices, built for AI agents: multi-exchange prices anyone can verify offline.

Pulse Verity MCP Server config

Add this server to your MCP-compatible client using the configuration below.

{
  "mcpServers": {
    "pulse-verity": {
      "command": "npx",
      "args": [
        "-y",
        "pulse-verity"
      ],
      "env": {
        "PULSE_API_KEY": "pidx_your_key_here"
      }
    }
  }
}

Pulse Verity MCP Server tools

9

Get a current signed crypto index price from /api/index/v1/price. Returns symbol, price, optional priceText, at, grade, signature, kid and sig. Preserve priceText exactly for verify_print. Optional tier, confidence, dispersionBps, interval, sources, engine and cadence describe the observation. Pass the whole print including v2 to verify_print; require recordValid=true before trusting quality fields. Coverage changes: use list_index_assets to discover assets. A stale or unavailable response means no current price, never zero. Without a developer key, only limited daily BTC, ETH and SOL samples are served.

Read up to 100 crypto symbols in one /api/index/v1/batch request. Returns observations with individually signed successful rows and per-symbol errors for unavailable rows. Your plan may allow fewer symbols per request: get_account_status shows batchMaxSymbols, and a larger request is refused with code TOO_MANY_SYMBOLS, batchLimit and requested, so split it. Verify each successful row with verify_print and require recordValid=true before trusting its quality fields. Surrounding batch metadata is unsigned. No automatic retries. Needs a developer key (PULSE_API_KEY) or the hosted server.

Read one bounded page from /api/index/v1/verity/catalog. Discover crypto symbols and their current coverage status and measured cadence. Catalog rows, prices and metadata are unsigned: use get_index_price or get_index_batch for signed receipts. Availability changes; total is a catalog count, not a count of fresh prices. No automatic pagination. Needs a developer key (PULSE_API_KEY) or the hosted server.

Get the recorded signed index print nearest a requested time from /api/index/v1/print. Accepts ISO-8601 or epoch milliseconds. Check deltaMs: it is the distance between your requested time and the sampled print. Sampling and retention are bounded; a recorded print need not equal a separate live read. Preserve the whole print, including priceText, kid and v2, for verify_print. Require recordValid=true before trusting quality fields. Request-envelope fields such as deltaMs are unsigned. Needs a developer key (PULSE_API_KEY) or the hosted server.

The earlier name of get_recorded_print, kept so existing integrations keep working; prefer get_recorded_print. Same input, output and behaviour. Get the recorded signed index print nearest a requested time from /api/index/v1/print. Accepts ISO-8601 or epoch milliseconds. Check deltaMs: it is the distance between your requested time and the sampled print. Sampling and retention are bounded; a recorded print need not equal a separate live read. Preserve the whole print, including priceText, kid and v2, for verify_print. Require recordValid=true before trusting quality fields. Request-envelope fields such as deltaMs are unsigned. Needs a developer key (PULSE_API_KEY) or the hosted server.

Read one page of index history for a crypto symbol from /api/index/v1/history: candles (open, high, low, close per interval), summary metrics, pagination and, for dataset=verified, verifiedObservations. dataset=verified (default) is built from prints Pulse calculated and signed live; dataset=reconstructed is rebuilt history, not signed at the historical time, served at interval 1h or 1d. Candles, metrics and surrounding metadata are unsigned. Each verifiedObservations row carries symbol, price (the exact signed text), at, grade, signature and kid; pass those fields to verify_print to check a row, which authenticates its price fields only (history rows carry no v2 block). A null kid can be passed as it is or left out; a row whose signature or grade is null cannot be verified. The account's plan sets how far back history reaches: when the request started earlier, rangeClamped is true and from is where the page begins. limit (1 to 1000, default 200) bounds the rows on one page. For dataset=verified at interval 1h or 1d it is at most 250: a page there can count hours, and each hour can carry up to four signed prints (open, high, low and close), so verifiedObservations can hold up to four rows per hour. For the next page pass pagination.nextCursor as cursor with the same symbol, dataset and interval. from and to are ISO-8601 times; the default window is the 30 days before to. Pass assetId, written as the server issues it (native:<namespace>:<id>, or contract:<network>:<address> such as contract:eip155:1:0x...), when a symbol identifies more than one asset. Needs a developer key (PULSE_API_KEY) or the hosted server.

Read this developer key's Pulse Verity plan and usage from /api/index/v1/account: plan, used (calls counted this UTC month), limit, remaining, resetAt, perMinute, batchMaxSymbols, capacityAction and upgradeUrl (the plans page). The monthly allowance is account-wide: every key and connected app on the account shares it; perMinute applies to each key. This call does not count toward the allowance. The key itself is never returned. Needs a developer key (PULSE_API_KEY) or the hosted server.

Verify a signed print locally with ECDSA P-256/SHA-256. Legacy valid authenticates only the v1 canonical price fields. Pass the whole print including v2 to authenticate its complete live, archive or daily-close index record; agents using sources, confidence, interval or cadence must require recordValid=true. Live records sign 18 fields; archive records sign 13 without freshness ages, and daily-close records add signed assetId and closeDay. v2.signedFields lists exactly what is authenticated. kind selects the format and is not signed. Added non-null freshness ages invalidate archived verification. verificationScope is full-record only when both signatures and all required fields match, price-only for a valid v1 print without v2, or invalid otherwise. metadataSigned equals recordValid. deltaMs and surrounding metadata remain unsigned. Public keys come from /api/index/v1/pubkey, cached five minutes with refresh at most every 30 seconds. Each supplied kid selects only its exact published key; v1 prints without kid (or with kid null, as some history rows carry) use the bounded ring. No API key is sent to the key endpoint. Invalid verification can mean alteration or a key no longer published. Works without a developer key.

Submit a reproducible Verity API or MCP bug, missing capability or data-quality report for human review. Requires a developer key (PULSE_API_KEY) or the hosted server, and an enabled feedback service. Include the failed call's requestId when available. Do not send secrets, personal information or conversation transcripts. Saves a private report; does not change prices, start trades or open or merge a PR. Returns a tracking receipt only after storage succeeds.

Overview

What is Pulse Verity?

A consensus crypto price index for 5,000+ assets where every price is signed with ECDSA P-256 over symbol, price, timestamp and grade. The public key ring is published, so any print can be verified offline, by a person or by an agent, long after it was served. It is the same feed the Pulse prediction app settles real money on.

Five read-only tools

  • get_index_price(symbol) — the signed index price right now
  • get_index_batch(symbols) — signed prices for up to 100 symbols in one call
  • list_index_assets(limit, offset, band, status) — the asset catalogue with coverage status and measured cadence
  • get_settlement_print(symbol, at) — the recorded signed print nearest a timestamp, with its distance in milliseconds
  • verify_print(print) — local cryptographic verification of any signed print against the published key ring

Setup

  1. Get a free key at https://thepulse.markets/developers (60 requests a minute, no card).
  2. Add the config block shown in the Config tab to your client, with your pidx_ key in PULSE_API_KEY.
  3. Claude Desktop users can instead download the one-click bundle from the repository's releases folder.

Honest notes

  • Every print carries a grade inside the signed bytes: consensus (several independent venues), blended, or indicative (one exchange).
  • Verified signed history begins 2 September 2026 and grows daily.
  • Read-only. The server never places orders or moves funds.

Comments

More Finance & Commerce MCP servers