Skip to main content
Glama

Server Details

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

The last two health checks of this connector failed. If this server requires authentication, missing or expired test credentials may be the cause. A test profile lets Glama authenticate for health checks and discover tools; it is separate from your personal connections.

If you are the author, claim ownership, then add or update a test profile under Admin → Test Profile.

Status
Unhealthy
Uptime
82.3% over 75 days
OAuth
Works in Glama
Last Tested
Transport
Streamable HTTP
URL
Repository
lonniev/schwab-mcp
GitHub Stars
0
Server Listing
schwab-mcp

TDQS

B3.4/5.0

Scored across 65 tools

Disambiguation3/5

Descriptions do real work to separate tools (e.g. check_balance explicitly redirects to authority_check_balance), which saves many pairs. But several families have genuinely murky boundaries: delete_coupon vs forget_coupon, forget_credentials vs delete_operator_credential vs delete_patron_credential, and a dense cluster of status tools (service_status, session_status, adoption_status, get_patron/operator_onboarding_status) that an agent will frequently misselect.

Naming Consistency4/5

Nearly everything follows a schwab_-prefixed snake_case verb_noun pattern, so tools sort predictably and the prefix is uniform. Minor deviations exist: the oracle_* and *_status tools use noun phrases (schwab_oracle_about, schwab_service_status), and singular/plural pairs (get_brokerage_order vs get_brokerage_orders) add small risk.

Tool Count1/5

65 tools is extreme for any single MCP surface. The server legitimately spans brokerage data, billing/pricing, Nostr identity, credentials, coupons, notarization, Oracle, and operator admin, but bundling all of it into one tool list makes navigation and selection impractical for an agent.

Completeness4/5

Coverage is remarkably thorough: full CRUD across coupons, credentials, and pricing models, plus OAuth and proof lifecycles, notarization, and a broad Schwab data surface. The main gap is that brokerage tools are strictly read-only — no order placement, cancel, or replace — which limits the trading domain despite the otherwise complete lifecycle.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 47 tool updates
    • Changedschwab_account_statement1 field changed
      • changedInput schema / properties / dpop_token / description
        Previous value: -"Raw JSON of a kind-27235 Nostr event signed by npub —\nnot base64, not NIP-98 'Authorization: Nostr <b64>' framing. Its\n`u` tag must hold THIS tool's exact name (from tools/list), not\nthe endpoint URL; content:\"\", created_at within 60s of now, and a\nrandom `nonce` tag recommended. Or a cached dpop_token phrase."New value: +"Proof that the caller holds npub: the grant envelope from\nreceive_npub_proof, or the raw JSON of a kind-27235 Nostr event signed\nby npub whose `u` tag is this tool's name."
    • Changedschwab_account_statement_infographic1 field changed
      • changedInput schema / properties / dpop_token / description
        Previous value: -"Raw JSON of a kind-27235 Nostr event signed by npub —\nnot base64, not NIP-98 'Authorization: Nostr <b64>' framing. Its\n`u` tag must hold THIS tool's exact name (from tools/list), not\nthe endpoint URL; content:\"\", created_at within 60s of now, and a\nrandom `nonce` tag recommended. Or a cached dpop_token phrase."New value: +"Proof that the caller holds npub: the grant envelope from\nreceive_npub_proof, or the raw JSON of a kind-27235 Nostr event signed\nby npub whose `u` tag is this tool's name."
    • Changedschwab_adoption_status2 fields changed
      • addedInput schema / properties / authority_npub / description
        Added value: +"The npub of the Authority the request was sent to."
      • addedInput schema / properties / dpop_token / description
        Added value: +"Proof that the caller holds the operator's npub: the grant\nenvelope from receive_npub_proof, or the raw JSON of a kind-27235\nNostr event signed by the operator whose `u` tag is this tool's name."
    • Changedschwab_begin_oauth1 field changed
      • changedInput schema / properties / dpop_token / description
        Previous value: -"Raw JSON of a kind-27235 Nostr event signed by npub —\nnot base64, not NIP-98 'Authorization: Nostr <b64>' framing.\nIts `u` tag must hold THIS tool's exact name (from\ntools/list), not the endpoint URL; content:\"\", created_at\nwithin 60s of now, and a random `nonce` tag recommended. Or a\ncached dpop_token phrase."New value: +"Proof that the caller holds npub: the grant envelope from\nreceive_npub_proof, or the raw JSON of a kind-27235 Nostr event signed\nby npub whose `u` tag is this tool's name."
    • Changedschwab_check_balance1 field changed
      • changedInput schema / properties / dpop_token / description
        Previous value: -"Raw JSON of a kind-27235 Nostr event signed by npub —\nnot base64, not NIP-98 'Authorization: Nostr <b64>' framing. Its\n`u` tag must hold THIS tool's exact name (from tools/list), not\nthe endpoint URL; content:\"\", created_at within 60s of now, and a\nrandom `nonce` tag recommended. Or a cached dpop_token phrase."New value: +"Proof that the caller holds npub: the grant envelope from\nreceive_npub_proof, or the raw JSON of a kind-27235 Nostr event signed\nby npub whose `u` tag is this tool's name."
    • Changedschwab_check_oauth_status1 field changed
      • changedInput schema / properties / dpop_token / description
        Previous value: -"Raw JSON of a kind-27235 Nostr event signed by npub —\nnot base64, not NIP-98 'Authorization: Nostr <b64>' framing.\nIts `u` tag must hold THIS tool's exact name (from\ntools/list), not the endpoint URL; content:\"\", created_at\nwithin 60s of now, and a random `nonce` tag recommended. Or a\ncached dpop_token phrase."New value: +"Proof that the caller holds npub: the grant envelope from\nreceive_npub_proof, or the raw JSON of a kind-27235 Nostr event signed\nby npub whose `u` tag is this tool's name."
    • Changedschwab_check_payment1 field changed
      • changedInput schema / properties / dpop_token / description
        Previous value: -"Raw JSON of a kind-27235 Nostr event signed by npub —\nnot base64, not NIP-98 'Authorization: Nostr <b64>' framing. Its\n`u` tag must hold THIS tool's exact name (from tools/list), not\nthe endpoint URL; content:\"\", created_at within 60s of now, and a\nrandom `nonce` tag recommended. Or a cached dpop_token phrase."New value: +"Proof that the caller holds npub: the grant envelope from\nreceive_npub_proof, or the raw JSON of a kind-27235 Nostr event signed\nby npub whose `u` tag is this tool's name."
    • Changedschwab_check_price2 fields changed
      • addedInput schema / properties / dpop_token / description
        Added value: +"Proof that the caller holds npub: the grant envelope from\nreceive_npub_proof, or the raw JSON of a kind-27235 Nostr event signed\nby npub whose `u` tag is this tool's name."
      • addedInput schema / properties / npub / description
        Added value: +"Optional patron npub; with it, the preview includes that\npatron's coupons and constraint effects."
    • Changedschwab_check_proof_status1 field changed
      • changedInput schema / properties / dpop_token / description
        Previous value: -"Required. The grant envelope returned by\n``receive_npub_proof``."New value: +"Proof that the caller holds npub: the grant envelope from\nreceive_npub_proof, or the raw JSON of a kind-27235 Nostr event signed\nby npub whose `u` tag is this tool's name."
    • Changedschwab_delete_coupon2 fields changed
      • addedInput schema / properties / coupon_id / description
        Added value: +"The id of the coupon to delete (from list_coupons)."
      • addedInput schema / properties / dpop_token / description
        Added value: +"Proof that the caller holds the operator's npub: the grant\nenvelope from receive_npub_proof, or the raw JSON of a kind-27235\nNostr event signed by the operator whose `u` tag is this tool's name."
    • Changedschwab_delete_operator_credential1 field changed
      • changedInput schema / properties / dpop_token / description
        Previous value: -"Operator proof for this tool."New value: +"Proof that the caller holds npub: the grant envelope from\nreceive_npub_proof, or the raw JSON of a kind-27235 Nostr event signed\nby npub whose `u` tag is this tool's name."
    • Changedschwab_delete_patron_credential1 field changed
      • changedInput schema / properties / dpop_token / description
        Previous value: -"Raw JSON of a kind-27235 Nostr event signed by npub —\nnot base64, not NIP-98 'Authorization: Nostr <b64>' framing. Its\n`u` tag must hold THIS tool's exact name (from tools/list), not\nthe endpoint URL; content:\"\", created_at within 60s of now, and a\nrandom `nonce` tag recommended. Or a cached dpop_token phrase."New value: +"Proof that the caller holds npub: the grant envelope from\nreceive_npub_proof, or the raw JSON of a kind-27235 Nostr event signed\nby npub whose `u` tag is this tool's name."
    • Changedschwab_forget_coupon3 fields changed
      • addedInput schema / properties / coupon_id / description
        Added value: +"The id of the redeemed coupon to remove (from\nlist_my_coupons)."
      • addedInput schema / properties / dpop_token / description
        Added value: +"Proof that the caller holds npub: the grant envelope from\nreceive_npub_proof, or the raw JSON of a kind-27235 Nostr event signed\nby npub whose `u` tag is this tool's name."
      • addedInput schema / properties / npub / description
        Added value: +"The patron's Nostr public key (npub1...)."
    • Changedschwab_forget_credentials1 field changed
      • changedInput schema / properties / dpop_token / description
        Previous value: -"Raw JSON of a kind-27235 Nostr event signed by npub —\nnot base64, not NIP-98 'Authorization: Nostr <b64>' framing. Its\n`u` tag must hold THIS tool's exact name (from tools/list), not\nthe endpoint URL; content:\"\", created_at within 60s of now, and a\nrandom `nonce` tag recommended. Or a cached dpop_token phrase."New value: +"Proof that the caller holds npub: the grant envelope from\nreceive_npub_proof, or the raw JSON of a kind-27235 Nostr event signed\nby npub whose `u` tag is this tool's name."
    • Changedschwab_get_account_numbers2 fields changed
      • changedInput schema / properties / dpop_token / description
        Previous value: -"Schnorr proof token issued by request/receive_npub_proof\nfor capability ``get_account_numbers``."New value: +"Proof that the caller holds npub. Either the grant envelope that receive_npub_proof returned, or the raw JSON of a kind-27235 Nostr event signed by npub: content \"\", a `u` tag holding this tool's exact name from tools/list, created_at within 60 s of now, and a random `nonce` tag."
      • changedInput schema / properties / npub / description
        Previous value: -"Required. Your Nostr public key (npub1...) for credit billing."New value: +"The patron's Nostr public key (npub1...). Tool fees are paid from this patron's balance; dpop_token proves the caller holds it."
    • Changedschwab_get_brokerage_balances2 fields changed
      • addedInput schema / properties / dpop_token / description
        Added value: +"Proof that the caller holds npub. Either the grant envelope that receive_npub_proof returned, or the raw JSON of a kind-27235 Nostr event signed by npub: content \"\", a `u` tag holding this tool's exact name from tools/list, created_at within 60 s of now, and a random `nonce` tag."
      • changedInput schema / properties / npub / description
        Previous value: -"Required. Your Nostr public key (npub1...) for credit billing."New value: +"The patron's Nostr public key (npub1...). Tool fees are paid from this patron's balance; dpop_token proves the caller holds it."
    • Changedschwab_get_brokerage_order2 fields changed
      • addedInput schema / properties / dpop_token / description
        Added value: +"Proof that the caller holds npub. Either the grant envelope that receive_npub_proof returned, or the raw JSON of a kind-27235 Nostr event signed by npub: content \"\", a `u` tag holding this tool's exact name from tools/list, created_at within 60 s of now, and a random `nonce` tag."
      • changedInput schema / properties / npub / description
        Previous value: -"Required. Your Nostr public key (npub1...) for credit billing."New value: +"The patron's Nostr public key (npub1...). Tool fees are paid from this patron's balance; dpop_token proves the caller holds it."
    • Changedschwab_get_brokerage_orders2 fields changed
      • addedInput schema / properties / dpop_token / description
        Added value: +"Proof that the caller holds npub. Either the grant envelope that receive_npub_proof returned, or the raw JSON of a kind-27235 Nostr event signed by npub: content \"\", a `u` tag holding this tool's exact name from tools/list, created_at within 60 s of now, and a random `nonce` tag."
      • changedInput schema / properties / npub / description
        Previous value: -"Required. Your Nostr public key (npub1...) for credit billing."New value: +"The patron's Nostr public key (npub1...). Tool fees are paid from this patron's balance; dpop_token proves the caller holds it."
    • Changedschwab_get_brokerage_positions2 fields changed
      • addedInput schema / properties / dpop_token / description
        Added value: +"Proof that the caller holds npub. Either the grant envelope that receive_npub_proof returned, or the raw JSON of a kind-27235 Nostr event signed by npub: content \"\", a `u` tag holding this tool's exact name from tools/list, created_at within 60 s of now, and a random `nonce` tag."
      • changedInput schema / properties / npub / description
        Previous value: -"Required. Your Nostr public key (npub1...) for credit billing."New value: +"The patron's Nostr public key (npub1...). Tool fees are paid from this patron's balance; dpop_token proves the caller holds it."
    • Changedschwab_get_brokerage_transaction2 fields changed
      • addedInput schema / properties / dpop_token / description
        Added value: +"Proof that the caller holds npub. Either the grant envelope that receive_npub_proof returned, or the raw JSON of a kind-27235 Nostr event signed by npub: content \"\", a `u` tag holding this tool's exact name from tools/list, created_at within 60 s of now, and a random `nonce` tag."
      • changedInput schema / properties / npub / description
        Previous value: -"Required. Your Nostr public key (npub1...) for credit billing."New value: +"The patron's Nostr public key (npub1...). Tool fees are paid from this patron's balance; dpop_token proves the caller holds it."
    • Changedschwab_get_brokerage_transactions2 fields changed
      • addedInput schema / properties / dpop_token / description
        Added value: +"Proof that the caller holds npub. Either the grant envelope that receive_npub_proof returned, or the raw JSON of a kind-27235 Nostr event signed by npub: content \"\", a `u` tag holding this tool's exact name from tools/list, created_at within 60 s of now, and a random `nonce` tag."
      • changedInput schema / properties / npub / description
        Previous value: -"Required. Your Nostr public key (npub1...) for credit billing."New value: +"The patron's Nostr public key (npub1...). Tool fees are paid from this patron's balance; dpop_token proves the caller holds it."
    • Changedschwab_get_market_hours2 fields changed
      • addedInput schema / properties / dpop_token / description
        Added value: +"Proof that the caller holds npub. Either the grant envelope that receive_npub_proof returned, or the raw JSON of a kind-27235 Nostr event signed by npub: content \"\", a `u` tag holding this tool's exact name from tools/list, created_at within 60 s of now, and a random `nonce` tag."
      • changedInput schema / properties / npub / description
        Previous value: -"Required. Your Nostr public key (npub1...) for credit billing."New value: +"The patron's Nostr public key (npub1...). Tool fees are paid from this patron's balance; dpop_token proves the caller holds it."
    • Changedschwab_get_market_movers2 fields changed
      • addedInput schema / properties / dpop_token / description
        Added value: +"Proof that the caller holds npub. Either the grant envelope that receive_npub_proof returned, or the raw JSON of a kind-27235 Nostr event signed by npub: content \"\", a `u` tag holding this tool's exact name from tools/list, created_at within 60 s of now, and a random `nonce` tag."
      • changedInput schema / properties / npub / description
        Previous value: -"Required. Your Nostr public key (npub1...) for credit billing."New value: +"The patron's Nostr public key (npub1...). Tool fees are paid from this patron's balance; dpop_token proves the caller holds it."
    • Changedschwab_get_nostr_profile1 field changed
      • addedInput schema / properties / npub / description
        Added value: +"The Nostr public key (npub1...) whose profile to read."
    • Changedschwab_get_option_chain2 fields changed
      • addedInput schema / properties / dpop_token / description
        Added value: +"Proof that the caller holds npub. Either the grant envelope that receive_npub_proof returned, or the raw JSON of a kind-27235 Nostr event signed by npub: content \"\", a `u` tag holding this tool's exact name from tools/list, created_at within 60 s of now, and a random `nonce` tag."
      • changedInput schema / properties / npub / description
        Previous value: -"Required. Your Nostr public key (npub1...) for credit billing."New value: +"The patron's Nostr public key (npub1...). Tool fees are paid from this patron's balance; dpop_token proves the caller holds it."
    • Changedschwab_get_patron_credential_fields1 field changed
      • changedInput schema / properties / dpop_token / description
        Previous value: -"Raw JSON of a kind-27235 Nostr event signed by npub —\nnot base64, not NIP-98 'Authorization: Nostr <b64>' framing. Its\n`u` tag must hold THIS tool's exact name (from tools/list), not\nthe endpoint URL; content:\"\", created_at within 60s of now, and a\nrandom `nonce` tag recommended. Or a cached dpop_token phrase."New value: +"Proof that the caller holds npub: the grant envelope from\nreceive_npub_proof, or the raw JSON of a kind-27235 Nostr event signed\nby npub whose `u` tag is this tool's name."
    • Changedschwab_get_patron_onboarding_status1 field changed
      • changedInput schema / properties / dpop_token / description
        Previous value: -"A kind-27235 Nostr event signed by patron_npub for this tool."New value: +"Proof that the caller holds npub: the grant envelope from\nreceive_npub_proof, or the raw JSON of a kind-27235 Nostr event signed\nby npub whose `u` tag is this tool's name."
    • Changedschwab_get_price_history2 fields changed
      • addedInput schema / properties / dpop_token / description
        Added value: +"Proof that the caller holds npub. Either the grant envelope that receive_npub_proof returned, or the raw JSON of a kind-27235 Nostr event signed by npub: content \"\", a `u` tag holding this tool's exact name from tools/list, created_at within 60 s of now, and a random `nonce` tag."
      • changedInput schema / properties / npub / description
        Previous value: -"Required. Your Nostr public key (npub1...) for credit billing."New value: +"The patron's Nostr public key (npub1...). Tool fees are paid from this patron's balance; dpop_token proves the caller holds it."
    • Changedschwab_get_stock_quote2 fields changed
      • addedInput schema / properties / dpop_token / description
        Added value: +"Proof that the caller holds npub. Either the grant envelope that receive_npub_proof returned, or the raw JSON of a kind-27235 Nostr event signed by npub: content \"\", a `u` tag holding this tool's exact name from tools/list, created_at within 60 s of now, and a random `nonce` tag."
      • changedInput schema / properties / npub / description
        Previous value: -"Required. Your Nostr public key (npub1...) for credit billing."New value: +"The patron's Nostr public key (npub1...). Tool fees are paid from this patron's balance; dpop_token proves the caller holds it."
    • Changedschwab_list_coupons1 field changed
      • addedInput schema / properties / dpop_token / description
        Added value: +"Proof that the caller holds the operator's npub: the grant\nenvelope from receive_npub_proof, or the raw JSON of a kind-27235\nNostr event signed by the operator whose `u` tag is this tool's name."
    • Changedschwab_list_my_coupons2 fields changed
      • addedInput schema / properties / dpop_token / description
        Added value: +"Proof that the caller holds npub: the grant envelope from\nreceive_npub_proof, or the raw JSON of a kind-27235 Nostr event signed\nby npub whose `u` tag is this tool's name."
      • addedInput schema / properties / npub / description
        Added value: +"The patron's Nostr public key (npub1...)."
    • Changedschwab_mint_coupon1 field changed
      • addedInput schema / properties / dpop_token / description
        Added value: +"Proof that the caller holds the operator's npub: the grant\nenvelope from receive_npub_proof, or the raw JSON of a kind-27235\nNostr event signed by the operator whose `u` tag is this tool's name."
    • Changedschwab_oracle_lookup_member1 field changed
      • addedInput schema / properties / npub / description
        Added value: +"The Nostr public key (npub1...) of the member to look up."
    • Changedschwab_purchase_credits1 field changed
      • changedInput schema / properties / dpop_token / description
        Previous value: -"Raw JSON of a kind-27235 Nostr event signed by npub —\nnot base64, not NIP-98 'Authorization: Nostr <b64>' framing. Its\n`u` tag must hold THIS tool's exact name (from tools/list), not\nthe endpoint URL; content:\"\", created_at within 60s of now, and a\nrandom `nonce` tag recommended. Or a cached dpop_token phrase."New value: +"Proof that the caller holds npub: the grant envelope from\nreceive_npub_proof, or the raw JSON of a kind-27235 Nostr event signed\nby npub whose `u` tag is this tool's name."
    • Changedschwab_receive_credentials1 field changed
      • changedInput schema / properties / dpop_token / description
        Previous value: -"Required. The session phrase returned by\nrequest_credential_channel for this exact channel."New value: +"Proof that the caller holds npub: the grant envelope from\nreceive_npub_proof, or the raw JSON of a kind-27235 Nostr event signed\nby npub whose `u` tag is this tool's name."
    • Changedschwab_receive_npub_proof1 field changed
      • changedInput schema / properties / dpop_token / description
        Previous value: -"Required. The dpop_token returned by request_npub_proof."New value: +"Proof that the caller holds npub: the grant envelope from\nreceive_npub_proof, or the raw JSON of a kind-27235 Nostr event signed\nby npub whose `u` tag is this tool's name."
    • Changedschwab_redeem_coupon3 fields changed
      • addedInput schema / properties / code / description
        Added value: +"The coupon code the operator shared."
      • addedInput schema / properties / dpop_token / description
        Added value: +"Proof that the caller holds npub: the grant envelope from\nreceive_npub_proof, or the raw JSON of a kind-27235 Nostr event signed\nby npub whose `u` tag is this tool's name."
      • addedInput schema / properties / npub / description
        Added value: +"The patron's Nostr public key (npub1...)."
    • Changedschwab_report_issue1 field changed
      • changedInput schema / properties / dpop_token / description
        Previous value: -"Raw JSON of a kind-27235 Nostr event signed by npub —\nnot base64, not NIP-98 'Authorization: Nostr <b64>' framing. Its\n`u` tag must hold THIS tool's exact name (from tools/list), not\nthe endpoint URL; content:\"\", created_at within 60s of now, and a\nrandom `nonce` tag recommended. Or a cached dpop_token phrase."New value: +"Proof that the caller holds npub: the grant envelope from\nreceive_npub_proof, or the raw JSON of a kind-27235 Nostr event signed\nby npub whose `u` tag is this tool's name."
    • Changedschwab_request_adoption1 field changed
      • changedInput schema / properties / dpop_token / description
        Previous value: -"operator-npub ownership proof (inline kind-27235 or cached token)."New value: +"Proof that the caller holds npub: the grant envelope from\nreceive_npub_proof, or the raw JSON of a kind-27235 Nostr event signed\nby npub whose `u` tag is this tool's name."
    • Changedschwab_reset_pricing_model1 field changed
      • addedInput schema / properties / dpop_token / description
        Added value: +"Proof that the caller holds the operator's npub: the grant\nenvelope from receive_npub_proof, or the raw JSON of a kind-27235\nNostr event signed by the operator whose `u` tag is this tool's name."
    • Changedschwab_restore_credits1 field changed
      • changedInput schema / properties / dpop_token / description
        Previous value: -"A kind-27235 Nostr event signed by the OPERATOR's nsec\nfor this tool. Patron proofs are rejected."New value: +"Proof that the caller holds npub: the grant envelope from\nreceive_npub_proof, or the raw JSON of a kind-27235 Nostr event signed\nby npub whose `u` tag is this tool's name."
    • Changedschwab_restore_neon_schema1 field changed
      • addedInput schema / properties / dpop_token / description
        Added value: +"Proof that the caller holds the operator's npub: the grant\nenvelope from receive_npub_proof, or the raw JSON of a kind-27235\nNostr event signed by the operator whose `u` tag is this tool's name."
    • Changedschwab_search_instruments2 fields changed
      • addedInput schema / properties / dpop_token / description
        Added value: +"Proof that the caller holds npub. Either the grant envelope that receive_npub_proof returned, or the raw JSON of a kind-27235 Nostr event signed by npub: content \"\", a `u` tag holding this tool's exact name from tools/list, created_at within 60 s of now, and a random `nonce` tag."
      • changedInput schema / properties / npub / description
        Previous value: -"Required. Your Nostr public key (npub1...) for credit billing."New value: +"The patron's Nostr public key (npub1...). Tool fees are paid from this patron's balance; dpop_token proves the caller holds it."
    • Changedschwab_set_pricing_model2 fields changed
      • addedInput schema / properties / dpop_token / description
        Added value: +"Proof that the caller holds the operator's npub: the grant\nenvelope from receive_npub_proof, or the raw JSON of a kind-27235\nNostr event signed by the operator whose `u` tag is this tool's name."
      • addedInput schema / properties / model_json / description
        Added value: +"The complete pricing model as a JSON object; it\nreplaces the active model."
    • Changedschwab_update_coupon11 fields changed
      • addedInput schema / properties / clear_total_uses / description
        Added value: +"True makes total redemptions unlimited."
      • addedInput schema / properties / clear_uses_per_patron / description
        Added value: +"True makes discounted calls per patron unlimited."
      • addedInput schema / properties / coupon_id / description
        Added value: +"The id of the coupon to change (from list_coupons)."
      • addedInput schema / properties / discount_percent / description
        Added value: +"A new percentage off the base price (0-100)."
      • addedInput schema / properties / dpop_token / description
        Added value: +"Proof that the caller holds the operator's npub: the grant\nenvelope from receive_npub_proof, or the raw JSON of a kind-27235\nNostr event signed by the operator whose `u` tag is this tool's name."
      • addedInput schema / properties / name / description
        Added value: +"A new code for patrons to type."
      • addedInput schema / properties / tool_ids / description
        Added value: +"The tools the coupon discounts: tool ids or MCP tool names,\n[\"*\"] for every paid tool, [] to unbind it."
      • addedInput schema / properties / total_uses / description
        Added value: +"A new number of redemptions across all patrons."
      • addedInput schema / properties / uses_per_patron / description
        Added value: +"A new number of discounted calls per patron."
      • addedInput schema / properties / valid_from / description
        Added value: +"A new ISO-8601 datetime when the coupon becomes active."
      • addedInput schema / properties / valid_until / description
        Added value: +"A new ISO-8601 datetime when the coupon expires."
    • Changedschwab_update_operator_credential1 field changed
      • changedInput schema / properties / dpop_token / description
        Previous value: -"Operator proof for this tool."New value: +"Proof that the caller holds npub: the grant envelope from\nreceive_npub_proof, or the raw JSON of a kind-27235 Nostr event signed\nby npub whose `u` tag is this tool's name."
    • Changedschwab_update_patron_credential1 field changed
      • changedInput schema / properties / dpop_token / description
        Previous value: -"Raw JSON of a kind-27235 Nostr event signed by npub —\nnot base64, not NIP-98 'Authorization: Nostr <b64>' framing. Its\n`u` tag must hold THIS tool's exact name (from tools/list), not\nthe endpoint URL; content:\"\", created_at within 60s of now, and a\nrandom `nonce` tag recommended. Or a cached dpop_token phrase."New value: +"Proof that the caller holds npub: the grant envelope from\nreceive_npub_proof, or the raw JSON of a kind-27235 Nostr event signed\nby npub whose `u` tag is this tool's name."
  2. 1 tool update
    • Addedschwab_request_echo
  3. 2 tool updates
    • Changedschwab_mint_coupon1 field changed
      • addedInput schema / properties / tool_ids
        Added value: +{
        +  "anyOf": [
        +    {
        +      "items": {
        +        "type": "string"
        +      },
        +      "type": "array"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "description": "The tools this coupon discounts — tool ids or MCP\ntool names, or ``[\"*\"]`` for every tool priced above zero."
        +}
    • Changedschwab_update_coupon1 field changed
      • addedInput schema / properties / tool_ids
        Added value: +{
        +  "anyOf": [
        +    {
        +      "items": {
        +        "type": "string"
        +      },
        +      "type": "array"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null
        +}
  4. 1 tool update
    • Changedschwab_check_proof_status1 field changed
      • changedInput schema / properties / dpop_token / description
        Previous value: -"Required. The dpop_token phrase returned by\n``request_npub_proof`` / ``receive_npub_proof``."New value: +"Required. The grant envelope returned by\n``receive_npub_proof``."
  5. 1 tool update
    • Addedschwab_delete_operator_credential
  6. 1 tool update
    • Addedschwab_update_operator_credential
  7. 1 tool update
    • Changedschwab_request_npub_proof2 fields changed
      • addedInput schema / properties / reason
        Added value: +{
        +  "default": "",
        +  "description": "Optional. A human-readable purpose for the request\n(\"I'm working on your request XYZ and need the Operator to do\nABC for you\"). Signed into the provenance attestation and shown\nin the DM, so the recipient sees *why* they are being asked —\nespecially useful when the signer is unknown to them.",
        +  "type": "string"
        +}
      • addedInput schema / properties / verify_at
        Added value: +{
        +  "default": "",
        +  "description": "Optional. A free-form statement of WHERE you (the\ninitiating agent) already showed this proof's one-time code to\nthe user — a URL, or \"your Claude.ai conversation\", \"the Grok\nsession\". The OAuth 2.0 Device Grant ``verification_uri``,\ngeneralized: the user approves only if the code in the DM matches\nthe one you displayed there, so an unsolicited request they've\nnever seen is refused. Signed into the attestation.",
        +  "type": "string"
        +}
  8. 12 tool updates
    • Changedschwab_account_statement1 field changed
      • changedInput schema / properties / dpop_token / description
        Previous value: -"A kind-27235 Nostr event signed by npub for this tool."New value: +"Raw JSON of a kind-27235 Nostr event signed by npub —\nnot base64, not NIP-98 'Authorization: Nostr <b64>' framing. Its\n`u` tag must hold THIS tool's exact name (from tools/list), not\nthe endpoint URL; content:\"\", created_at within 60s of now, and a\nrandom `nonce` tag recommended. Or a cached dpop_token phrase."
    • Changedschwab_account_statement_infographic1 field changed
      • changedInput schema / properties / dpop_token / description
        Previous value: -"A kind-27235 Nostr event signed by npub for this tool."New value: +"Raw JSON of a kind-27235 Nostr event signed by npub —\nnot base64, not NIP-98 'Authorization: Nostr <b64>' framing. Its\n`u` tag must hold THIS tool's exact name (from tools/list), not\nthe endpoint URL; content:\"\", created_at within 60s of now, and a\nrandom `nonce` tag recommended. Or a cached dpop_token phrase."
    • Changedschwab_begin_oauth1 field changed
      • changedInput schema / properties / dpop_token / description
        Previous value: -"A kind-27235 Nostr event signed by npub for this tool."New value: +"Raw JSON of a kind-27235 Nostr event signed by npub —\nnot base64, not NIP-98 'Authorization: Nostr <b64>' framing.\nIts `u` tag must hold THIS tool's exact name (from\ntools/list), not the endpoint URL; content:\"\", created_at\nwithin 60s of now, and a random `nonce` tag recommended. Or a\ncached dpop_token phrase."
    • Changedschwab_check_balance1 field changed
      • changedInput schema / properties / dpop_token / description
        Previous value: -"A kind-27235 Nostr event signed by npub for this tool."New value: +"Raw JSON of a kind-27235 Nostr event signed by npub —\nnot base64, not NIP-98 'Authorization: Nostr <b64>' framing. Its\n`u` tag must hold THIS tool's exact name (from tools/list), not\nthe endpoint URL; content:\"\", created_at within 60s of now, and a\nrandom `nonce` tag recommended. Or a cached dpop_token phrase."
    • Changedschwab_check_oauth_status1 field changed
      • changedInput schema / properties / dpop_token / description
        Previous value: -"A kind-27235 Nostr event signed by npub for this tool."New value: +"Raw JSON of a kind-27235 Nostr event signed by npub —\nnot base64, not NIP-98 'Authorization: Nostr <b64>' framing.\nIts `u` tag must hold THIS tool's exact name (from\ntools/list), not the endpoint URL; content:\"\", created_at\nwithin 60s of now, and a random `nonce` tag recommended. Or a\ncached dpop_token phrase."
    • Changedschwab_check_payment1 field changed
      • changedInput schema / properties / dpop_token / description
        Previous value: -"A kind-27235 Nostr event signed by npub for this tool."New value: +"Raw JSON of a kind-27235 Nostr event signed by npub —\nnot base64, not NIP-98 'Authorization: Nostr <b64>' framing. Its\n`u` tag must hold THIS tool's exact name (from tools/list), not\nthe endpoint URL; content:\"\", created_at within 60s of now, and a\nrandom `nonce` tag recommended. Or a cached dpop_token phrase."
    • Changedschwab_delete_patron_credential1 field changed
      • changedInput schema / properties / dpop_token / description
        Previous value: -"A kind-27235 Nostr event signed by npub for this tool."New value: +"Raw JSON of a kind-27235 Nostr event signed by npub —\nnot base64, not NIP-98 'Authorization: Nostr <b64>' framing. Its\n`u` tag must hold THIS tool's exact name (from tools/list), not\nthe endpoint URL; content:\"\", created_at within 60s of now, and a\nrandom `nonce` tag recommended. Or a cached dpop_token phrase."
    • Changedschwab_forget_credentials1 field changed
      • changedInput schema / properties / dpop_token / description
        Previous value: -"A kind-27235 Nostr event signed by npub for this tool."New value: +"Raw JSON of a kind-27235 Nostr event signed by npub —\nnot base64, not NIP-98 'Authorization: Nostr <b64>' framing. Its\n`u` tag must hold THIS tool's exact name (from tools/list), not\nthe endpoint URL; content:\"\", created_at within 60s of now, and a\nrandom `nonce` tag recommended. Or a cached dpop_token phrase."
    • Changedschwab_get_patron_credential_fields1 field changed
      • changedInput schema / properties / dpop_token / description
        Previous value: -"A kind-27235 Nostr event signed by npub for this tool."New value: +"Raw JSON of a kind-27235 Nostr event signed by npub —\nnot base64, not NIP-98 'Authorization: Nostr <b64>' framing. Its\n`u` tag must hold THIS tool's exact name (from tools/list), not\nthe endpoint URL; content:\"\", created_at within 60s of now, and a\nrandom `nonce` tag recommended. Or a cached dpop_token phrase."
    • Changedschwab_purchase_credits1 field changed
      • changedInput schema / properties / dpop_token / description
        Previous value: -"A kind-27235 Nostr event signed by npub for this tool."New value: +"Raw JSON of a kind-27235 Nostr event signed by npub —\nnot base64, not NIP-98 'Authorization: Nostr <b64>' framing. Its\n`u` tag must hold THIS tool's exact name (from tools/list), not\nthe endpoint URL; content:\"\", created_at within 60s of now, and a\nrandom `nonce` tag recommended. Or a cached dpop_token phrase."
    • Changedschwab_report_issue1 field changed
      • changedInput schema / properties / dpop_token / description
        Previous value: -"A kind-27235 Nostr event signed by npub for this tool."New value: +"Raw JSON of a kind-27235 Nostr event signed by npub —\nnot base64, not NIP-98 'Authorization: Nostr <b64>' framing. Its\n`u` tag must hold THIS tool's exact name (from tools/list), not\nthe endpoint URL; content:\"\", created_at within 60s of now, and a\nrandom `nonce` tag recommended. Or a cached dpop_token phrase."
    • Changedschwab_update_patron_credential1 field changed
      • changedInput schema / properties / dpop_token / description
        Previous value: -"A kind-27235 Nostr event signed by npub for this tool."New value: +"Raw JSON of a kind-27235 Nostr event signed by npub —\nnot base64, not NIP-98 'Authorization: Nostr <b64>' framing. Its\n`u` tag must hold THIS tool's exact name (from tools/list), not\nthe endpoint URL; content:\"\", created_at within 60s of now, and a\nrandom `nonce` tag recommended. Or a cached dpop_token phrase."
  9. 1 tool update
    • Addedschwab_report_issue
  10. 61 tool updates
    • First observedschwab_account_statement
    • First observedschwab_account_statement_infographic
    • First observedschwab_adoption_status
    • First observedschwab_begin_oauth
    • First observedschwab_check_authority_balance
    • First observedschwab_check_balance
    • First observedschwab_check_oauth_status
    • First observedschwab_check_payment
    • First observedschwab_check_price
    • First observedschwab_check_proof_status
    • First observedschwab_delete_coupon
    • First observedschwab_delete_patron_credential
    • First observedschwab_forget_coupon
    • First observedschwab_forget_credentials
    • First observedschwab_get_account_numbers
    • First observedschwab_get_brokerage_balances
    • First observedschwab_get_brokerage_order
    • First observedschwab_get_brokerage_orders
    • First observedschwab_get_brokerage_positions
    • First observedschwab_get_brokerage_transaction
    • First observedschwab_get_brokerage_transactions
    • First observedschwab_get_market_hours
    • First observedschwab_get_market_movers
    • First observedschwab_get_nostr_profile
    • First observedschwab_get_notarization_proof
    • First observedschwab_get_operator_onboarding_status
    • First observedschwab_get_option_chain
    • First observedschwab_get_patron_credential_fields
    • First observedschwab_get_patron_onboarding_status
    • First observedschwab_get_price_history
    • First observedschwab_get_pricing_model
    • First observedschwab_get_stock_quote
    • First observedschwab_list_canonical_identities
    • First observedschwab_list_constraint_types
    • First observedschwab_list_coupons
    • First observedschwab_list_my_coupons
    • First observedschwab_list_notarizations
    • First observedschwab_mint_coupon
    • First observedschwab_notarize_ledger
    • First observedschwab_oracle_about
    • First observedschwab_oracle_get_tax_rate
    • First observedschwab_oracle_how_to_join
    • First observedschwab_oracle_lookup_member
    • First observedschwab_oracle_network_advisory
    • First observedschwab_publish_nostr_profile
    • First observedschwab_purchase_credits
    • First observedschwab_receive_credentials
    • First observedschwab_receive_npub_proof
    • First observedschwab_redeem_coupon
    • First observedschwab_request_adoption
    • First observedschwab_request_credential_channel
    • First observedschwab_request_npub_proof
    • First observedschwab_reset_pricing_model
    • First observedschwab_restore_credits
    • First observedschwab_restore_neon_schema
    • First observedschwab_search_instruments
    • First observedschwab_service_status
    • First observedschwab_session_status
    • First observedschwab_set_pricing_model
    • First observedschwab_update_coupon
    • First observedschwab_update_patron_credential

Related MCP Connectors

Related MCP Servers

  • F
    license
    A
    quality
    C
    maintenance
    MCP server for read-only access to Charles Schwab market data and account information. It provides quotes, price history, technical indicators, fundamentals, option chains, market hours, movers, and account/transaction data via the official Schwab API.
    10
    -
  • -
    license
    Not graded
    quality
    Not graded
    maintenance
    Real-time financial market data MCP server. Stocks, crypto, technicals, sentiment, FDA calendar. No API keys required.
    -
  • A
    license
    C
    quality
    D
    maintenance
    An MCP server providing stock market data and trading capabilities through multiple broker APIs including Robinhood and Schwab.
    100
    50 PyPI
    11
    Apache 2.0
  • F
    license
    A
    quality
    D
    maintenance
    A local MCP server that exposes the Charles Schwab Individual Trader API (accounts, quotes, orders, transactions) as MCP tools.
    10
    1
    -
Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.