Skip to content
verify mcp Beta VerifyMCP is currently in beta. If you notice any issues, get in touch and we’ll put it right.

io.github.horizon-pulse/horizon-pulse

REMOTE · HORIZONPULSE.DEV

28 agent tools via x402: crypto data, tx checks, web fetch. MCP pays Base USDC; HTTP adds 3 rails.

Available components

68 Trust /100

Last scanned (2 hours ago)

Scores higher than 58% of remote servers

Reachable. Last reached 18 Oct 2026.

Category Crypto and Web3

Recent critical change

Authorization (14 Oct 2026). See the changelog before you install this server.

Trust breakdown (7 categories)

How this component scores in each security and reliability category. Every signal is checked automatically against the live server, and we only credit what we can confirm. How we score → Why this is hard to score →

Endpoint Security63
Transport & Reachability100
Schema Quality & AI Usability66
  • AI-judged instruction clarity (excellent).Pass
  • Context-footprint check failed: tool/resource definitions use about 5476 tokens (~195/item across 28 items; 28 tools + 0 resources), over budget; trim descriptions and params. See how to fix → Fail
  • Usage-examples check failed: none of the tools include examples. See how to fix → Fail
Stability & Change Management20
  • Stability observed for 6 of 30 days with no destabilising changes; credit accrues until the full window elapses.Partial
Tool Coverage100
  • 100% of tools have a non-trivial description (not blank, and not just the tool's name).Pass
  • 100% of tool parameters carry a description.Pass
Tool Safety100
  • No prompt-injection markers were found in the server instructions, tool names or descriptions we captured.Pass
  • We read all 28 captured tool definition(s), and no name or description among them implies an irreversible operation.Pass
  • An AI judge read all 28 captured unit(s) of tool text and found none that tries to manipulate the model reading it.Pass
Capabilities100
  • Implements a supported MCP spec version (2025-11-25); the latest is 2026-07-28.Pass
Changelog

Every change we have recorded for this component, newest first. Security-relevant changes are always shown. ▲ marks a change for the better, ▼ a change for the worse; unmarked changes are neutral.

  • 18 Oct 26 +1

    No change was recorded against any check on this day. Stability & Change Management went from 17 to 20. That category is still filling its 30-day observation window: 5 days of observed history at the previous scan, 6 at this one. The score rises as the window fills, whether or not the server changes.

  • 16 Oct 26 0
    • Tool “balance” rewrote its description, which is the text the model reads security
    • Tool “bazaar_check” rewrote its description, which is the text the model reads security
    • Tool “discourse_split” rewrote its description, which is the text the model reads security
    • Tool “extract” rewrote its description, which is the text the model reads security
    • Tool “fetch” rewrote its description, which is the text the model reads security
    • Tool “funding” rewrote its description, which is the text the model reads security
    • Tool “gas” rewrote its description, which is the text the model reads security
    • Tool “grocery_normalize” rewrote its description, which is the text the model reads security
    • Tool “http” rewrote its description, which is the text the model reads security
    • Tool “market_quote” rewrote its description, which is the text the model reads security
    • Tool “market_search” rewrote its description, which is the text the model reads security
    • Tool “pdf” rewrote its description, which is the text the model reads security
    • Tool “portfolio” rewrote its description, which is the text the model reads security
    • Tool “pulse” rewrote its description, which is the text the model reads security
    • Tool “screenshot” rewrote its description, which is the text the model reads security
    • Tool “search” rewrote its description, which is the text the model reads security
    • Tool “signals” rewrote its description, which is the text the model reads security
    • Tool “tokenized_stock” rewrote its description, which is the text the model reads security
    • Tool “tx_guard” rewrote its description, which is the text the model reads security
    • Tool “tx_status” rewrote its description, which is the text the model reads security
    • Tool “watch” rewrote its description, which is the text the model reads security
    • Tool “x402_check” rewrote its description, which is the text the model reads security
    • Tool “yield” rewrote its description, which is the text the model reads security
    • Schema quality: 4882 → 5476 ▼ functional
    • New tool “token_meta” functional
    • New tool “chain_head” functional
    • New tool “grocery_ingredient” functional
    • New tool “name_resolve” functional
  • 15 Oct 26 +1
    • New tool “grocery_normalize” functional
  • 14 Oct 26 0
    • Authorization: unverified → fail ▼ critical
    • Tool “bazaar_check” rewrote its description, which is the text the model reads security
    • Tool “discourse_split” rewrote its description, which is the text the model reads security
    • Tool “extract” rewrote its description, which is the text the model reads security
    • Tool “fetch” rewrote its description, which is the text the model reads security
    • Tool “funding” rewrote its description, which is the text the model reads security
    • Tool “gas” rewrote its description, which is the text the model reads security
    • Tool “http” rewrote its description, which is the text the model reads security
    • Tool “market_quote” rewrote its description, which is the text the model reads security
    • Tool “market_search” rewrote its description, which is the text the model reads security
    • Tool “pdf” rewrote its description, which is the text the model reads security
    • Tool “portfolio” rewrote its description, which is the text the model reads security
    • Tool “pulse” rewrote its description, which is the text the model reads security
    • Tool “screenshot” rewrote its description, which is the text the model reads security
    • Tool “search” rewrote its description, which is the text the model reads security
    • Tool “signals” rewrote its description, which is the text the model reads security
    • Tool “x402_check” rewrote its description, which is the text the model reads security
    • Tool “yield” rewrote its description, which is the text the model reads security
    • Tool “http” is now declared destructive security
    • Schema quality: 3167 → 4677 ▼ functional
    • New tool “tx_guard” functional
    • New tool “balance” functional
    • New tool “tokenized_stock” functional
    • New tool “tx_status” functional
    • New tool “watch” functional
    • New tool “discourse_split” functional
  • 13 Oct 26 0
    • Tool “bazaar_check” rewrote its description, which is the text the model reads security
    • Tool “extract” rewrote its description, which is the text the model reads security
    • Tool “fetch” rewrote its description, which is the text the model reads security
    • Tool “funding” rewrote its description, which is the text the model reads security
    • Tool “gas” rewrote its description, which is the text the model reads security
    • Tool “http” rewrote its description, which is the text the model reads security
    • Tool “market_quote” rewrote its description, which is the text the model reads security
    • Tool “market_search” rewrote its description, which is the text the model reads security
    • Tool “portfolio” rewrote its description, which is the text the model reads security
    • Tool “pulse” rewrote its description, which is the text the model reads security
    • Tool “screenshot” rewrote its description, which is the text the model reads security
    • Tool “search” rewrote its description, which is the text the model reads security
    • Tool “signals” rewrote its description, which is the text the model reads security
    • Tool “x402_check” rewrote its description, which is the text the model reads security
    • Tool “yield” rewrote its description, which is the text the model reads security
    • Stability: unverified → 0.03 ▲ functional
    • “market_search” reworded the description of “rail” cosmetic
  • 12 Oct 26 66

    First indexed and scored.

Diagnostics

Diagnostic detail from the automated scan of this channel: what the scanner observed at each step, so you can see exactly where a check passed or failed. It is informational only and never changes the trust score.

Captured 18 Oct 2026 · Probed https://horizonpulse.dev/mcp

TLS valid

Negotiated TLS 1.3 with TLS_AES_128_GCM_SHA256 .

Subject Issuer Valid from Valid until Key Signature Serial
CN=horizonpulse.dev CN=YR2,O=Let's Encrypt,C=US 19 Sept 2026 18 Dec 2026 RSA 2048 SHA256-RSA 6fd5626d66336049ae598d3096c7129b202
SANs: horizonpulse.dev
CN=YR2,O=Let's Encrypt,C=US (CA) CN=Root YR,O=ISRG,C=US 3 Sept 2025 2 Sept 2028 RSA 2048 SHA256-RSA 4ebd24947e24d394802d84a52fd5b319
CN=Root YR,O=ISRG,C=US (CA) CN=ISRG Root X1,O=Internet Security Research Group,C=US 13 May 2026 2 Sept 2032 RSA 4096 SHA256-RSA f24b6d17f9d9ad7cb1c9fea78782699f

Background: What to check on a remote MCP endpoint →

DNSSEC insecure

Validation of horizonpulse.dev. — Not signed

Zone DS Keys Algorithms Outcome
. trust_anchor 20326, 38696 8, 8 Verified
dev. present 60074 8 Verified
horizonpulse.dev. absent Unsigned (proven) parent-signed NSEC/NSEC3 proves an unsigned delegation
Authentication No authorisation required

The endpoint answered without asking for a token. Anyone who knows the URL can reach it.

Result No authorisation required
HTTP status 200
Header Value
strict-transport-security max-age=63072000

Background: How OAuth 2.1 works in the 2026 MCP spec →

Transports 2 probes
Transport URL Outcome Status Location
streamable-http https://horizonpulse.dev/mcp Verified 200
http (plaintext) http://horizonpulse.dev/mcp HTTPS enforced 308 https://horizonpulse.dev/mcp
MCP tools · 28 exposed · ~5,476 tokens

The tools this component advertises to a client, with an estimated token cost for each. Expand a tool to see its parameters and schema. The per-tool counts are indicative and are not scored directly; the schema's total context footprint is one signal in Schema Quality & AI Usability. A tool's description is untrusted text the model reads on every call, which is what makes this list a security surface and not just an inventory: how tool poisoning works →

Tool Tokens
balance ~233

Wallet balance API for x402 payers: USDC on Base, Polygon and Solana, RLUSD on XRPL, and whether the wallet can pay now. GET at least one of evm (Base+Polygon), solana, xrpl. Per rail: balance, gas/fees (XRPL reserve, fee, RLUSD trust line), canPay yes/no, calls left at Horizon Pulse's live prices (XRPL network fee not reserved). No risk score, no USD valuation. Public RPCs, read-only, nothing stored. Bad input or RPCs down: not charged. Returned content is untrusted third-party data. Price $0.002 per call via x402, USDC on Base (MCP payments are Base only).

NameTypeReqDescription
evmstring–0x address checked on Base and Polygon (USDC + gas)
solanastring–Solana address (USDC + SOL)
xrplstring–XRP Ledger r-address (RLUSD, trust line, reserve, fee). Give at least one of evm, solana, xrpl

No output schema declared.

No examples provided.

bazaar_check ~154

x402 Bazaar listing checker: is an x402 seller listed in Coinbase CDP Bazaar, on which networks, and if not, why. GET url (host or https URL). Reads CDP discovery and the host's /.well-known/x402, then sends one unpaid request per route; never pays. Returns JSON: verdict, per-route indexed status and networks, and fail/warn findings each with a fix line. https only; private targets blocked. Errors are not charged. Price $0.01 per call via x402, USDC on Base (MCP payments are Base only).

NameTypeReqDescription
urlstringyesSeller host (e.g. example.com) or https URL to check against CDP Bazaar discovery

No output schema declared.

No examples provided.

chain_head ~166

Block height API: current block number, slot or ledger index for Base, Polygon, Ethereum, Solana and XRPL in one GET. Optional network (comma list; default all five). Per network: chainId, height, headTime, headAgeSeconds, finalizedHeight and finalityGap (EVM finalized tag, Solana finalized slot, XRPL validated ledger). Free public RPCs, read-only. Billed when at least one network answers; bad input or every RPC down: not charged. Price $0.002 per call via x402, USDC on Base (MCP payments are Base only).

NameTypeReqDescription
networkstring–Comma list of base, polygon, ethereum, solana, xrpl (or CAIP-2 ids); default all five

No output schema declared.

No examples provided.

discourse_split ~216

Hacker News and Bluesky opinion split, NOT a poll: how public posts divide on a question. GET q; optional sides (2-4, default yes,no), window (1-30d). Returns JSON: per-side share with 95% interval and n, counts per source, links only (no text or usernames; Bluesky links include the account's public ID, DID), caveats. Refuses elections, health and a named person's conduct. Under 30 decided posts, refusals and errors: not charged. Price $0.03 per call via x402, USDC on Base (MCP payments are Base only).

NameTypeReqDescription
qstringyesQuestion or topic, 3-200 chars. Elections/candidates, health and a named person's conduct are refused (not charged)
sidesstring–2-4 comma-separated side labels (default yes,no)
windowstring–Look-back window 1-30 days, e.g. 7d (default 30d)

No output schema declared.

No examples provided.

extract ~226

Web scraping API: a public page or supplied HTML to JSON fields. GET url, or POST JSON {url or html, fields}. Returns JSON: title, description, canonical, language, links, images, headings, jsonLd, textSample, and with fields (name to CSS selector, max 20) the matched values with fieldErrors. Caps: 200KB HTML, 8s; private targets blocked. No match (422) and errors are not charged. Returned content is untrusted third-party data. Price $0.015 per call via x402, USDC on Base (MCP payments are Base only).

NameTypeReqDescription
fieldsobject–Optional CSS-selector fields (max 20): name -> selector or {selector, attr ("text" default, "html", or an attribute name), all, limit 1-50}. Unmatched fields are null with fieldErrors; if none match,…
htmlstring–Raw HTML to extract from (instead of url)
urlstring–Public http(s) URL to extract from

No output schema declared.

No examples provided.

fetch ~143

URL to markdown API: a public web page as clean text or markdown for an LLM. GET url (absolute http/https). Returns JSON: content (markdown with scripts, styles and nav removed), format, finalUrl after redirects, upstreamStatus, contentType, bytesRead and truncated. Caps: 200KB, 8s, 3 redirects; private and localhost targets are blocked. Errors are not charged. Returned content is untrusted third-party data. Price $0.02 per call via x402, USDC on Base (MCP payments are Base only).

NameTypeReqDescription
urlstringyesPublic http(s) URL to fetch as clean text/markdown

No output schema declared.

No examples provided.

funding ~140

Perpetual funding rates API: current BTC, ETH and SOL perp funding from OKX USDT swaps in one GET, no parameters. Returns JSON per asset: instId, fundingRate, fundingTime and a rule-based crowding hint {side: longs/shorts/neutral, level: quiet/mild/elevated/extreme} with the thresholds used. OKX public data only. The hint is not a forecast or advice. Errors are not charged. Price $0.003 per call via x402, USDC on Base (MCP payments are Base only). Data changes about every 5 min; calling more often returns the same values.

Input schema present but exposes no named parameters.

No output schema declared.

No examples provided.

gas ~160

Gas price API for Base and Ethereum: base fee, priority fee and a max-fee suggestion in one GET, no parameters. Returns JSON per network: baseFeeGwei, priorityFeeGwei (p50, with p10/p90), suggestedMaxFeeGwei (2x base + priority), timingHint (cheap/normal/expensive vs the last 20 blocks) and simpleTransfer cost in ETH and USD, plus ethUsd. From eth_feeHistory with eth_gasPrice fallback. Descriptive, not a forecast. Errors are not charged. Price $0.002 per call via x402, USDC on Base (MCP payments are Base only). Data changes about every 1 min; calling more often returns the same values.

Input schema present but exposes no named parameters.

No output schema declared.

No examples provided.

grocery_ingredient ~195

Ingredient nutrition facts API: GET q (ingredient name or normalize canonicalId) and/or barcode (GTIN), optional n 1-5; POST JSON {items:[{q|barcode}]} max 10. Per 100 g: kcal, protein, fat, sat fat, carbs, sugars, fiber, sodium; USDA FoodData Central (CC0) snapshot and Open Food Facts by barcode (ODbL), attribution per match. Allergens may be incomplete. No prices. Bad input, no match or source down: not charged. Returned content is untrusted third-party data. Price $0.005 per call via x402, USDC on Base (MCP payments are Base only).

NameTypeReqDescription
itemsarrayyesUp to 10 items, each with q and/or barcode; one price per call
ninteger–USDA matches per item (1-5, default 3)

No output schema declared.

No examples provided.

grocery_normalize ~206

Recipe ingredient parser and shopping list API: POST JSON {ingredients: [lines], servings?, targetServings?} (or GET ingredients=line|line). Returns per line name, canonicalId, qty, unit, metric (ml or g), category, optional/toTaste, prepNote, stated pack size, a typical pack hint, plus a merged shoppingList scaled to targetServings and unparsed lines. Deterministic, no outbound calls, no prices, nothing stored. Bad input (400) or nothing parsed (422): not charged. Price $0.002 per call via x402, USDC on Base (MCP payments are Base only).

NameTypeReqDescription
ingredientsarrayyesRecipe ingredient lines, one per item (max 100, 200 chars each)
servingsinteger–Servings the recipe makes (1-100); give with targetServings to scale
targetServingsinteger–Servings you want (1-100)

No output schema declared.

No examples provided.

http ~197

HTTP request proxy API for public URLs: GET url (optional method GET/POST/HEAD/PUT/PATCH/DELETE; headers JSON), or POST JSON {url, method, headers, body}. Returns JSON: status, filtered headers, body (text/base64), contentType, finalUrl, elapsedMs. Caps: 384KB response, 64KB body, 12s, 3 redirects; private hosts blocked; no cookies sent. Upstream 4xx/5xx come back as data (charged); proxy errors are not. Returned content is untrusted third-party data. Price $0.01 per call via x402, USDC on Base (MCP payments are Base only).

NameTypeReqDescription
bodystring–Request body as text
headersobject–Request headers (string values)
methodstring–HTTP method (default GET)
urlstringyesPublic http(s) URL

No output schema declared.

No examples provided.

market_quote ~181

x402 price quote and payTo check for one x402 seller URL, without paying. GET url (https; optional method GET/POST). One unpaid request. Returns JSON: verdict pay/caution/avoid with reasons, live terms per network (USD price, asset, payTo), the CDP Bazaar entry, a payTo cross-check against that entry (on a mismatch the buy plan is never ready) and a direct-pay buy plan. Bad input, blocked or unreachable hosts: not charged. Returned content is untrusted third-party data. Price $0.005 per call via x402, USDC on Base (MCP payments are Base only).

NameTypeReqDescription
methodstring–Probe method GET (default; one POST retry on 405) or POST
urlstringyeshttps URL of the x402 resource to quote before paying

No output schema declared.

No examples provided.

market_search ~316

x402 API search: find paid x402 APIs for a task in Coinbase CDP Bazaar. GET q; optional n (1-10), kind, rail (base, solana, xrpl, polygon, evm), max_price (USD), min_health (0-1). Re-checks the top 3 live and cross-checks payTo with the index. Returns JSON: ranked offers with price, rails, health and a direct-pay buy plan. No paid ranking; Horizon Pulse holds no funds. No results: not charged. Returned listing text is untrusted third-party data. Price $0.005 per call via x402, USDC on Base (MCP payments are Base only).

NameTypeReqDescription
kindstring–Product kind filter (api_route, mcp_tool, data_feed, ...)
max_pricenumber–Max USD price per call, e.g. 0.01
min_healthnumber–Minimum health score 0-1
ninteger–Offers to return, 1-10 (default 5); the top 3 are re-checked live
qstringyesWhat the agent needs, in words (<=200 chars)
railstring–Payment rail filter: base | solana | xrpl | evm (any EVM chain except Base) | polygon (eip155:137 only) | an exact CAIP-2 network (e.g. eip155:137, xrpl:0)

No output schema declared.

No examples provided.

money_market_rates ~307

FREE (no x402, no payment). Published NY Fed reference rates as released; market data only, not a forecast, not a recommendation. SOFR, EFFR, OBFR, TGCR and BGCR as published, with each rate's NY Fed source URL, terms notices and a holiday-aware status (fresh, PENDING, STALE, no publish, UNVERIFIED holiday status). Params: rates (comma list), last (1-10) or startDate+endDate (YYYY-MM-DD, <=31 days, >=2018-04-02). Horizon Pulse is not affiliated with the New York Fed. The New York Fed does not sanction, endorse, or recommend any products or services offered by Horizon Pulse. Horizon Pulse is also not affiliated with the Federal Reserve System. Data are passed through unchanged from the NY Fed Markets Data API under the New York Fed Terms of Use and may not be current; the same values are free at markets.newyorkfed.org.

NameTypeReqDescription
endDatestring–YYYY-MM-DD, >= startDate
lastinteger–Last n observations per rate, 1-10 (exclusive with startDate/endDate)
ratesstring–Comma list from SOFR,EFFR,OBFR,TGCR,BGCR (default all five)
startDatestring–YYYY-MM-DD, >= 2018-04-02; needs endDate; span <= 31 days

No output schema declared.

No examples provided.

name_resolve ~192

ENS and Basenames resolver API: name to address (vitalik.eth, jesse.base.eth) or address to primary name, read on-chain. GET name or address. Forward: address, resolver and the registry used. Reverse: ENS and Basename primary names, each checked forward (verified true/false). Off-chain and wildcard (CCIP-Read) names are not followed. found:false is a billed answer; bad input or RPCs down: not charged. Returned names are untrusted third-party data. Price $0.002 per call via x402, USDC on Base (MCP payments are Base only).

NameTypeReqDescription
addressstring–0x address for reverse lookup (ENS and Basename primary names). Give name or address
namestring–ENS name or Basename to resolve (vitalik.eth, jesse.base.eth). Give name or address

No output schema declared.

No examples provided.

pdf ~192

PDF to text API: the text of a public PDF, page by page. GET url (http/https, max 10MB), optional pages (1-50, default 50). Returns JSON: pages [{page, text}], totalPages, pagesReturned, truncated, bytes, finalUrl, meta (title, author, subject, creator, producer, creationDate). pdf.js text layer, no OCR (image-only PDFs: 422). Max 100K chars. Non-PDF, encrypted, oversize or failed downloads are not charged. Returned content is untrusted third-party data. Price $0.02 per call via x402, USDC on Base (MCP payments are Base only).

NameTypeReqDescription
pagesinteger–Max pages to return, 1-50 (default 50)
urlstringyesAbsolute http(s) URL of a public PDF (max 10MB)

No output schema declared.

No examples provided.

portfolio ~165

Wallet balance and portfolio API for one EVM address on Base and Ethereum: ETH, USDC, WETH, WBTC/cbBTC and DAI holdings with USD value. GET address=0x... (40 hex). Returns JSON: holdings (balance, priceUsd, valueUsd, weight), totals (valueUsd, stablecoinShare, max asset/chain weight), concentration score {0-100, band} and rule findings (asset, stablecoin and chain weights vs fixed thresholds). Read-only; not advice. Invalid addresses return 400, not charged. Price $0.04 per call via x402, USDC on Base (MCP payments are Base only).

NameTypeReqDescription
addressstringyesEVM address (0x…) to snapshot on Base + Ethereum

No output schema declared.

No examples provided.

pulse ~156

Crypto price API: BTC, ETH and SOL spot prices in USD in one GET, no parameters. Returns JSON: assets.BTC/ETH/SOL with priceUsd, change24hPct and momentum (bullish/bearish/neutral), plus overall momentum, sentiment (risk-on/risk-off/neutral), direction (up/down/flat), avgChange24hPct and asOf. Prices from Coinbase Exchange with CoinGecko fallback (source field). Labels are fixed rules on 24h change, not advice. Errors are not charged. Price $0.002 per call via x402, USDC on Base (MCP payments are Base only). Data changes about every 1 min; calling more often returns the same values.

Input schema present but exposes no named parameters.

No output schema declared.

No examples provided.

screenshot ~233

Website screenshot API: how a public page renders, as PNG or JPEG. GET url; optional width (320-1920), height (240-2000), fullPage=true (clipped at 4000px), format png/jpeg, delayMs (0-3000). Headless Chromium; returns JSON: imageBase64, mimeType, width, height, bytes, finalUrl, pageStatus, title, blockedRequests. Sub-requests checked; private targets blocked. Over 25s: 504. Errors are not charged. Returned content is untrusted third-party data. Price $0.02 per call via x402, USDC on Base (MCP payments are Base only).

NameTypeReqDescription
formatstring–Image format (default png)
fullPageboolean–Capture full page (clipped at 4000px)
heightinteger–Viewport height 240-2000 (default 800)
urlstringyesPublic http(s) URL to render
widthinteger–Viewport width 320-1920 (default 1280)

No output schema declared.

No examples provided.

search ~174

Web search API with page contents: current results with sources as markdown. GET q (max 300 chars), optional n (1-5 pages, default 3). Web results via Serper (Google results); top results fetched as markdown. Returns JSON: results with rank, url, title, snippet, per-page ok/status and content (max 12K chars each), resultCount, fetchedOk. Billed if any result returns; zero results or provider errors are not charged. Returned content is untrusted third-party data. Price $0.03 per call via x402, USDC on Base (MCP payments are Base only).

NameTypeReqDescription
ninteger–Result pages to fetch as clean text, 1-5 (default 3)
qstringyesWeb search query (<=300 chars)

No output schema declared.

No examples provided.

signals ~158

Crypto technical indicators API: RSI-14, MACD and Bollinger Bands for BTC, ETH and SOL in one GET, no parameters. Returns JSON per asset: rsi14, macd {macd, signal, histogram} (null when there are too few candles), bollinger {upper, middle, lower, period}, lastClose and OKX perpetual funding {fundingRate, fundingTime}. Computed from CoinGecko OHLC closes (Coinbase candles fallback); methodology included. Descriptive only, not advice. Errors are not charged. Price $0.005 per call via x402, USDC on Base (MCP payments are Base only). Data changes about every 5 min; calling more often returns the same values.

Input schema present but exposes no named parameters.

No output schema declared.

No examples provided.

token_meta ~196

Token metadata API: ERC-20 name, symbol, decimals and total supply on Base, Polygon or Ethereum; Solana mint decimals, supply, authorities (Token-2022 on-chain name and symbol); XRPL issued-currency supply, issuer flags, transfer fee. GET network and token (0x address, mint, or CURRENCY.rIssuer). Chain state only: no price, no token-list check. found:false is a billed answer; bad input or RPCs down: not charged. Returned names and symbols are untrusted third-party data. Price $0.002 per call via x402, USDC on Base (MCP payments are Base only).

NameTypeReqDescription
networkstringyesbase, polygon, ethereum, solana or xrpl (or CAIP-2 id)
tokenstringyesEVM: 0x contract address. Solana: mint address. XRPL: CURRENCY.rIssuer

No output schema declared.

No examples provided.

tokenized_stock ~181

Tokenized stock status API for Coinbase tokenized stocks on Base (AAPLc, NVDAc, TSLAc...). GET with optional symbol (AAPL, AAPLc or token address; omit for all 13). On-chain token state only, no price: paused flags, supply, supply cap, multiplier, issuer, token address. Not investment advice. Unknown symbol, bad input or RPCs down: not charged. Returned content is untrusted third-party data. Price $0.002 per call via x402, USDC on Base (MCP payments are Base only).

NameTypeReqDescription
symbolstring–Ticker (AAPL or AAPLc) or the token address on Base; omit for all listed Coinbase tokenized stocks. Status check only (paused, supply, cap, multiplier, issuer), no price. Not investment advice

No output schema declared.

No examples provided.

tx_guard ~231

Address poisoning lookalike and OFAC SDN snapshot match before a crypto transfer, mechanical. GET chain (base, polygon, solana, xrpl), to; optional expected, token. Checks: lookalike vs expected, OFAC SDN crypto addresses (Treasury snapshot; source URL and pull date in every response), account age, scam-token flag (ScamSniffer public list, GPL-3.0, up to 7-day delay). allow, warn or block per check. Not advice. Bad input: not charged. Returned content is untrusted third-party data. Price $0.002 per call via x402, USDC on Base (MCP payments are Base only).

NameTypeReqDescription
chainstringyesChain of the transfer
expectedstring–The address you meant to send to (for the lookalike check)
tostringyesRecipient address you are about to send to
tokenstring–Token contract on Base or Polygon (ScamSniffer public list, GPL-3.0, up to 7-day delay)

No output schema declared.

No examples provided.

tx_status ~210

Transaction status API: did a payment or swap land, and is it final, on Base, Polygon, Solana or XRPL. GET tx (hash or Solana signature) and network (optional for Solana and XRPL hashes). Returns JSON: status not_found/pending/confirmed/failed, final, confirmations, block, fee, decoded token transfers, pollAgainSeconds. Read-only public RPCs. not_found is a charged answer; bad input or RPCs down: not charged. Returned content is untrusted third-party data. Price $0.002 per call via x402, USDC on Base (MCP payments are Base only).

NameTypeReqDescription
networkstring–base, polygon, solana or xrpl; required for 0x hashes. Poll again after pollAgainSeconds until final is true
txstringyesTransaction id: 0x + 64 hex (Base/Polygon), 64 hex (XRPL) or a base58 Solana signature

No output schema declared.

No examples provided.

watch ~171

Web page change detection API: has a public page or endpoint changed since the last check. GET url; optional since (state token from the previous answer). Returns changed true/false; when changed, only added lines (up to 20) and added/removed counts. Stateless, nothing stored. SSRF-guarded like /api/fetch. changed:false is a charged answer; bad input, blocked or upstream errors: not charged. Returned content is untrusted third-party data. Price $0.002 per call via x402, USDC on Base (MCP payments are Base only).

NameTypeReqDescription
sincestring–The state token from your previous watch answer for this url; omit on the first check
urlstringyesPublic http(s) URL of the page or endpoint to check

No output schema declared.

No examples provided.

x402_check ~216

x402 endpoint checker: decodes an x402 endpoint's 402 payment terms without paying. GET url (optional method GET/POST, JSON body for POST). Sends one unpaid request; never pays or signs. Returns JSON: httpStatus, isX402, x402Version, decoded accepts (network, asset, USD amount, payTo, EOA or contract), discovery metadata presence, and pass/warn/fail checks. Any HTTP answer from the target, even 4xx/5xx, is billed; bad input, blocked hosts, connection failures and timeouts are not. Price $0.01 per call via x402, USDC on Base (MCP payments are Base only).

NameTypeReqDescription
bodystring–Optional JSON body (string, <=8KB) for a POST probe; implies POST
methodstring–Probe method: GET (default; retries POST on 405) or POST
urlstringyesPublic http(s) URL of the x402 endpoint to audit

No output schema declared.

No examples provided.

yield ~161

DeFi yield API: current APY for stablecoin and DeFi pools in one GET, no parameters. Returns JSON: up to 25 pools ordered by a fixed filter tier then APY, each with project, chain, symbol, tvlUsd, apy, apyBase, apyReward, apyMean30d, stablecoin, exposure, ilRisk and poolId. Filters: TVL >= $10M, non-outlier APY. Figures passed through from DefiLlama at fetch time, not advice. Errors are not charged. Price $0.02 per call via x402, USDC on Base (MCP payments are Base only). Data changes about every 1 h; calling more often returns the same values.

Input schema present but exposes no named parameters.

No output schema declared.

No examples provided.

Install

How do I install the io.github.horizon-pulse/horizon-pulse MCP server?

io.github.horizon-pulse/horizon-pulse is a hosted endpoint at https://horizonpulse.dev/mcp, so there is nothing to install locally. Ready-made configuration for Claude, Cursor, VS Code, Codex and 5 more is on this page, copied from each client's own documentation.

remote · horizonpulse.dev

# add to Claude Code
claude mcp add --transport http horizon-pulse-horizon-pulse 'https://horizonpulse.dev/mcp'
Common questions

What is the io.github.horizon-pulse/horizon-pulse MCP server?

io.github.horizon-pulse/horizon-pulse is an MCP server listed in the public MCP registry as io.github.horizon-pulse/horizon-pulse. 28 agent tools via x402: crypto data, tx checks, web fetch. MCP pays Base USDC; HTTP adds 3 rails. This page covers its hosted endpoint (https://horizonpulse.dev/mcp).

Is the io.github.horizon-pulse/horizon-pulse MCP server safe to use?

io.github.horizon-pulse/horizon-pulse scores 68 out of 100 on VerifyMCP. That is a record of what we were able to check automatically, not an endorsement. The category breakdown on this page shows every signal behind the number, including the ones we could not confirm.

What tools does the io.github.horizon-pulse/horizon-pulse MCP server expose?

io.github.horizon-pulse/horizon-pulse exposes 28 tools: pulse, signals, yield, gas, funding, and 23 more. Their descriptions and schemas cost roughly 5,476 tokens of context every time the server is loaded.

Does the io.github.horizon-pulse/horizon-pulse MCP server require authentication?

No. We connected to io.github.horizon-pulse/horizon-pulse without credentials and it answered, so anything it exposes is reachable by anyone who knows the address.

Is the io.github.horizon-pulse/horizon-pulse MCP server still maintained?

io.github.horizon-pulse/horizon-pulse is still listed as active in the MCP registry. We last reached this channel on 18 October 2026. Those dates come from our own scans of the registry and the channel itself, not from anything the publisher announced.