schwab-mcp
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
Scored across 65 tools
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.
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.
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.
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.
47 tool updates
- Changed
schwab_account_statement1 field changed- changed
Input schema / properties / dpop_token / descriptionPrevious 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."
- Changed
schwab_account_statement_infographic1 field changed- changed
Input schema / properties / dpop_token / descriptionPrevious 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."
- Changed
schwab_adoption_status2 fields changed- added
Input schema / properties / authority_npub / descriptionAdded value: +"The npub of the Authority the request was sent to." - added
Input schema / properties / dpop_token / descriptionAdded 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."
- Changed
schwab_begin_oauth1 field changed- changed
Input schema / properties / dpop_token / descriptionPrevious 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."
- Changed
schwab_check_balance1 field changed- changed
Input schema / properties / dpop_token / descriptionPrevious 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."
- Changed
schwab_check_oauth_status1 field changed- changed
Input schema / properties / dpop_token / descriptionPrevious 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."
- Changed
schwab_check_payment1 field changed- changed
Input schema / properties / dpop_token / descriptionPrevious 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."
- Changed
schwab_check_price2 fields changed- added
Input schema / properties / dpop_token / descriptionAdded 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." - added
Input schema / properties / npub / descriptionAdded value: +"Optional patron npub; with it, the preview includes that\npatron's coupons and constraint effects."
- Changed
schwab_check_proof_status1 field changed- changed
Input schema / properties / dpop_token / descriptionPrevious 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."
- Changed
schwab_delete_coupon2 fields changed- added
Input schema / properties / coupon_id / descriptionAdded value: +"The id of the coupon to delete (from list_coupons)." - added
Input schema / properties / dpop_token / descriptionAdded 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."
- Changed
schwab_delete_operator_credential1 field changed- changed
Input schema / properties / dpop_token / descriptionPrevious 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."
- Changed
schwab_delete_patron_credential1 field changed- changed
Input schema / properties / dpop_token / descriptionPrevious 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."
- Changed
schwab_forget_coupon3 fields changed- added
Input schema / properties / coupon_id / descriptionAdded value: +"The id of the redeemed coupon to remove (from\nlist_my_coupons)." - added
Input schema / properties / dpop_token / descriptionAdded 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." - added
Input schema / properties / npub / descriptionAdded value: +"The patron's Nostr public key (npub1...)."
- Changed
schwab_forget_credentials1 field changed- changed
Input schema / properties / dpop_token / descriptionPrevious 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."
- Changed
schwab_get_account_numbers2 fields changed- changed
Input schema / properties / dpop_token / descriptionPrevious 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." - changed
Input schema / properties / npub / descriptionPrevious 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."
- Changed
schwab_get_brokerage_balances2 fields changed- added
Input schema / properties / dpop_token / descriptionAdded 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." - changed
Input schema / properties / npub / descriptionPrevious 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."
- Changed
schwab_get_brokerage_order2 fields changed- added
Input schema / properties / dpop_token / descriptionAdded 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." - changed
Input schema / properties / npub / descriptionPrevious 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."
- Changed
schwab_get_brokerage_orders2 fields changed- added
Input schema / properties / dpop_token / descriptionAdded 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." - changed
Input schema / properties / npub / descriptionPrevious 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."
- Changed
schwab_get_brokerage_positions2 fields changed- added
Input schema / properties / dpop_token / descriptionAdded 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." - changed
Input schema / properties / npub / descriptionPrevious 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."
- Changed
schwab_get_brokerage_transaction2 fields changed- added
Input schema / properties / dpop_token / descriptionAdded 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." - changed
Input schema / properties / npub / descriptionPrevious 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."
- Changed
schwab_get_brokerage_transactions2 fields changed- added
Input schema / properties / dpop_token / descriptionAdded 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." - changed
Input schema / properties / npub / descriptionPrevious 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."
- Changed
schwab_get_market_hours2 fields changed- added
Input schema / properties / dpop_token / descriptionAdded 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." - changed
Input schema / properties / npub / descriptionPrevious 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."
- Changed
schwab_get_market_movers2 fields changed- added
Input schema / properties / dpop_token / descriptionAdded 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." - changed
Input schema / properties / npub / descriptionPrevious 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."
- Changed
schwab_get_nostr_profile1 field changed- added
Input schema / properties / npub / descriptionAdded value: +"The Nostr public key (npub1...) whose profile to read."
- Changed
schwab_get_option_chain2 fields changed- added
Input schema / properties / dpop_token / descriptionAdded 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." - changed
Input schema / properties / npub / descriptionPrevious 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."
- Changed
schwab_get_patron_credential_fields1 field changed- changed
Input schema / properties / dpop_token / descriptionPrevious 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."
- Changed
schwab_get_patron_onboarding_status1 field changed- changed
Input schema / properties / dpop_token / descriptionPrevious 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."
- Changed
schwab_get_price_history2 fields changed- added
Input schema / properties / dpop_token / descriptionAdded 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." - changed
Input schema / properties / npub / descriptionPrevious 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."
- Changed
schwab_get_stock_quote2 fields changed- added
Input schema / properties / dpop_token / descriptionAdded 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." - changed
Input schema / properties / npub / descriptionPrevious 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."
- Changed
schwab_list_coupons1 field changed- added
Input schema / properties / dpop_token / descriptionAdded 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."
- Changed
schwab_list_my_coupons2 fields changed- added
Input schema / properties / dpop_token / descriptionAdded 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." - added
Input schema / properties / npub / descriptionAdded value: +"The patron's Nostr public key (npub1...)."
- Changed
schwab_mint_coupon1 field changed- added
Input schema / properties / dpop_token / descriptionAdded 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."
- Changed
schwab_oracle_lookup_member1 field changed- added
Input schema / properties / npub / descriptionAdded value: +"The Nostr public key (npub1...) of the member to look up."
- Changed
schwab_purchase_credits1 field changed- changed
Input schema / properties / dpop_token / descriptionPrevious 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."
- Changed
schwab_receive_credentials1 field changed- changed
Input schema / properties / dpop_token / descriptionPrevious 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."
- Changed
schwab_receive_npub_proof1 field changed- changed
Input schema / properties / dpop_token / descriptionPrevious 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."
- Changed
schwab_redeem_coupon3 fields changed- added
Input schema / properties / code / descriptionAdded value: +"The coupon code the operator shared." - added
Input schema / properties / dpop_token / descriptionAdded 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." - added
Input schema / properties / npub / descriptionAdded value: +"The patron's Nostr public key (npub1...)."
- Changed
schwab_report_issue1 field changed- changed
Input schema / properties / dpop_token / descriptionPrevious 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."
- Changed
schwab_request_adoption1 field changed- changed
Input schema / properties / dpop_token / descriptionPrevious 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."
- Changed
schwab_reset_pricing_model1 field changed- added
Input schema / properties / dpop_token / descriptionAdded 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."
- Changed
schwab_restore_credits1 field changed- changed
Input schema / properties / dpop_token / descriptionPrevious 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."
- Changed
schwab_restore_neon_schema1 field changed- added
Input schema / properties / dpop_token / descriptionAdded 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."
- Changed
schwab_search_instruments2 fields changed- added
Input schema / properties / dpop_token / descriptionAdded 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." - changed
Input schema / properties / npub / descriptionPrevious 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."
- Changed
schwab_set_pricing_model2 fields changed- added
Input schema / properties / dpop_token / descriptionAdded 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." - added
Input schema / properties / model_json / descriptionAdded value: +"The complete pricing model as a JSON object; it\nreplaces the active model."
- Changed
schwab_update_coupon11 fields changed- added
Input schema / properties / clear_total_uses / descriptionAdded value: +"True makes total redemptions unlimited." - added
Input schema / properties / clear_uses_per_patron / descriptionAdded value: +"True makes discounted calls per patron unlimited." - added
Input schema / properties / coupon_id / descriptionAdded value: +"The id of the coupon to change (from list_coupons)." - added
Input schema / properties / discount_percent / descriptionAdded value: +"A new percentage off the base price (0-100)." - added
Input schema / properties / dpop_token / descriptionAdded 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." - added
Input schema / properties / name / descriptionAdded value: +"A new code for patrons to type." - added
Input schema / properties / tool_ids / descriptionAdded value: +"The tools the coupon discounts: tool ids or MCP tool names,\n[\"*\"] for every paid tool, [] to unbind it." - added
Input schema / properties / total_uses / descriptionAdded value: +"A new number of redemptions across all patrons." - added
Input schema / properties / uses_per_patron / descriptionAdded value: +"A new number of discounted calls per patron." - added
Input schema / properties / valid_from / descriptionAdded value: +"A new ISO-8601 datetime when the coupon becomes active." - added
Input schema / properties / valid_until / descriptionAdded value: +"A new ISO-8601 datetime when the coupon expires."
- Changed
schwab_update_operator_credential1 field changed- changed
Input schema / properties / dpop_token / descriptionPrevious 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."
- Changed
schwab_update_patron_credential1 field changed- changed
Input schema / properties / dpop_token / descriptionPrevious 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."
1 tool update
- Added
schwab_request_echo
2 tool updates
- Changed
schwab_mint_coupon1 field changed- added
Input schema / properties / tool_idsAdded 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." +}
- Changed
schwab_update_coupon1 field changed- added
Input schema / properties / tool_idsAdded value: +{ + "anyOf": [ + { + "items": { + "type": "string" + }, + "type": "array" + }, + { + "type": "null" + } + ], + "default": null +}
1 tool update
- Changed
schwab_check_proof_status1 field changed- changed
Input schema / properties / dpop_token / descriptionPrevious 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``."
1 tool update
- Added
schwab_delete_operator_credential
1 tool update
- Added
schwab_update_operator_credential
1 tool update
- Changed
schwab_request_npub_proof2 fields changed- added
Input schema / properties / reasonAdded 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" +} - added
Input schema / properties / verify_atAdded 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" +}
12 tool updates
- Changed
schwab_account_statement1 field changed- changed
Input schema / properties / dpop_token / descriptionPrevious 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."
- Changed
schwab_account_statement_infographic1 field changed- changed
Input schema / properties / dpop_token / descriptionPrevious 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."
- Changed
schwab_begin_oauth1 field changed- changed
Input schema / properties / dpop_token / descriptionPrevious 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."
- Changed
schwab_check_balance1 field changed- changed
Input schema / properties / dpop_token / descriptionPrevious 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."
- Changed
schwab_check_oauth_status1 field changed- changed
Input schema / properties / dpop_token / descriptionPrevious 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."
- Changed
schwab_check_payment1 field changed- changed
Input schema / properties / dpop_token / descriptionPrevious 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."
- Changed
schwab_delete_patron_credential1 field changed- changed
Input schema / properties / dpop_token / descriptionPrevious 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."
- Changed
schwab_forget_credentials1 field changed- changed
Input schema / properties / dpop_token / descriptionPrevious 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."
- Changed
schwab_get_patron_credential_fields1 field changed- changed
Input schema / properties / dpop_token / descriptionPrevious 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."
- Changed
schwab_purchase_credits1 field changed- changed
Input schema / properties / dpop_token / descriptionPrevious 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."
- Changed
schwab_report_issue1 field changed- changed
Input schema / properties / dpop_token / descriptionPrevious 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."
- Changed
schwab_update_patron_credential1 field changed- changed
Input schema / properties / dpop_token / descriptionPrevious 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."
1 tool update
- Added
schwab_report_issue
61 tool updates
- First observed
schwab_account_statement - First observed
schwab_account_statement_infographic - First observed
schwab_adoption_status - First observed
schwab_begin_oauth - First observed
schwab_check_authority_balance - First observed
schwab_check_balance - First observed
schwab_check_oauth_status - First observed
schwab_check_payment - First observed
schwab_check_price - First observed
schwab_check_proof_status - First observed
schwab_delete_coupon - First observed
schwab_delete_patron_credential - First observed
schwab_forget_coupon - First observed
schwab_forget_credentials - First observed
schwab_get_account_numbers - First observed
schwab_get_brokerage_balances - First observed
schwab_get_brokerage_order - First observed
schwab_get_brokerage_orders - First observed
schwab_get_brokerage_positions - First observed
schwab_get_brokerage_transaction - First observed
schwab_get_brokerage_transactions - First observed
schwab_get_market_hours - First observed
schwab_get_market_movers - First observed
schwab_get_nostr_profile - First observed
schwab_get_notarization_proof - First observed
schwab_get_operator_onboarding_status - First observed
schwab_get_option_chain - First observed
schwab_get_patron_credential_fields - First observed
schwab_get_patron_onboarding_status - First observed
schwab_get_price_history - First observed
schwab_get_pricing_model - First observed
schwab_get_stock_quote - First observed
schwab_list_canonical_identities - First observed
schwab_list_constraint_types - First observed
schwab_list_coupons - First observed
schwab_list_my_coupons - First observed
schwab_list_notarizations - First observed
schwab_mint_coupon - First observed
schwab_notarize_ledger - First observed
schwab_oracle_about - First observed
schwab_oracle_get_tax_rate - First observed
schwab_oracle_how_to_join - First observed
schwab_oracle_lookup_member - First observed
schwab_oracle_network_advisory - First observed
schwab_publish_nostr_profile - First observed
schwab_purchase_credits - First observed
schwab_receive_credentials - First observed
schwab_receive_npub_proof - First observed
schwab_redeem_coupon - First observed
schwab_request_adoption - First observed
schwab_request_credential_channel - First observed
schwab_request_npub_proof - First observed
schwab_reset_pricing_model - First observed
schwab_restore_credits - First observed
schwab_restore_neon_schema - First observed
schwab_search_instruments - First observed
schwab_service_status - First observed
schwab_session_status - First observed
schwab_set_pricing_model - First observed
schwab_update_coupon - First observed
schwab_update_patron_credential
Related MCP Connectors
Hosted MCP server for SEC, FRED, Polymarket, Deribit, OKX, and FMP.
FastMCP server for posting formatted content to X (Twitter) — Tollbooth-monetized, DPYC-native
MCP server for Financial Modeling Prep API with 250+ financial data tools
Production MCP server for US equity and options intelligence: real-time IV radar, Monte Carlo simulation, options pressure, strategy backtesting, AI prediction, pre-trade risk analysis, and automated stock research reports.
Related MCP Servers
- FlicenseAqualityCmaintenanceMCP 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-
- -licenseNot gradedqualityNot gradedmaintenanceReal-time financial market data MCP server. Stocks, crypto, technicals, sentiment, FDA calendar. No API keys required.-
- AlicenseCqualityDmaintenanceAn MCP server providing stock market data and trading capabilities through multiple broker APIs including Robinhood and Schwab.10050 PyPI11Apache 2.0
- FlicenseAqualityDmaintenanceA local MCP server that exposes the Charles Schwab Individual Trader API (accounts, quotes, orders, transactions) as MCP tools.101-
Glama MCP Gateway
Add one secure layer between your agents and this server.