io.github.horizon-pulse/horizon-pulse · v0.1.2 · crypto-web3
io.github.horizon-pulse/horizon-pulse is healthy: it completed an MCP handshake in 1807 ms and exposes 24 tools.
23 agent tools via x402: crypto data, tx checks, web fetch. MCP pays Base USDC; HTTP adds 3 rails.
Endpoint: https://horizonpulse.dev/mcp (streamable-http)
Repository · Website · JSON · Add to my inventory
| Users (last 30 days) | 0 |
| Handshake | Healthy |
| Auth needed | None |
| Tool count | 24 |
| Latency | 1807 ms |
| Last checked (UTC) | 2026-10-16T08:15:47.364Z |
| Checked (UTC) | Status | Latency | Error |
|---|---|---|---|
| 2026-10-16T08:15:47.364Z | Healthy | 1807 | |
| 2026-10-15T04:10:41.221Z | Healthy | 3463 |
pulse | Crypto prices API: BTC, ETH, SOL spot price. Use when you need current BTC, ETH and SOL spot prices in USD. Call GET with 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), d |
signals | Crypto indicators API: RSI, MACD, Bollinger. Use when you need indicators for BTC, ETH and SOL rather than just prices. Call GET with no parameters. Returns JSON per asset: rsi14, macd {macd, signal, histogram} (null when there are too few candles), bollinger {upper, middle, lower, period}, lastClos |
yield | DeFi yields and APY (stablecoin and DeFi pools). Use when you need to compare current DeFi pool yields, especially stablecoin or single-asset pools. Call GET with no parameters. Returns JSON: up to 25 pools ordered by a fixed filter tier then APY, each with project, chain, symbol, tvlUsd, apy, apyBa |
gas | Gas price and gas fee estimate (Base, Ethereum). Use before sending a transaction on Base or Ethereum to choose fees and timing. Call GET with no parameters. Returns JSON per network: baseFeeGwei, priorityFeeGwei (p50, with p10/p90), suggestedMaxFeeGwei (2x base + priority), timingHint (cheap/normal |
funding | Perp funding rates (crypto derivatives data). Use when you need current perpetual futures funding rates for BTC, ETH and SOL. Call GET with no parameters. Returns JSON per asset from OKX USDT swaps: instId, fundingRate, fundingTime and a rule-based crowding hint {side: longs/shorts/neutral, level: q |
portfolio | Wallet balance checker. Use when you need the token holdings and USD value of one EVM address. Call GET with required address=0x... (40 hex). Reads Base and Ethereum: ETH, USDC, WETH, WBTC/cbBTC, DAI. Returns JSON: holdings (balance, priceUsd, valueUsd, weight), totals (valueUsd, stablecoinShare, ma |
fetch | URL to markdown scraper. Use when you need to read a public web page as clean text or markdown for an LLM. Call GET with required url (absolute http/https). Returns JSON: content (markdown with scripts, styles and nav removed), format, finalUrl after redirects, upstreamStatus, contentType, bytesRead |
http | HTTP/API proxy for public URLs. GET with required 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 redir |
extract | Web scraping to JSON fields. Use when you need specific data from a page. GET with required 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 w |
x402_check | x402 endpoint checker. Use before paying an unknown x402 endpoint, or to debug your own. GET with required url (optional method GET/POST, JSON body for POST). Sends one unpaid request and never pays. Returns JSON: httpStatus, isX402, x402Version, decoded accepts (network, asset, USD amount, payTo, E |
bazaar_check | Bazaar listing checker (x402 developer tool). Use to find out whether an x402 seller is listed in Coinbase CDP Bazaar and, if not, why. GET with required 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: |
market_search | Find x402 APIs: agent marketplace search. Use to find a paid x402 API for a task. GET with required q; optional n (1-10), kind, rail (base/solana), max_price (USD), min_health (0-1). Searches CDP Bazaar, re-checks the top 3 live and cross-checks payTo with the index. Returns JSON: ranked offers with |
discourse_split | Online discourse sample, NOT a poll. Use to see how public Hacker News and Bluesky posts split on a question. GET with required 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 |
tx_status | Transaction status API: did a payment or swap land, and is it final. GET with required tx (hash or Solana signature) and network (base, polygon, solana, xrpl; optional for Solana and XRPL hashes). Returns JSON: status not_found/pending/confirmed/failed, final, confirmations, block, fee, decoded toke |
tokenized_stock | Tokenized stock status check for Base: Coinbase tokenized stocks (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. Unknow |
watch | Page change watch API: has a public web page or endpoint changed since your last check. GET with required url; optional since (state token from your previous answer). Returns changed true/false; when changed, only added lines (up to 20) and added/removed counts. Stateless, nothing stored. SSRF-guard |
balance | x402 payer balance check: can this wallet pay right now. GET with at least one of evm (Base+Polygon), solana, xrpl. Per rail: USDC or RLUSD balance, gas/fees (XRPL reserve, fee, RLUSD trust line), canPay yes/no, calls left at our live prices. No risk score, no USD valuation. Public RPCs, read-only, |
tx_guard | Pre-transfer recipient check, 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, u |
grocery_normalize | Recipe to shopping list normalizer: 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 sc |
market_quote | x402 price quote. Use before paying an x402 seller. GET with required url (https; optional method GET/POST). One unpaid request, never pays. Returns JSON: verdict pay/caution/avoid with reasons, live terms per network (USD price, asset, payTo; Base/Solana), the CDP Bazaar entry, a payTo cross-check |
screenshot | Website screenshot API, to see how a public page renders. GET with required 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, tit |
search | Web search API with page contents, for current info with sources. GET with required q (max 300 chars), optional n (1-5 pages, default 3). Web results via Serper; top results fetched as markdown. Returns JSON: results with rank, url, title, snippet, per-page ok/status and content (max 12K chars each) |
pdf | PDF to text, for the text of a public PDF. GET with required 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 |
money_market_rates | 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 |