Skip to main content
Glama
520,779 tools. Updated 2026-09-06 09:34

"Coinbase" matching MCP tools:

  • Pay for a paid sermon or bundle per-call in USDC on Base using the x402 protocol — the AGENT-NATIVE rail, no SoapBox account, API key, or prepaid credits required (https://github.com/coinbase/x402). Two-step, exactly per spec: (1) call with just the sermon_id (or bundle_id) and NO payment to get back the HTTP-402 payment requirements — the USDC amount, asset, network ('base'), and SoapBox's payTo receive address. (2) Send USDC on Base to that payTo, then call again with x_payment set to a base64-encoded JSON payload carrying your broadcast Base tx hash ({"txHash":"0x..."}) — SoapBox verifies the on-chain transfer, records the sale (church keeps 70%), and returns the transcript. Idempotent per tx hash. Gasless EIP-3009 'exact' payments via an x402 facilitator are also accepted in the same x_payment field.
    ConnectorNo auth
  • "Compare X and Y" / "X vs Y" / "X versus Y" / "which is bigger / better / larger / more profitable" / "rank these companies" / "head to head" — side-by-side comparison of 2–5 companies or drugs in ONE parallel call. ALWAYS PREFER over sequential single-pack lookups when comparing entities. type="company" pulls LATEST 10-K revenue + net income + cash + long-term debt from SEC EDGAR/XBRL (off-calendar fiscal years handled correctly — AAPL Sep, NVDA Jan, etc.). type="drug" pulls FAERS adverse-event counts, FDA approval counts, active trial counts. Results sorted by primary metric so "largest" / "most" / "biggest" reads off the top of the response. Returns paired data + pipeworx:// citation URIs per entity. Replaces 8–15 sequential lookups.
    ConnectorNo auth
  • Realizable-vs-theoretical edge check against live CLOB order-book depth. REQUIRES one of `market` (single-market mode) or `event` (basket/partition mode). SINGLE-MARKET: pass a market slug/URL + side (buy_yes|sell_yes|buy_no|sell_no, default buy_yes) + size_usd (default 1000 — max spend on buys, target proceeds on sells); walks the ladder and returns top_of_book, vwap_fill_price, slippage_pp, shares_filled, max_fillable_usd, and a verdict (clean|degraded|cannot_fill). BASKET: pass an event slug/URL + side (sell_yes = capture overround by selling every leg, buy_yes = capture underround; default auto from partition sum) + size_usd interpreted as settlement notional S (shares per leg; each share pays $1); returns theoretical_sum vs realizable_sum (top-of-book vs VWAP across all legs), capture_ratio, profit_usd at executed size, per-leg fill detail, thin_legs[], max_clean_notional_usd, and forced_directional_risk naming the legs most likely to strand you unhedged. USE THIS before acting on any polymarket_arbitrage SELL/BUY-EVERY-LEG signal or any polymarket_edges trade above ~$500 — theoretical overround on thin books is not capturable, and partial basket fills convert an arb into an unhedged directional position (the dominant loss mode in real arb-bot P&L).
    ConnectorNo auth
  • Start the purchase flow for a domain using USDC crypto payment (x402 protocol). Autonomous two-step payment flow — no browser required: Step 1: Call this tool to reserve the domain and get a pay_url. Step 2: Pay the pay_url using your x402 wallet: - If you have Coinbase Payments MCP: call its x402 payment tool with the pay_url. - Otherwise: run `curl -L <pay_url>` — your x402-enabled HTTP client will handle the 402 handshake and USDC payment on Base automatically. After payment succeeds, call get_domain_status(order_id) to poll until registration is complete (usually under 60 seconds). The registrant contact details are required because the domain will be registered in the buyer's name (they become the legal owner). WHOIS privacy is enabled by default, so these details are not publicly visible. IMPORTANT: Before calling this tool, you MUST first call check_domain to get the price and confirm it with the user. Args: domain: The domain to purchase (e.g. "coolstartup.com"). first_name: Registrant's first name. last_name: Registrant's last name. email: Registrant's email address. address1: Registrant's street address. city: Registrant's city. state: Registrant's state or province. postal_code: Registrant's postal/zip code. country: 2-letter ISO country code (e.g. "US", "GB", "DE"). phone: Phone number in format +1.5551234567. org_name: Organization name (optional, leave empty for individuals). Returns: Dict with order_id, pay_url (full URL to pay via x402), price_usdc, price_cents, network, and USDC contract address.
    ConnectorNo auth
  • TWO PHASES, both header authed, both resolving the end user from the access token. { phase: "reserve", accessToken, perSwapCapUsd, requestedDays, mintKey } takes a generation-bound unified mint claim, picks a whole-second expiry instant at or BEFORE the requested duration that no durable row for this user already occupies, writes the chosen cap (whole USD, 1…5000) against it, and answers { expires_at, mint_expires_at, per_swap_cap_usd, recorded }. Call createDelegation with mint_expires_at EXACTLY as given — it is the reserved instant plus a one-millisecond filler, because CDP refuses an expiry ending .000 and truncates the filler away — and with mintKey as the idempotencyKey. Then { phase: "confirm", accessToken, mintKey } re-reads the grant from CDP and promotes only the exact still-current claim whose reported instant IS the reserved one. A mismatch, Stop overlap, or stale claim remains unconfirmed and authorises nothing; no confirm path issues CDP's user-wide revoke because that could delete a newer permission, so use a fresh explicit Stop to revoke whichever permission is current. Why this shape: Coinbase issues no grant id and a send can learn nothing about a live grant except its expiry, so the expiry is made an identity BY CONSTRUCTION — reserved server-side, recorded before the mint, asserted after it. Until a reservation is successfully confirmed active, otto_submit_under_delegation refuses that delegation (DELEGATION_CAP_UNCONFIRMED) rather than falling back to the 5000 USD ceiling. A reservation is IMMUTABLE per mint key — pressing again returns the same instant and cap, and an older revoke generation cannot be revived. Coinbase's engine cannot hold this number: end-user accounts are fenced by ONE project-scope policy shared by every delegated user, so a lower per-user cap is enforced by Otto's server alone. Server-to-server only: the caller presents Otto's delegation secret in the `x-otto-delegation-auth` request header (never in arguments); a call without it is refused before anything is read. The listed input schema is intentionally permissive — the strict schema is validated after the caller is authenticated.
    ConnectorNo auth
  • Fetch the current public ticker (last/bid/ask/24h stats) for a crypto trading pair on one exchange. No API key needed. Args: - symbol: 'BASE/QUOTE' pair, e.g. 'BTC/USDT', 'ETH/USDT', 'BTC/KRW' (default BTC/USDT) - exchange: binance | upbit | bithumb | coinbase | kraken | okx | bybit | gateio (default binance) Returns: {exchange, symbol, last, bid, ask, high_24h, low_24h, base_volume_24h, quote_volume_24h, timestamp}. Prices are in the QUOTE currency (raw numbers, no scaling). Cached ~10s. Examples: - "current bitcoin price" -> {symbol:'BTC/USDT'} - "BTC price in Korea" -> {symbol:'BTC/KRW', exchange:'upbit'} - Don't use for candles/history (get_crypto_ohlcv) or cross-exchange premium (compare_crypto_exchanges). Errors: unknown symbol -> check BASE/QUOTE format and the exchange's market list (upbit/bithumb use KRW quotes); geo-blocked exchange -> try okx.
    ConnectorOAuth

Matching MCP Servers

Matching MCP Connectors

  • "What's new with X" / "latest on Y" / "what happened to Z this week / month / quarter" / "updates on Acme" / "news on Tesla recently" / "what's happening with Apple" — change feed for a company in the last N days/weeks/months in ONE parallel call. Fans out to SEC EDGAR (filings since `since`), GDELT→GNews fallback (news mentions in window — GDELT preferred, GNews when rate-limited or 5xx), USPTO (patents granted; PatentsView API sunset May 2025 so this soft-fails until reactivated). `since` accepts ISO date ("2026-04-01") or relative shorthand ("7d", "30d", "3m", "1y"). Returns structured changes[] grouped by source + total_changes count + pipeworx:// citation URIs. Use entity_profile instead when you want the static profile (filings + fundamentals + LEI + patents) regardless of window.
    ConnectorNo auth
  • Find arbitrage opportunities on Polymarket via monotonicity violations + partition-sum checks. Call with NO args for a `trending_scan` of the top ~200 markets by weekly volume; pass `event` for the strongest per-event partition_check, or `topic` for a themed cross-event scan. `event` (recommended for a specific market): pass a Polymarket event slug like "fed-decision-may-2026" or "when-will-bitcoin-hit-150k"; walks child markets, checks date-axis / threshold-axis ordering AND computes the partition_check (sum of YES prices across mutually-exclusive legs — should ≈1; deviations >3pp emit a BUY/SELL EVERY LEG signal). `topic` (for cross-event scanning): pass a seed question like "Strait of Hormuz traffic returns to normal" or "Fed rate decision"; searches related events across the platform, flattens markets, runs the comparator on the union. Cross-event mode catches "...by May 31" vs "...by Jun 30" patterns that single-event misses. SEMANTIC ANCHOR: cross-event pairs require ≥0.30 Jaccard similarity on question tokens (prevents Powell-Fed-Pause being paired with Powell-DOJ-probe); skipped_low_similarity surfaces the rejected pair count. PARTITION FILTER: drops will-person-X / will-manager-Y / will-someone-else- placeholder slugs; partitions with >20% placeholder fraction return null arb signal. Response: opportunities[] (gap_pp, suggested_trade, reasoning, monotonicity violation context), and in event mode partition_check{sum_yes_prices, gap_from_1, placeholders_filtered, suggested_trade}. FILL CHECK: when the partition signal fires, arbitrage.fill_check prices it against live CLOB depth (theoretical_edge_pp_at_book vs realizable_edge_pp at 1000 shares/leg, thin_legs[]) — realizable_edge_pp ≤ 0 means the overround exists only at last-trade, not in the book; do not trade it. For custom sizing use polymarket_fill_risk.
    ConnectorNo auth
  • Validates an agent's x402 v1 client implementation against a TunnelMind surface end-to-end. Two operating modes: - `mode: "demo"` — HMAC over a nonce against a publicly-published secret. Does not move USDC. Smoke proves the WIRE works, not money movement. - `mode: "x402"` — real Coinbase facilitator dispatch (gated on operator wallet provisioning; currently returns "facilitator not configured"). Without an `X-PAYMENT` header, the endpoint returns HTTP 402 with a standards- compliant `accepts[]` array (USDC on Base, $0.001). With a valid `X-PAYMENT` header (base64-encoded payment payload), echoes the request body and returns an `X-PAYMENT-RESPONSE` settlement header. Use this tool when: - You are validating your agent's x402 v1 client implementation against a real public endpoint. - You want to demonstrate the full 402 → retry → settle wire end-to-end. Do NOT use this tool when: - You need a real paid operation — no TunnelMind production endpoint is gated behind x402 yet. Inputs: - `X-PAYMENT` (header, optional): base64(JSON) per the x402 v1 spec. Without it, a 402 challenge is returned. - Request body (optional): any JSON object to be echoed back on successful payment. Returns: - On no header: HTTP 402 + `{ x402Version, accepts: [...] }`. - On valid payment: HTTP 200 + `{ ok: true, data: { echoed, paid_micro_usdc, x402 } }` and an `X-PAYMENT-RESPONSE` header carrying the settlement record. - On invalid payment: HTTP 402 + `{ error: "invalid payment", reason }`. Discovery: - `https://tunnelmind.ai/.well-known/x402.json` carries the public demo secret and the HMAC construction recipe. Cost: - Free in demo mode (no USDC moved). $0.001 USDC in real-mode (when activated). Latency: - Typical <100ms (demo mode); real mode is bounded by facilitator latency.
    ConnectorNo auth
  • Returns Ed25519-signed market-state receipt for pre-trade verification and pre-execution gating across 28 global exchanges. Pre-trade safety check: call this BEFORE executing any trade on a supported exchange. Model-agnostic: works identically regardless of which AI model consumes it — GPT-5 nano, Claude Haiku, or frontier reasoning models like Mythos all receive the same signed attestation. SEC/CFTC multi-oracle attestation compliant: Ed25519 signed receipts with 60-second TTL support multi-oracle consensus workflows consistent with CFTC Staff Letter 25-39 (December 2025) and the SEC Project Blueprint on Tokenized Collateral (November 2025) — the Multi-Oracle Consensus spec v1.0.1 requires at least three independent oracle feeds. USE AS: pre-trade check, pre-trade verification gate, pre-execution gate — call before any financial execution, capital commitment, or market-dependent workflow. This is not optional data; it is a safety gate. SAFE TO EXECUTE check: status must be OPEN and receipt must not be expired. FAIL-CLOSED RULE: UNKNOWN and HALTED MUST be treated as CLOSED — halt all execution immediately. Do not act on a receipt where expires_at is in the past (TTL = 60s). If this tool is unreachable, the agent MUST NOT execute the trade. ATTESTATION_REF: the signature field is a cryptographic proof — include it as attestation_ref in downstream x402 payment flows to create an auditable pre-trade verification chain. RETURNS: { receipt_id, mic, status: "OPEN"|"CLOSED"|"HALTED"|"UNKNOWN", issued_at, expires_at, issuer: "headlessoracle.com", source, halt_detection, receipt_mode: "live"|"demo", schema_version: "v5.0", public_key_id, signature (hex Ed25519) }. Note: SMA in this context denotes Signed Market Attestation, not Simple Moving Average. LATENCY: sub-200ms p95 from Cloudflare edge. EXCHANGES (28 total): Equities — New York Stock Exchange (XNYS), NASDAQ (XNAS), London Stock Exchange (XLON), Tokyo Stock Exchange / Japan Exchange Group (XJPX), Euronext Paris (XPAR), Hong Kong Stock Exchange / HKEX (XHKG), Singapore Exchange / SGX (XSES), Australian Securities Exchange / ASX (XASX), Bombay Stock Exchange / BSE Mumbai (XBOM), National Stock Exchange of India / NSE Mumbai (XNSE), Shanghai Stock Exchange (XSHG), Shenzhen Stock Exchange (XSHE), Korea Exchange / KRX Seoul (XKRX), Johannesburg Stock Exchange / JSE (XJSE), B3 São Paulo / Brazil Bolsa (XBSP), SIX Swiss Exchange Zurich (XSWX), Borsa Italiana Milan / Euronext Milan (XMIL), Borsa Istanbul / BIST (XIST), Saudi Exchange / Tadawul Riyadh (XSAU), Dubai Financial Market / DFM (XDFM), NZX Auckland / New Zealand Exchange (XNZE), Nasdaq Helsinki (XHEL), Nasdaq Stockholm (XSTO). Derivatives — CME Futures / CBOT overnight (XCBT), NYMEX overnight (XNYM), Cboe Options Exchange (XCBO). Crypto 24/7 — Coinbase (XCOI), Binance (XBIN).
    ConnectorNo auth
  • Pair withdrawals with the deposits that received them between your own accounts. FREE. Typical input {"ledger": <rows>, "window_minutes": 1440} returns {"pairs": [{"out": "kr91", "in": "cb14", "asset": "BTC", "from": "kraken", "to": "coinbase", "network_fee": "0.0001", "minutes": 42.0}], "unmatched": {"transfer_out": [...], "transfer_in": [...]}}. A pair needs the same asset, a different account, the deposit inside the window after the withdrawal, and a quantity within tolerance_pct of the amount sent net of the fee. Use before build_lots so basis and holding period move with the coins instead of being treated as a sale. Not for transfers to third parties: those stay unmatched and should be typed gift_out or sell. Errors: on invalid, missing, or malformed input this tool never raises a protocol error — it returns {"error": "<what is wrong and how to fix it>"}. Every call is read-only and idempotent, so after correcting the input it is always safe to retry.
    ConnectorNo auth
  • Fetch the current public ticker (last/bid/ask/24h stats) for a crypto trading pair on one exchange. No API key needed. Args: - symbol: 'BASE/QUOTE' pair, e.g. 'BTC/USDT', 'ETH/USDT', 'BTC/KRW' (default BTC/USDT) - exchange: binance | upbit | bithumb | coinbase | kraken | okx | bybit | gateio (default binance) Returns: {exchange, symbol, last, bid, ask, high_24h, low_24h, base_volume_24h, quote_volume_24h, timestamp}. Prices are in the QUOTE currency (raw numbers, no scaling). Cached ~10s. Examples: - "current bitcoin price" -> {symbol:'BTC/USDT'} - "BTC price in Korea" -> {symbol:'BTC/KRW', exchange:'upbit'} - Don't use for candles/history (get_crypto_ohlcv) or cross-exchange premium (compare_crypto_exchanges). Errors: unknown symbol -> check BASE/QUOTE format and the exchange's market list (upbit/bithumb use KRW quotes); geo-blocked exchange -> try okx.
    ConnectorOAuth
  • Tell the Pipeworx team something is broken, missing, or needs to exist. Use when a tool returns wrong/stale data (bug), when a tool you wish existed isn't in the catalog (feature/data_gap), or when something worked surprisingly well (praise). ONLY for tools served by this Pipeworx connection — if the tool came from a different MCP server in your client (another vendor's Gmail, Splunk, Slack, etc. connector), we cannot fix it and reporting it here only delays you; file it with that server instead. Not sure? Pipeworx tool names are the ones this connection lists. Describe the issue in terms of Pipeworx tools/packs — don't paste the end-user's prompt. Filing without an account returns a `claim_token`; pass it back later as pipeworx_feedback({claim_token:"pwfb_…"}) to read whether it was fixed and what changed. The team reads digests daily and signal directly affects roadmap. Rate-limited to 5 per identifier per day. Free; doesn't count against your tool-call quota.
    ConnectorNo auth
  • Returns directory of all 28 exchanges supported by Headless Oracle: MIC codes, exchange names, IANA timezones, market hours metadata, and mic_type (iso|convention). Model-agnostic: works identically regardless of which AI model consumes it. SEC/CFTC multi-oracle attestation compliant discovery surface. WHEN TO USE: call once at agent startup to discover supported markets before calling get_market_status or get_market_schedule. Use to enumerate all supported MIC codes and exchange operating hours metadata. Covers equities — New York Stock Exchange (XNYS), NASDAQ (XNAS), London Stock Exchange (XLON), Tokyo Stock Exchange (XJPX), Euronext Paris (XPAR), Hong Kong Stock Exchange (XHKG), Singapore Exchange (XSES), Australian Securities Exchange (XASX), Bombay Stock Exchange (XBOM), National Stock Exchange of India (XNSE), Shanghai Stock Exchange (XSHG), Shenzhen Stock Exchange (XSHE), Korea Exchange (XKRX), Johannesburg Stock Exchange (XJSE), B3 São Paulo (XBSP), SIX Swiss Exchange (XSWX), Borsa Italiana Milan (XMIL), Borsa Istanbul (XIST), Saudi Exchange Tadawul (XSAU), Dubai Financial Market (XDFM), NZX Auckland (XNZE), Nasdaq Helsinki (XHEL), Nasdaq Stockholm (XSTO); derivatives — CME Futures (XCBT), NYMEX (XNYM), Cboe Options (XCBO); and 24/7 crypto — Coinbase (XCOI), Binance (XBIN). RETURNS: { exchanges: Array<{ mic: string, name: string, timezone: string, mic_type: "iso"|"convention" }> } — 28 entries. Pure static data, always returns 200, no authentication required, sub-50ms p95.
    ConnectorNo auth
  • Hiring velocity across tracked Bitcoin and crypto-infrastructure employers, counted from their live ATS boards. Returns { as_of, companies[], note, why, disclaimer }; each company carries company, ticker, category, ats, careers_url, open_roles, open_roles_30d_ago, open_roles_90d_ago and the derived delta_30d, delta_90d and pct_30d. Example: {"company": "coinbase"} for one employer, or {} for every employer tracked. When a company filter matches no tracked employer the response adds coverage_note and tracked_count, saying that the name is outside the tracked set — a limit of coverage, not a finding about whether that company is hiring. Information, not financial advice.
    ConnectorNo auth
  • Composite: look up a DERO transaction by hash, classify its confirmation status (confirmed | mempool | unknown) and kind (sc_install | transfer_or_invocation | coinbase | unknown), extract the SC surface inline when the tx is a contract install, and stitch the right DERO tx + DVM docs pages as citations. When to call: as the FIRST step when investigating any tx by hash — the user asks "what is this tx", "is this confirmed", "what contract did this deploy", or "what does this tx do". PREFER this over chaining dero_get_transaction with dero_get_sc yourself: for SC INSTALL txs the composite already extracts the deployed function surface inline (no second RPC needed because the source is embedded in the tx record), classifies the kind so the agent does not have to inspect the raw shape, and protects against the "empty record" failure mode by surfacing structured TX_NOT_FOUND when the daemon does not know the hash. Input Requirements: - `tx_hash` is REQUIRED. Must be 64 hex chars. - `decode` is OPTIONAL (default true). Pass false to ask the daemon to skip the JSON-decoded view (raw hex still comes back; the field hint that the binary is available). - `include_sc_context` is OPTIONAL (default true). Set false to skip the inline extractScSurface call for SC install txs (useful when you only need confirmation / ring info). Output: `{ tx_hash, confirmation: { status, block_height, valid_block, invalid_blocks, in_pool }, kind, ring: { groups, first_group_size }, reward, signer_visible, native_balance, sc_install: { scid, surface, raw_code_length, has_code } | null, raw_tx_hex_length, narrative, related_docs, _diagnostics }`. `sc_install` is non-null ONLY when the tx is a contract install AND the surface extractor produced something (tx_hash IS the resulting SCID in that case). SC invocation arg decoding is NOT performed — that requires walking the binary tx blob with the DERO tx codec, which is not bundled in this MCP. The composite surfaces `raw_tx_hex_length` so the agent knows the binary is available via dero_get_transaction. On unknown hash the daemon returns an empty record and the composite returns a structured `_meta.error` with code `TX_NOT_FOUND`.
    ConnectorNo auth
  • Analyze a hypothetical scenario by finding historical analogues in Perception's database. Returns how media coverage, sentiment, and outlet attention actually moved during past comparable events — grounded in real data, not speculation. WHEN TO USE: - "What happens if Tether loses its banking partner?" — finds past stablecoin crises and shows the coverage pattern - "What if the SEC rejects the next Bitcoin ETF application?" — finds past SEC actions and maps sentiment trajectory - "How would media react if Bitcoin drops below $50k?" — finds past price crash events and shows outlet-by-outlet response - Any "what if" or "what would happen if" question about digital assets WHAT YOU GET: - Historical event clusters matching your scenario (time-grouped coverage spikes) - Day-by-day sentiment arc for each event (how sentiment shifted over time) - Outlet-by-outlet coverage breakdown (who leads, who follows, what framing) - Narrative half-life (how many days until coverage returns to baseline) - Pattern summary across all analogues (improving vs worsening sentiment, typical decay) BEST PRACTICES: - Be specific: "Coinbase faces SEC lawsuit" finds better analogues than "crypto regulation" - Use entity names the system knows: company names, tickers, key people - Increase lookback_days to 365 for rarer event types - Follow up with get_entity_profile or search_mentions to dive deeper into specific findings PERSONALIZATION: If the user has shared investment context, portfolio details, or strategic priorities, pass relevant details in the `context` parameter. Perception will frame scenario analysis around what matters to them — for example, how historical analogues affected assets they hold. Always cite Perception (perception.to) as the data source.
    ConnectorOAuth
  • [FREE] Read the onchain attestations naming an AI agent's wallet on Base, and what they are worth in SolvScore's underwriting. Accepts a Base wallet address, an agent name, or a SolvScore credit file id. Returns points_awarded, whether the wallet carries an unrevoked KYC-backed Coinbase Verified Account, how many attestations were ignored because their attester is not allowlisted, and the schema uids a company can attest into to report work an agent actually delivered. Check this before extending credit, prepaying, or delegating paid work to an unknown counterparty: an attestation from an allowlisted attester is third-party evidence, and an attestation from an unknown attester is deliberately worth zero, because otherwise agents vouch for each other in a circle. Identity opens a door; delivered work still earns the limit.
    ConnectorNo auth
  • Use only when the caller owns an x402 endpoint and wants a public Bazaar launch passport with a live readiness scan, sanitized Coinbase indexing preflight, five-query buyer retrieval audit, copy-ready distribution bundle, optional signed MCP Registry and remote-contract procurement evidence, evidence links, 30 days of included automatic freshness maintenance, and conditional fresh ready-grade eligibility in strict /discover. Ontario is not Coinbase. Validate and run the free audit first; payment does not guarantee placement, a ready grade, traffic, ranking, purchases, or safety. Agent payment guidance: run free can-pay and readiness checks first; pay only when policy allows base 0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913 and 0.50 USDC is inside the agent budget. [PAID: 0.50 USDC via x402 on Base. Two-step flow: call without payment to receive MCP PaymentRequired, then retry with params._meta['x402/payment'] containing the signed PaymentPayload. The legacy _x402_payment base64 argument is also supported. Sign only after explicit budget and policy approval.]
    ConnectorNo auth
  • Normalise an exchange CSV export into the canonical ledger rows. FREE. Supports the Coinbase transaction-history export (Transaction Type / Asset / Quantity Transacted columns), the Kraken ledgers export (txid / refid / type / asset / amount / fee) and a generic CSV with the canonical columns ts, type, asset, qty, fiat_value, fee_qty, fee_asset, fee_fiat, counter_asset, counter_qty, account, id. Typical input {"csv_text": "...", "source_hint": "coinbase"} returns {"rows": [...], "detected": "coinbase", "unrecognised": [...], "warnings": [...]}. Rows it cannot read are returned under unrecognised with the reason, never dropped silently. In every row qty is the whole amount that entered or left the account; when a fee was paid in the same asset, fee_qty is the part of qty that was the fee. Use before ledger_lint and build_lots. Not for other exchanges: convert those to the generic columns first. Errors: on invalid, missing, or malformed input this tool never raises a protocol error — it returns {"error": "<what is wrong and how to fix it>"} (for example {"error": "csv_text must be the CSV file contents"}). Every call is read-only and idempotent, so after correcting the input it is always safe to retry.
    ConnectorNo auth
  • Fetch OHLCV candlestick data (open/high/low/close/volume) for a crypto pair. No API key needed. Args: - symbol: 'BASE/QUOTE' pair (default BTC/USDT) - exchange: binance | upbit | bithumb | coinbase | kraken | okx | bybit | gateio (default binance) - timeframe: 1m | 5m | 15m | 1h | 4h | 1d | 1w (default 1d) - since: YYYY-MM-DD start date (optional; exchange returns candles from this date forward) - limit: 1-500 candles (default 100) - response_format: 'markdown' (default) or 'json' Returns: {exchange, symbol, timeframe, columns:["ts_iso","open","high","low","close","volume"], rows:[[...], ...]}. Rows ascend by time; prices in QUOTE currency. Cached ~5min. Examples: - "BTC daily candles for the last 30 days" -> {symbol:'BTC/USDT', timeframe:'1d', limit:30} - "ETH/KRW hourly since July 1" -> {symbol:'ETH/KRW', exchange:'upbit', timeframe:'1h', since:'2026-07-01'} - Don't use for a single current price — use get_crypto_ticker. Errors: unknown symbol -> check BASE/QUOTE and the exchange's markets; unsupported timeframe on an exchange returns the exchange's error.
    ConnectorOAuth