Skip to main content
Glama
JackGuan99

Schwab MCP

by JackGuan99

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault
SCHWAB_CLIENT_IDYesSchwab App Key (Client ID). Required.
SCHWAB_TOKEN_PATHNoPath to the token file.~/.config/schwab-mcp/token.json
SCHWAB_MCP_TIMEOUTNoRequest timeout in seconds.20
SCHWAB_CALLBACK_URLNoOAuth callback URL. Must exactly match the value configured in the Schwab developer app.https://127.0.0.1:8182
SCHWAB_CLIENT_SECRETYesSchwab App Secret (Client Secret). Required.
SCHWAB_MCP_LOG_LEVELNoLog level. Logs are written to stderr only.INFO
SCHWAB_MCP_HTTP_TOKENNoBearer token used for HTTP transport. Required when running in HTTP mode.
SCHWAB_MCP_MASK_ACCOUNTSNoWhether to mask account numbers in output. Set to false to show full account numbers.true

Instructions

Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.

This server publishes no instructions, or was last inspected before Glama recorded them.

Capabilities

Features and capabilities supported by this server

Protocol revision2025-11-25

CapabilityDetails
tools
{
  "listChanged": false
}
prompts
{
  "listChanged": false
}
resources
{
  "subscribe": false,
  "listChanged": false
}
experimental
{}

Tools

Functions exposed to the LLM to take actions

NameDescription
get_auth_statusA

Check whether the Schwab login is valid and when it expires (Schwab requires a new browser login every 7 days). Call this first if other tools report authentication errors.

list_accountsA

List the linked Schwab accounts with type, nickname and key balances (total value, cash, buying power). Use the returned account labels with the other tools.

get_positionsA

Holdings per account: quantity, average cost, market value, unrealized and today's P/L, and weight in the account. Sorted by market value. Set include_quotes=true for live last/mark prices.

get_portfolio_summaryA

One-shot overview across all accounts: total value, cash, today's P/L, unrealized P/L, allocation by asset type, top holdings (merged across accounts) and per-account totals.

get_ordersB

Recent orders (open, filled, cancelled...) with legs, fills and average fill price. Read-only.

get_transactionsB

Account history: trades, dividends, interest, deposits/withdrawals and fees, newest first.

get_quotesB

Real-time quotes: last, bid/ask, day change and %, volume, day range, 52-week range, plus greeks for options and optional fundamentals.

get_price_historyB

OHLCV candles plus a summary (change, % change, high/low, average volume) for a period.

get_option_chainA

Option chain with bid/ask/mark, volume, open interest, implied volatility and greeks, nearest expirations first. Use get_option_expirations to pick dates.

get_option_expirationsB

All listed option expiration dates for an underlying, with days to expiration.

get_market_hoursA

Trading sessions (pre-market, regular, post-market) for a day and whether the market is open. For today it also reports which session is active right now (session_now).

get_moversC

Top movers in an index or exchange, sorted by volume, trades or % change.

search_instrumentsB

Look up instruments by symbol or company name, or get fundamentals for a symbol.

get_current_timeA

Current date and time in US/Eastern (the exchange clock) and UTC. Useful before date math.

Prompts

Interactive templates invoked by user choice

NameDescription
portfolio_reviewReview my Schwab portfolio.

Resources

Contextual data attached and managed by the client

NameDescription

No resources

TDQS

A3.7/5.0

Scored across 14 tools

Disambiguation4/5

Most tools target distinct resource/action pairs, and descriptions clarify boundaries. There is some conceptual overlap between get_positions and get_portfolio_summary, and between get_orders and get_transactions, but they are distinguished by detail level and scope.

Naming Consistency5/5

All tool names use snake_case with a consistent verb_noun pattern such as get_*, list_*, and search_*. The naming is predictable throughout the set.

Tool Count5/5

14 tools is well-scoped for a read-only Schwab brokerage and market-data server. Each tool covers a clear area such as accounts, quotes, options, orders, or time, without excessive duplication.

Completeness4/5

The read-only surface is strong: auth, accounts, positions, portfolio, orders, transactions, quotes, price history, options, market hours, movers, instruments, and time are all covered. Missing write/trading operations like placing or cancelling orders and minor extras like watchlists or news are the main gaps.

Maintenance

ActivityMaintained
ResponsivenessNo issues