Index / MCP servers / Schwab

Schwab MCP server

Schwab is a remote MCP server that gives an AI agent 64 tools, among them schwab_account_statement, schwab_account_statement_infographic, schwab_adoption_status. It answers at https://schwab-mcp.fastmcp.app/mcp over streamable HTTP, and it listed its tools to an anonymous client, so no sign-in was needed for that. Our probes reached it 6 of 6 times since 11 September 2026; the last check, on 22 October 2026, succeeded.

Status
Answering
Tools
64
Reliability
6 of 6 checks
Response time
339 ms
Transport
streamable HTTP
Last checked
22 October 2026

Multi-tenant FastMCP server for Charles Schwab brokerage data, monetized via DPYC Tollbooth

Description as the publisher wrote it.

The 64 tools Schwab offers

ToolWhat it does
schwab_account_statementGenerate a patron's account statement at this operator. Returns the patron's purchase history, active credit tranches, per-tool usage breakdown, and recent daily usage logs. This is the patron's spending account — not the operator's Authori
Inputs: npub, dpop_token, days
schwab_account_statement_infographicGenerate a visual SVG infographic of your account statement. Returns the same data as account_statement, rendered as a dark-themed SVG graphic with balance hero, metrics cards, health gauge, tranche table, and tool usage breakdown. Costs 1
Inputs: npub, dpop_token, days
schwab_adoption_statusCheck this operator's adoption-request status at a chosen Authority. Free. Polls the Authority MCP-to-MCP for the status of this operator's request (pending / approved / rejected / provisioned).
Inputs: authority_npub, dpop_token
schwab_begin_oauthStart the OAuth2 authorization flow. Returns an authorization URL. Open it in a browser to log in and authorize. Then call ``check_oauth_status`` with the same npub to complete. Free. Proof of npub ownership is required so an observer canno
Inputs: npub, dpop_token
schwab_check_authority_balanceCheck this operator's tax balance at the Authority. Returns the sats available for certifying patron credit purchases. When this balance reaches zero, patron top-ups cannot be certified and the operator must call purchase_credits on the Aut
schwab_check_balanceCheck a patron's credit balance at this operator. This is the patron's spending balance — credits purchased via Lightning for tool calls at this operator. For the operator's own balance at the Authority (needed to certify patron purchases),
Inputs: npub, dpop_token
schwab_check_oauth_statusCheck whether the OAuth2 authorization flow has completed. Call after opening the authorization URL from ``begin_oauth`` and completing the login in your browser. Free. Proof of npub ownership is required: OAuth status exposes which upstrea
Inputs: npub, dpop_token
schwab_check_paymentCheck the payment status of a Lightning invoice. Call after paying the invoice from purchase_credits. Free — no credits required. Proof of npub ownership is required to prevent credit-grant front-running by an observer of the invoice ID.
Inputs: invoice_id, npub, dpop_token
schwab_check_pricePreview the effective cost of a tool call. Shows the base cost and any constraint effects (discounts, free trials, surge pricing). Free — no credits required.
Inputs: tool_id, npub, dpop_token, tool_kwargs
schwab_check_proof_statusCheck whether a previously-cached dpop_token is still valid. Mirrors ``check_oauth_status`` for the npub-proof flow: a calling agent can ask "will my next paid call accept this dpop_token?" before burning credits on a guaranteed failure. Fr
Inputs: patron_npub, dpop_token
schwab_delete_couponDelete a coupon. Cascades to all patron redemptions. Any chain step referencing the deleted coupon_id becomes a no-op (the constraint returns neutral on unknown ids) — the Studio surfaces orphan references as warnings. RESTRICTED to operato
Inputs: coupon_id, dpop_token
schwab_delete_operator_credentialRemove a single operator secret field. Deletes one key from the operator's encrypted credential blob without touching the others — the field-level counterpart to ``forget_credentials``, which wipes the whole row. Use it to retire a leftover
Inputs: field, dpop_token
schwab_delete_patron_credentialRemove a single patron credential field. Deletes one field from stored credentials without affecting other fields. Free. Proof of npub ownership is required — this is a write to the patron's sensitive credential vault.
Inputs: npub, dpop_token, field
schwab_forget_couponRemove a coupon from this patron's redemption list. Cosmetic only — the coupon itself still exists at the operator, and the patron can re-redeem the same code later while the window allows. Free — requires proof of ``npub``.
Inputs: npub, coupon_id, dpop_token
schwab_forget_credentialsDelete vaulted credentials for a specific service and npub. For operator credentials, pass the operator's own npub. For patron credentials, pass the patron's npub. Always requires proof of npub ownership — a deletion is as destructive as a
Inputs: service, npub, dpop_token
schwab_get_account_numbersList Schwab account numbers and their hash identifiers. Call after completing OAuth. Returns accounts with hash values needed for brokerage data tools. Then call ``update_patron_credential(field="account_hash", value=<hash>)`` to set your p
Inputs: npub, dpop_token
schwab_get_brokerage_balancesGet the active Schwab account's current balance summary. Pulls Schwab's account endpoint and returns four bold lines: **Cash Balance:** currentBalances.cashBalance **Buying Power:** currentBalances.buyingPower **Net Liquidation:** currentBa
Inputs: npub, dpop_token
schwab_get_brokerage_orderGet full details for a single order by Schwab order ID. Returns the same one-line markdown format as get_brokerage_orders, with the average fill price computed across all executionLegs: - **<orderId>** [<status>] <orderType> | <legs> | Pric
Inputs: order_id, npub, dpop_token
schwab_get_brokerage_ordersGet order history for the active Schwab account. Returns one markdown row per order: - **<orderId>** [<status>] <orderType> | <leg1> / <leg2> / ... | Price: $X @ $avg_fill | Filled: <qty> | <enteredTime> Each leg formats as "<instruction> <
Inputs: from_date, to_date, status_filter, npub, dpop_token
schwab_get_brokerage_positionsGet current positions in the active Schwab account, with automatic vertical-spread detection. Pulls Schwab's account endpoint with fields="positions" and emits up to three markdown sections, omitting any that are empty: ## Spreads — vertica
Inputs: npub, dpop_token
schwab_get_brokerage_transactionGet full details for a single transaction by Schwab transaction ID. Returns the same one-line markdown format as get_brokerage_transactions: - **<activityId>** [<type>] <tradeDate> | <symbols/qtys> | Net: $<amount> Use this when you have a
Inputs: transaction_id, npub, dpop_token
schwab_get_brokerage_transactionsGet transaction history for the active Schwab account. Returns one markdown row per transaction: - **<activityId>** [<type>] <tradeDate> | <qty>x <symbol> | <qty>x <symbol> ... | Net: $<amount> Symbols come from the transaction's transferIt
Inputs: from_date, to_date, transaction_types, npub, dpop_token
schwab_get_market_hoursGet trading hours for one or more market types. Returns nested markdown — one block per market product Schwab knows about within the requested categories: **<Product Name>** — OPEN | CLOSED Pre Market: YYYY-MM-DDTHH:MM — YYYY-MM-DDTHH:MM Re
Inputs: markets, date, npub, dpop_token
schwab_get_market_moversGet top movers for a market index — Schwab's curated mover screener. Returns up to 20 rows (capped server-side here, not by Schwab) in a markdown table.
Inputs: index, sort, frequency, npub, dpop_token
schwab_get_nostr_profileRead an npub's public Nostr profile (NIP-01 kind-0 metadata). Free, no proof — the data is already public on relays. Returns the latest metadata fields (name, display_name, about, picture, banner, nip05, website, lud16) or an empty profile
Inputs: npub
schwab_get_notarization_proofGenerate a Merkle inclusion proof that a patron's balance was included in a Bitcoin-notarized snapshot.
Inputs: notarization_id, npub
schwab_get_operator_onboarding_statusReport this operator's configuration readiness. Shows which operator settings are configured, which are missing, and how to deliver each missing value. For patron-level credential status, use get_patron_onboarding_status instead. Free.
schwab_get_option_chainGet a filtered option chain suitable for spread evaluation. Returns a markdown table of surviving contracts with one row per leg. Header line carries the underlying price and the active filter constants.
Inputs: symbol, strike_count, contract_type, days_to_expiration, npub, dpop_token
schwab_get_patron_credential_fieldsList stored patron credential field names (not values). Returns the names of fields stored for a patron, plus each field's ``delivered_at`` ISO-8601 timestamp when known (null for secrets vaulted before timestamps were recorded). Values are
Inputs: npub, dpop_token
schwab_get_patron_onboarding_statusReport a patron's credential readiness for this operator. For set-once services (eXcalibur, TheBrain), shows which patron secrets are configured and which are missing. For dynamic/OAuth2 services (Schwab), reports that no patron credentials
Inputs: patron_npub, dpop_token
schwab_get_price_historyGet historical OHLCV candle data for a symbol. Returns a markdown table of the most recent candles within the requested period, capped at the last 30 rows for readability. A footnote line is added when truncation occurs so the agent knows m
Inputs: symbol, period_type, period, frequency_type, frequency, npub
schwab_get_pricing_modelGet the active pricing model for this operator. Free. If no model exists, self-initializes a scaffold with all registered tools at 0 sats. No economic data from code.
schwab_get_stock_quoteGet real-time quotes for one or more symbols.
Inputs: symbols, npub, dpop_token
schwab_list_canonical_identitiesReturn canonical (tool_id, mcp_name, …) for every tool the wheel exposes. The authoritative source for any client (Studio, agents, FE) that needs to know how this MCP identifies its tools. Reconcile uses this output to UUID-join against the
schwab_list_constraint_typesList all available constraint types and their parameter schemas. Returns the type, category, description, and parameter specs for every constraint that can be used in a pricing pipeline. Free — no credits required.
schwab_list_couponsList every coupon this operator has minted (newest first). Each row carries the current ``times_redeemed`` counter — the Studio renders a progress bar from this against ``total_uses``. RESTRICTED to operator — requires proof.
Inputs: dpop_token
schwab_list_my_couponsList the coupons this patron has redeemed on this operator. Returns both active and exhausted redemptions with a per-row ``status`` (``active`` / ``window_closed`` / ``patron_limit`` / ``total_limit``). Free — requires proof of ``npub``.
Inputs: npub, dpop_token
schwab_list_notarizationsList recent Bitcoin notarization records.
Inputs: limit, status
schwab_mint_couponCreate a new operator-owned discount coupon.
Inputs: name, discount_percent, valid_from, valid_until, uses_per_patron, total_uses
schwab_notarize_ledgerBuild a Merkle tree of all patron balances and submit the root to Bitcoin via OpenTimestamps. Operator-only background task. Bitcoin confirmation takes 1-6 hours. Free — no credits required.
24 more tools

schwab_oracle_about, schwab_oracle_get_tax_rate, schwab_oracle_how_to_join, schwab_oracle_lookup_member, schwab_oracle_network_advisory, schwab_publish_nostr_profile, schwab_purchase_credits, schwab_receive_credentials, schwab_receive_npub_proof, schwab_redeem_coupon, schwab_report_issue, schwab_request_adoption, schwab_request_credential_channel, schwab_request_npub_proof, schwab_reset_pricing_model, schwab_restore_credits, schwab_restore_neon_schema, schwab_search_instruments, schwab_service_status, schwab_session_status, schwab_set_pricing_model, schwab_update_coupon, schwab_update_operator_credential, schwab_update_patron_credential

Add Schwab to your AI client

Every block below points at https://schwab-mcp.fastmcp.app/mcp. Pick your client and copy.

Claude Code: one command in your terminal
claude mcp add --transport http schwab https://schwab-mcp.fastmcp.app/mcp
Claude Desktop: claude_desktop_config.json
{
  "mcpServers": {
    "schwab": {
      "command": "npx",
      "args": ["-y", "mcp-remote", "https://schwab-mcp.fastmcp.app/mcp"]
    }
  }
}
Cursor: ~/.cursor/mcp.json, or .cursor/mcp.json in a project
{
  "mcpServers": {
    "schwab": {
      "url": "https://schwab-mcp.fastmcp.app/mcp"
    }
  }
}
VS Code and GitHub Copilot: .vscode/mcp.json
{
  "servers": {
    "schwab": {
      "type": "http",
      "url": "https://schwab-mcp.fastmcp.app/mcp"
    }
  }
}
Zed: Zed settings.json
{
  "context_servers": {
    "schwab": {
      "url": "https://schwab-mcp.fastmcp.app/mcp"
    }
  }
}
Windsurf: ~/.codeium/mcp_config.json
{
  "mcpServers": {
    "schwab": {
      "serverUrl": "https://schwab-mcp.fastmcp.app/mcp"
    }
  }
}
JetBrains AI Assistant: Settings, Tools, AI Assistant, MCP, New MCP Server, as JSON
{
  "mcpServers": {
    "schwab": {
      "url": "https://schwab-mcp.fastmcp.app/mcp"
    }
  }
}
Continue: .continue/mcpServers/neuronto.yaml
name: Schwab
version: 0.0.1
schema: v1
mcpServers:
  - name: Schwab
    type: streamable-http
    url: https://schwab-mcp.fastmcp.app/mcp
Gemini CLI: ~/.gemini/settings.json
{
  "mcpServers": {
    "schwab": {
      "httpUrl": "https://schwab-mcp.fastmcp.app/mcp"
    }
  }
}
Codex CLI: MCP server config
{
  "mcpServers": {
    "schwab": {
      "type": "http",
      "url": "https://schwab-mcp.fastmcp.app/mcp"
    }
  }
}
Warp: MCP servers, + Add, paste JSON
{
  "mcpServers": {
    "schwab": {
      "url": "https://schwab-mcp.fastmcp.app/mcp"
    }
  }
}
Goose: a one-click extension link
goose://extension?url=https%3A%2F%2Fschwab-mcp.fastmcp.app%2Fmcp&type=streamable_http&id=schwab&name=Schwab

Is Schwab up right now?

It answered our last check on 22 October 2026 in 339 ms. Over 6 checks since 11 September 2026 it answered 6. Status here comes from Neuronto's own probes, not from the publisher.

MCP servers similar to Schwab

Questions about Schwab

How many tools does Schwab have?

64, as returned by the server's own tools/list on 15 September 2026: schwab_account_statement, schwab_account_statement_infographic, schwab_adoption_status, schwab_begin_oauth, schwab_check_authority_balance, schwab_check_balance, schwab_check_oauth_status, schwab_check_payment, and 56 more.

Is Schwab down?

It answered our last check on 22 October 2026 in 339 ms. Over 6 checks since 11 September 2026 it answered 6.

How do I add Schwab to Cursor?

Put the server under mcpServers in ~/.cursor/mcp.json with the URL https://schwab-mcp.fastmcp.app/mcp. The exact JSON is above, with the same setup for Claude Code, Claude Desktop, VS Code, Windsurf, Zed, Gemini CLI and the rest.

Does Schwab need an API key?

It listed its tools to an anonymous client, so reading the tool list needs no key. Individual tools can still ask for credentials in their own inputs.

Where this comes from

Publisher: io.github.lonniev. Endpoint host: schwab-mcp.fastmcp.app. ARD identifier: urn:air:io.github.lonniev:mcp:schwab-mcp. First indexed 10 September 2026. The tools are exactly what the server returned; nothing on this page is inferred from its name. Ranking in Neuronto search is never for sale.

Is this your server? Get a message the day it stops answering or its tools change: monitoring, 14 days free. Or claim the domain to manage how it is listed.