Robin Saige we check the tools AI agents call

schwab mcp

io.github.lonniev/schwab-mcp

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

— the operator's own registry description reported

Publisher io.github.lonniev · first seen 2026-08-12 · endpoint https://schwab-mcp.fastmcp.app/mcp

allow
verdict
rich-solo
cluster
ok_tools
answers
63
tools served

Dependency rating derived

allow
allow — alive & usable · action ● · V n/a
allow — because answers ●, 63 tools legible (band A) ●, no confirmed drift in 2 probes ●; not yet checked: truth (0 runs)

Cluster rich-solo · distinctiveness 0.695 (unusual). Every figure is a percentile or class within the 11,094-server censussee the whole spectrum.

Does it answer? Q1 · observed
answersalive_tools
latency222 ms
vs populationtypical
protocolcurrent
authopen
Can it be used? Q4 · observed
tools63
vs populationhigh
capabilities6
harnessA
Did it hold when checked? Q3–Q4 · derived
identitysolo
servers on its host1
verifiabilityunassessed
duplicate inventoryno
drift events0
answers trueno primary

🔏 Signed receipt rr_f6189381cfb4bc29f9e14267 · ed25519 · key rs-rcpt-2026-08 — this rating is tamper-evident; an agent gets the full signature from check_server and can verify it against the published key.

Q1Does it answer?alive & usable — 2 probes ●evidence ↓
Q2What is it?action ● evidence ↓
Q3Can it be checked?V n/a for this kind ◐evidence ↓
Q4Did it hold?harness A · truth not yet run · no drift ●evidence ↓
Q5What company does it keep?rich-solo · 1 on its host (context, not verdict) ◐evidence ↓

● observed · ◐ derived · ○ reported — the verdict synthesizes Q1–Q4; Q5 is context. Methodology →

History observed

Every probe we made, oldest → newest (2 shown, 2026-08-12 → 2026-08-14). Green answered · amber answered-but-walled · red no useful answer. A gap in our cadence is a gap in coverage, not evidence about the server.

changelog (1 events)
datetypewhat changed
2026-08-12outcomefirst probe: ok_tools

What kind of tools these are derived

Verification only means something relative to a tool's NATURE — an email-sender has no "true answer", a generator has no answer key. Classification evidence: classified from tool names/descriptions/annotations WE OBSERVED. What checking applies to each kind (the full methodology →):

naturetoolsmeaning what checking applies
action28changes the worldno true answer exists; we check the CONTRACT (destructive/read-only/idempotent declarations, error legibility) and never fire real actions
retrieval-public25serves public factstruth-checkable against a public source — the V-ladder applies in full
unclassified4not classifiable from its textTier-1 only until its tools describe themselves
generative3creates contentno answer key exists; disclosure + stability checks, never truth verdicts
computational1deterministic transformsself-checkable by re-computation and known-answer tests
predictive1claims about the futurescoreable only in retrospect — the archive scores yesterday's predictions against today's outcome
retrieval-private1serves the caller's own dataoutside truth-checking is impossible BY NATURE, not by failure — the operator-invited pathway applies

Tools last seen observed

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 schwab_check_price schwab_check_proof_status schwab_delete_coupon schwab_delete_patron_credential schwab_forget_coupon schwab_forget_credentials schwab_get_account_numbers schwab_get_brokerage_balances schwab_get_brokerage_order schwab_get_brokerage_orders schwab_get_brokerage_positions schwab_get_brokerage_transaction schwab_get_brokerage_transactions schwab_get_market_hours schwab_get_market_movers schwab_get_nostr_profile schwab_get_notarization_proof schwab_get_operator_onboarding_status schwab_get_option_chain schwab_get_patron_credential_fields schwab_get_patron_onboarding_status schwab_get_price_history schwab_get_pricing_model schwab_get_stock_quote schwab_list_canonical_identities schwab_list_constraint_types schwab_list_coupons schwab_list_my_coupons schwab_list_notarizations schwab_mint_coupon schwab_notarize_ledger 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

Harness readiness observed

Can an agent's harness pick this tool and call it correctly? Graded on the three things an agent reads — name, description, typed parameters. Band A — an agent can pick and call these reliably.

legibility checktools passingok
name is clear & specific63/63
has a description63/63
description is substantive63/63
parameters are typed63/63
parameters are described37/6337/63

63 of 63 tools graded · 63 with a captured input schema. RS-008, Tier-1 — no domain knowledge, applies to any tool. “Alive” is not the same as “usable”.

Truth checks observed

Not in the Tier-2 trade lane, or not yet checked. Tier-2 re-derives a server's answers against published primary sources — see truth checks.

Protocol conformance observed

2025-06-18
protocol version
session model
3.4.6
server version Schwab MCP

Capabilities: experimental extensions logging prompts resources tools

Drift observed

No confirmed drift on record. Baseline set 2026-08-14; changes appear here after human review.

raw probe records
probed (UTC) outcomehttpmsprotocol
2026-08-14T19:59:44Zok_tools2002222025-06-18
2026-08-12T05:34:57Zok_tools2001922025-06-18

Watch or embed this verdict

verdict badge

Operators: put the live verdict in your README — it updates with every census, links back here, and is a dated observation, never a warranty:

[![Robin Saige verdict](https://robinsaige.com/badge/io.github.lonniev/schwab-mcp.svg)](https://robinsaige.com/s/io.github.lonniev/schwab-mcp)

Depend on it? Subscribe to its change feed — outcome changes and confirmed drift, no account needed. Building on it? The full dossier as JSON — verdict, rating, truth checks, history — stable enough to gate CI on.

← overview