Next free-source huntWe check for new free data every weekday.
FinancialMCP serverFirst audited Nov 13, 2026

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.The vendor's description, from its MCP Registry listing.

Passed public checksAudited Nov 13, 2026

Every public check ran and passed. Public audit: we connect as an AI client would, list the tools and check what they say. We do not run them. How we audit

Does it work?
YesConnected in 221 ms.
Sign-up?
None neededIt answered without any account or key.
Can it change things?
YesSome tools say they can change things. Your AI client should ask you first.
Endpointhttps://horizonpulse.dev/mcp

Source code Website Streamable HTTP · protocol 2025-11-25 · server version 1.0.0

What we checked, the evidence, and the tools it offers.

What we checked

Security

  • Passed: Connections are encrypted (HTTPS).

  • Passed: No hidden instructions found in tool text.

Safety labels

  • Note: 2 tools are labelled as able to change things.

    Expected for tools that send, write or buy. Your AI client should ask before calling them.

    • http
    • submit_feedback
  • Passed: Every tool says whether it only reads or can change things.

Tools

  • Passed: 58 tools listed.

  • Passed: Every tool describes its inputs with a valid schema.

Protocol

  • Passed: The MCP handshake works (Streamable HTTP).

  • Passed: Protocol version 2025-11-25 (latest).

  • Passed: Unknown requests are refused.

Connection

  • Passed: The server responds.

Tools (58)

As the server describes them. The labels are the server's own: it says whether each tool only reads or can change things.

  • pulseCrypto market data: a current USD price snapshot for BTC, ETH and SOL, or one coin via symbol= (bad symbol: 400), for quick market context. JSON per asset: priceUsd, change24hPct, momentum; plus over…Read-only
  • 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), with no candle fetching needed. JSON per…Read-only
  • yieldDeFi 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, ap…Read-only
  • gasGas 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), suggestedMa…Read-only
  • fundingCrypto market data: current OKX USDT-swap perp funding rates for BTC, ETH and SOL, or one coin via symbol= (bad symbol: 400), showing whether longs or shorts are paying. JSON per asset: instId, fundi…Read-only
  • portfolioWallet 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, pr…Read-only
  • fetchURL 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 aft…Read-only
  • httpHTTP 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…Can change things
  • 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, t…Read-only
  • 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…Read-only
  • x402_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…Read-only
  • bazaar_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, th…Read-only
  • market_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…Read-only
  • discourse_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 a…Read-only
  • tx_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 JSO…Read-only
  • tokenized_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 pric…Read-only
  • watchWeb 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, on…Read-only
  • balanceWallet balance API for x402 payers: USDC on Base, Polygon and Solana, RLUSD on XRPL. GET at least one of evm (Base+Polygon), solana, xrpl. Per rail: balance, gas/fees (XRPL reserve, fee, RLUSD trust…Read-only
  • tx_guardAddress poisoning and OFAC SDN snapshot match before a crypto transfer, mechanical. GET chain (base/polygon/solana/xrpl), to; opt. expected, token. Checks: lookalike, OFAC SDN snapshot (dated), accou…Read-only
  • grocery_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…Read-only
  • grocery_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,…Read-only
  • chain_headBlock height API: current block number, slot or ledger index for Base, Polygon, Ethereum, Solana and XRPL. Optional network (comma list; default all five). Per network: chainId, height, headTime, hea…Read-only
  • token_metaToken metadata API: ERC-20 name, symbol, decimals and total supply on Base, Polygon or Ethereum; Solana mint decimals, supply, authorities (Token-2022 name and symbol); XRPL issued-currency supply, i…Read-only
  • name_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…Read-only
  • batchBatch 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; pa…Read-only
  • market_quotex402 price quote and payTo check for one seller URL, without paying. GET url (https; optional method GET/POST). One unpaid request. Returns JSON: verdict pay/caution/avoid with reasons, live terms pe…Read-only
  • searchWeb 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…Read-only
  • pdfPDF 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, b…Read-only
  • sec_company_factsTo check what a company reported to the SEC: key XBRL facts (revenue, net income, assets, liabilities, equity, shares outstanding, operating cash flow, EPS), latest annual and quarterly, each with pe…Read-only
  • pii_scanBest-effort scan of supplied text for common patterns: email, phone, US SSN, Luhn-checked card numbers, mod-97 IBANs, IP addresses, private-key shapes, BIP-39 seed phrases and API-key shapes. POST JS…Read-only
  • money_market_ratesNo charge (no x402, no payment); reference feed, not a paid service. Published NY Fed reference rates as released; market data only, not a forecast, not a recommendation. SOFR, EFFR, OBFR, TGCR and B…Read-only
  • submit_feedbackNo payment required. 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…Can change things
  • funding_reportsFunding Pulse Weekly index: id, title, date and abstract of each available report. No rate values. Horizon Pulse is not affiliated with the New York Fed. The New York Fed does not sanction, endorse,…Read-only
  • funding_reportReturns the payment instructions (the unpaid HTTP 402) for one $0.25 report; this tool never pays. Pay the 402 over HTTP with x402 v2 (USDC on Base) at GET https://horizonpulse.dev/api/funding-report…Read-only
  • domain_precheck_quoteReturns the payment terms for https://horizonpulse.dev/api/domain/precheck (single $0.02, bulk $0.25; USDC on Base or Polygon); this tool never runs the check or pays. Pay the 402 over HTTP with x402…Read-only
  • sec_filings_quoteReturns the payment terms for https://horizonpulse.dev/api/sec/filings (base $0.02; USDC on Base or Polygon); this tool never runs the check or pays. Pay the 402 over HTTP with x402 v2: GET ?ticker=A…Read-only
  • treasury_debt_quoteReturns the payment terms for https://horizonpulse.dev/api/treasury/debt (base $0.01; USDC on Base or Polygon); this tool never runs the check or pays. Pay the 402 over HTTP with x402 v2: GET with no…Read-only
  • sec_insider_quoteReturns the payment terms for https://horizonpulse.dev/api/sec/insider (base $0.02; USDC on Base or Polygon); this tool never runs the check or pays. Pay the 402 over HTTP with x402 v2: GET ?ticker=A…Read-only
  • sec_13f_quoteReturns the payment terms for https://horizonpulse.dev/api/sec/13f (base $0.02; USDC on Base or Polygon); this tool never runs the check or pays. Pay the 402 over HTTP with x402 v2: GET ?cik=1067983…Read-only
  • sec_10k_risk_quoteReturns the payment terms for https://horizonpulse.dev/api/sec/10k-risk (base $0.05; USDC on Base or Polygon); this tool never runs the check or pays. Pay the 402 over HTTP with x402 v2: GET ?cik=320…Read-only
  • weather_alerts_quoteReturns the payment terms for https://horizonpulse.dev/api/weather/alerts (base $0.02; USDC on Base or Polygon); this tool never runs the check or pays. Pay the 402 over HTTP with x402 v2: GET ?lat=3…Read-only
  • agent_readiness_quoteReturns the payment terms for https://horizonpulse.dev/api/site/agent-readiness (base $0.05; USDC on Base only); this tool never runs the check or pays. Pay the 402 over HTTP with x402 v2: GET ?url=h…Read-only
  • domain_profile_quoteReturns the payment terms for https://horizonpulse.dev/api/domain/profile (base $0.05; USDC on Base only); this tool never runs the check or pays. Pay the 402 over HTTP with x402 v2: GET ?domain=verc…Read-only
  • x402_seller_check_quoteReturns the payment terms for https://horizonpulse.dev/api/x402-check/seller (base $0.1; USDC on Base only); this tool never runs the check or pays. Pay the 402 over HTTP with x402 v2: GET ?url=https…Read-only
  • search_evidence_quoteReturns the payment terms for https://horizonpulse.dev/api/search/evidence (evidence $0.1; USDC on Base only); this tool never runs the check or pays. Pay the 402 over HTTP with x402 v2: GET ?q=x402+…Read-only
  • site_audit_quoteReturns the payment terms for https://horizonpulse.dev/api/site/audit (standard $0.02, premium $0.12; USDC on Base only); this tool never runs the check or pays. Pay the 402 over HTTP with x402 v2: G…Read-only
  • weather_forecast_quoteReturns the payment terms for https://horizonpulse.dev/api/weather/forecast (base $0.005; USDC on Base only); this tool never runs the check or pays. Pay the 402 over HTTP with x402 v2: GET ?lat=38.8…Read-only
  • cpi_series_quoteReturns the payment terms for https://horizonpulse.dev/api/bls/cpi (base $0.01; USDC on Base or Polygon); this tool never runs the check or pays. Pay the 402 over HTTP with x402 v2: GET ?series=CUUR0…Read-only
  • jobs_quoteReturns the payment terms for https://horizonpulse.dev/api/bls/jobs (base $0.01; USDC on Base or Polygon); this tool never runs the check or pays. Pay the 402 over HTTP with x402 v2: GET with no para…Read-only
  • treasury_yield_curve_quoteReturns the payment terms for https://horizonpulse.dev/api/treasury/yield-curve (base $0.01; USDC on Base or Polygon); this tool never runs the check or pays. Pay the 402 over HTTP with x402 v2: GET…Read-only
  • ecb_fx_quoteReturns the payment terms for https://horizonpulse.dev/api/fx/ecb (base $0.005; USDC on Base or Polygon); this tool never runs the check or pays. Pay the 402 over HTTP with x402 v2: GET with no param…Read-only
  • treasury_auctions_quoteReturns the payment terms for https://horizonpulse.dev/api/treasury/auctions (base $0.003; USDC on Base or Polygon); this tool never runs the check or pays. Pay the 402 over HTTP with x402 v2: GET ?t…Read-only
  • domain_whois_quoteReturns the payment terms for https://horizonpulse.dev/api/domain/whois (base $0.005; USDC on Base or Polygon); this tool never runs the check or pays. Pay the 402 over HTTP with x402 v2: GET ?domain…Read-only
  • domain_ssl_quoteReturns the payment terms for https://horizonpulse.dev/api/domain/ssl (base $0.005; USDC on Base or Polygon); this tool never runs the check or pays. Pay the 402 over HTTP with x402 v2: GET ?domain=e…Read-only
  • domain_trust_quoteReturns the payment terms for https://horizonpulse.dev/api/domain/trust (base $0.25; USDC on Base or Polygon); this tool never runs the check or pays. Pay the 402 over HTTP with x402 v2: GET ?domain=…Read-only
  • email_check_quoteReturns the payment terms for https://horizonpulse.dev/api/email/check (base $0.003; USDC on Base or Polygon); this tool never runs the check or pays. Pay the 402 over HTTP with x402 v2: GET ?email=n…Read-only
  • pros_verify_quoteReturns the payment terms for https://horizonpulse.dev/api/pros/verify (base $0.05; USDC on Base or Polygon); this tool never runs the check or pays. Pay the 402 over HTTP with x402 v2: GET ?license=…Read-only
  • verified_brief_quoteReturns the payment instructions (the unpaid HTTP 402) for the $0.25 verified brief; this tool never runs the brief or pays. To get the brief, pay the 402 over HTTP with x402 v2 (USDC or EURC on Base…Read-only

Audit history

  1. Nov 13Passed

What we sent

Every request in this audit, with the answer and how long it took. We never send credentials and never call a tool.

RequestAnswerTime
initializeHTTP 200221 ms
initializedHTTP 20295 ms
tools/listHTTP 200173 ms
unknown-methodHTTP 20087 ms

Run this server, or disagree with the result?

Fix the issue and it shows in the next weekly audit, or email us to ask for a re-audit or to dispute a finding. Read how we audit for what each check means.