LeashIndex Get the report

Index / payments

io.github.lonniev/schwab-mcp

io-github-lonniev-schwab-mcp declares 65 capabilities across 65 tools, with 3 critical issues.

98/100 exposureHigh exposure

Manifest recorded 2026-10-16 from tools/list on https://schwab-mcp.fastmcp.app/mcp, published in the official MCP registry as io.github.lonniev/schwab-mcp 0.13.6. The date changes only when the manifest does. Not verified by a maintainer.

Issues

These describe what this server's manifest declares. A product can provide controls that MCP has no way to express — token revocation, an admin console, audit logs — and this page cannot see them. The absence of a declaration is not evidence that a control is absent.

critical · no-revocation · All 65 tools

65 of 65 tools declare no way for the customer to switch them off once granted. This applies to every tool because MCP has no field in which to declare a revocation mechanism; the product may provide one outside MCP that a manifest cannot show.

critical · irreversible-uncapped · 12 of 65 tools

12 tools are classified as irreversible and declare no limit.

critical · uncapped-spend · 2 of 65 tools

2 tools are classified as moving money and declare no dollar limit. A cap on the number of payments does not bound their amount.

high · no-expiry · All 65 tools

65 of 65 tools declare no expiry. This applies to every tool because MCP has no field in which to declare an expiry; the product may provide one outside MCP that a manifest cannot show.

high · no-audit-trail · All 65 tools

65 of 65 tools declare no record of their actions that the customer can read. This applies to every tool because MCP has no field in which to declare an audit requirement; the product may provide one outside MCP that a manifest cannot show.

high · uncapped-write · 13 of 65 tools

13 tools can modify data and declare no limit.

low · uncapped-read · 40 of 65 tools

40 tools can read data and declare no limit.

Declared capabilities

How each tool was read. declared means the server's own annotation said so — self-reported and unverified. inferred is from the tool's name. assumed means nothing indicated either way.

ToolRead asBasis
schwab_check_balanceread declared
schwab_purchase_creditspay inferred
schwab_check_paymentpay inferred
schwab_restore_creditswrite assumed
schwab_account_statementread declared
schwab_account_statement_infographicread declared
schwab_report_issuewrite assumed
schwab_service_statusread declared
schwab_request_echoread declared
schwab_get_operator_onboarding_statusread declared
schwab_get_patron_onboarding_statusread declared
schwab_session_statusread declared
schwab_request_credential_channelwrite inferred
schwab_receive_credentialsdestructive declared
schwab_forget_credentialsdestructive declared
schwab_update_patron_credentialwrite inferred
schwab_update_operator_credentialwrite inferred
schwab_delete_patron_credentialdestructive declared
schwab_delete_operator_credentialdestructive declared
schwab_get_patron_credential_fieldsread declared
schwab_begin_oauthwrite assumed
schwab_check_oauth_statusread inferred
schwab_request_npub_proofwrite inferred
schwab_receive_npub_proofdestructive declared
schwab_check_proof_statusread declared
schwab_oracle_how_to_joinread declared
schwab_oracle_get_tax_rateread declared
schwab_oracle_lookup_memberread declared
schwab_oracle_aboutread declared
schwab_oracle_network_advisoryread declared
schwab_check_authority_balanceread declared
schwab_get_pricing_modelread declared
schwab_set_pricing_modeldestructive declared
schwab_reset_pricing_modeldestructive declared
schwab_request_adoptionwrite inferred
schwab_adoption_statusread declared
schwab_restore_neon_schemawrite assumed
schwab_list_canonical_identitiesread declared
schwab_get_nostr_profileread declared
schwab_publish_nostr_profiledestructive declared
schwab_check_priceread declared
schwab_list_constraint_typesread declared
schwab_mint_couponwrite inferred
schwab_list_couponsread declared
schwab_update_couponwrite inferred
schwab_delete_coupondestructive declared
schwab_redeem_couponwrite assumed
schwab_list_my_couponsread declared
schwab_forget_coupondestructive declared
schwab_notarize_ledgerwrite assumed
schwab_get_notarization_proofread declared
schwab_list_notarizationsread declared
schwab_get_account_numbersread declared
schwab_get_brokerage_positionsread declared
schwab_get_brokerage_balancesread declared
schwab_get_stock_quoteread declared
schwab_get_option_chainread declared
schwab_get_price_historyread declared
schwab_get_market_moversread declared
schwab_get_market_hoursread declared
schwab_search_instrumentsread declared
schwab_get_brokerage_ordersread declared
schwab_get_brokerage_orderread declared
schwab_get_brokerage_transactionsread declared
schwab_get_brokerage_transactionread declared

Record history

Earlier records for this server. A correction is added here, never written over the record it corrects.

RecordedExposureSource
2026-10-1197 tools/list on https://schwab-mcp.fastmcp.app/mcp, published in the official MCP registry as io.github.lonniev/schwab-mcp 0.13.6
Answering this question about your own agent? The self-serve stack report applies the same reading to your own stack or server and gives you a dated document you can hand to a customer's security review. It is generated in your browser, with nobody to wait for. Buying one does not change this page, its score or its place in the index — see Independence.
Maintain this server? If this page misreads your manifest, or your server has changed, submit its current tools/list response and it will be re-scored and dated. Corrections are published alongside the original, not in place of it.