Skip to main content
Glama

schwab_get_account_numbers

List Schwab account numbers and their hash identifiers.

Call after completing OAuth. Returns accounts with hash values needed for brokerage data tools. Then call update_patron_credential(field="account_hash", value=<hash>) to set your preferred account.

Free (no api_sats deducted) but proof-gated: the caller must prove Schnorr-control of npub via request_npub_proof + receive_npub_proof first, then pass the resulting token here. Without the proof check, an attacker who knew a patron's public npub could fetch that patron's Schwab account hashes (IDOR).

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
npubNoRequired. Your Nostr public key (npub1...) for credit billing.
dpop_tokenNoSchnorr proof token issued by request/receive_npub_proof for capability ``get_account_numbers``.

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
resultYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A4.6/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description bears full responsibility. It discloses the security mechanism (proof-gated, prevents IDOR), cost (free), and the fact that it returns hash values. The behavioral context is fully transparent.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is concise with three paragraphs, each efficiently conveying a distinct aspect: purpose, usage prerequisites, and security rationale. No superfluous sentences. The critical information is front-loaded.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description covers the essential steps: OAuth first, proof requirement, and subsequent call. Given the existence of an output schema, the description does not need to detail return values. It is nearly complete, though it could mention that the tool returns a list of account numbers and hashes.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, but the description adds value by explaining the purpose of each parameter (npub for billing, dpop_token as proof token from sibling tools) beyond the schema's brief descriptions. A score of 4 reflects this added clarity.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description starts with a clear verb+resource: 'List Schwab account numbers and their hash identifiers.' It immediately conveys the tool's purpose and distinguishes it from sibling tools like schwab_get_brokerage_balances by positioning this as a prerequisite for brokerage data tools.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explicitly states when to use: 'Call after completing OAuth.' It provides prerequisites (Schnorr proof) and a follow-up action (call update_patron_credential). However, it does not explicitly state when not to use or name alternatives, but the context is clear.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.