All servers · Crypto & blockchain · Agent payments (x402)
io.github.horizon-pulse/horizon-pulse
io.github.horizon-pulse/horizon-pulse · v0.1.5
New (7 days)Has write/delete toolsTools changed (7 days)
Measured by MCP Station
| Last check | Reachable |
|---|---|
| Checked at | — |
| Check success 7 / 30 days | — |
| First-try success 30 days | — |
| Median response | — |
| Lookups 30 days | — |
| Authentication | No auth |
| MCP version | 2025-06-18 |
| Rank score | — |
| Declared risk | Has destructive tools (destructiveHint) |
| Capabilities declared | tools |
| Tool definitions | 32 tools · with description 100% · input schema is an object 100% · read/destructive hints 91% |
Description written by the publisher, not verified
28 agent tools via x402: crypto data, tx checks, web fetch. MCP pays Base USDC; HTTP adds 3 rails.
Connect
streamable-http · https://horizonpulse.dev/mcp
claude mcp add --transport http horizon-pulse https://horizonpulse.dev/mcp{
"mcpServers": {
"horizon-pulse": {
"url": "https://horizonpulse.dev/mcp"
}
}
}Tools as reported by the server
pulseCrypto market data: a current USD price snapshot for BTC, ETH and SOL, or one coin via symbol= (bad symbol: 400, no charge), for quick market context. JSON per asset: priceUsd, change24hPct, momentum; plus overall momentum, sentiment, direction, avgChange24hPct, asOf. Prices from Coinbase Exchange,signalsCrypto market data: precomputed RSI-14, MACD and Bollinger Bands plus latest OKX perp funding for BTC, ETH and SOL, or one coin via symbol= (bad symbol: 400, no charge), with no candle fetching needed. JSON per asset: rsi14, macd {macd, signal, histogram} (null if too few candles), bollinger, lastClyieldDeFi 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, nongasGas 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 simpleTrfundingCrypto market data: current OKX USDT-swap perp funding rates for BTC, ETH and SOL, or one coin via symbol= (bad symbol: 400, no charge), showing whether longs or shorts are paying. JSON per asset: instId, fundingRate, fundingTime and a rule-based crowding hint {side: longs/shorts/neutral, level: quiportfolioWallet 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), concentrationfetchURL 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; prihttpwrite/deleteHTTP 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;extractWeb 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:x402_checkx402 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 contracx402_check_deepx402 endpoint deep check, never pays or signs: the full /api/x402-check report plus live checks. GET url (optional method, body). Adds TLS, security headers, CORS, payTo vs the payee's own published addresses (/.well-known/x402, openapi.json, llms.txt), lookalike payTo detection, and drift between tbazaar_checkx402 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 anmarket_searchx402 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 andiscourse_splitHacker 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 publictx_statusTransaction 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 transfetokenized_stockTokenized stock status API for Coinbase tokenized stocks on Base (AAPLc, NVDAc, TSLAc...). GET with optional symbol (AAPL, AAPLc or token address; omit for all 12). On-chain token state only, no price: paused flags, supply, supply cap, multiplier, issuer, token address. Not investment advice. UnknowwatchWeb 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 /apibalanceWallet 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 (tx_guardAddress poisoning 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 snapshot (dated), account age, ScamSniffer token list (GPL-3.0). allow, warn or block per check. allow megrocery_normalizeRecipe 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 shogrocery_ingredientIngredient 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 (Ochain_headBlock 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, XRtoken_metaToken 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). Chname_resolveENS 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 wildcardbatchBatch chain checks API: up to 10 checks for one payment. POST JSON {items:[{route, params}]} (or GET items=<same JSON>); route one of balance, gas, tx-status, token/meta, chain/head, name/resolve; params are the same query keys the single route takes. Returns JSON: results [{index, route, status, okmarket_quotex402 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 entrscreenshotWebsite 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, bsearchWeb 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 1pdfPDF 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, nomoney_market_ratesFREE (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, UNVERIFIEDsubmit_feedbackFREE (no payment). Tell Horizon Pulse about a missing coin, data field or route. Fields: type (coin, data, route or other), text (1-500 characters, plain text; links are not followed and are stored masked), optional symbol and route. Stored for human review only, for up to 90 days; nothing ships autverified_brief_quoteReturns the payment instructions (the unpaid HTTP 402) for the $1 verified brief; this tool never runs the brief or pays. To get the brief, pay the 402 over HTTP with x402 v2 (Base USDC only) at GET https://horizonpulse.dev/api/research/report/brief?q=... Verified brief, three question types only: B
Tool changes
- 2026-10-24: pulse, signals, yield, gas, funding, portfolio, fetch, http, extract, x402_check, x402_check_deep, bazaar_check
- 2026-10-22: pulse, signals, yield, gas, funding, portfolio, fetch, http, extract, x402_check, x402_check_deep, bazaar_check
- 2026-10-21: pulse, signals, yield, gas, funding, portfolio, fetch, http, extract, x402_check, x402_check_deep, bazaar_check
- 2026-10-20: pulse, signals, yield, gas, funding, portfolio, fetch, http, extract, x402_check, x402_check_deep, bazaar_check
- 2026-10-17: pulse, signals, yield, gas, funding, portfolio, fetch, http, extract, x402_check, bazaar_check, market_search
- 2026-10-16: pulse, signals, yield, gas, funding, portfolio, fetch, http, extract, x402_check, bazaar_check, market_search
Repository · Website · JSON · Text for agents · Registry updated 2026-10-17