Schwab Model Context Protocol Server
local-only server
The server can only run on the client’s local machine because it depends on local resources.
Integrations
Schwab Model Context Protocol Server
This is a server that implements the Model Context Protocol (MCP) for the Schwab API using schwab-py and the MCP python-sdk.
Features
- Expose Schwab API functionality through Model Context Protocol
- Get account information and positions
- Retrieve stock quotes and price history
- Get market information and movers
- Fetch option chains and expiration data
- Access order and transaction history
- Modify account state with special tools (requires
--jesus-take-the-wheel
flag) - Designed to integrate with Large Language Models (LLMs)
Installation
Usage
Authentication
The first step is to authenticate with the Schwab API and generate a token:
You can set these credentials through environment variables to avoid typing them each time:
SCHWAB_CLIENT_ID
SCHWAB_CLIENT_SECRET
SCHWAB_CALLBACK_URL
(defaults to https://127.0.0.1:8182)
By default, the token is saved to ~/.local/share/schwab-mcp/token.yaml
(platform-specific). You can specify a different path:
Both yaml and json token formats are supported and will be inferred from the file extension.
Running the Server
After authentication, you can run the server:
Token age is validated - if older than 5 days, you will be prompted to re-authenticate.
WARNING: Using the
--jesus-take-the-wheel
flag enables tools that can modify your account state. Use with caution as this allows LLMs to cancel orders and potentially perform other actions that change account state.
Available Tools
The server exposes the following MCP tools:
Date and Market Information
get_datetime
- Get the current datetime in ISO formatget_market_hours
- Get market hours for a specific marketget_movers
- Get movers for a specific indexget_instruments
- Search for instruments with a specific symbol
Account Information
get_account_numbers
- Get mapping of account IDs to account hashesget_accounts
- Get information for all linked Schwab accountsget_accounts_with_positions
- Get accounts with position informationget_account
- Get information for a specific accountget_account_with_positions
- Get specific account with position informationget_user_preferences
- Get user preferences for all accounts including nicknames
Orders
get_order
- Get details for a specific orderget_orders
- Get orders for a specific account
Quotes
get_quotes
- Get quotes for specified symbols
Price History
get_advanced_price_history
- Get advanced price history for a specific symbolget_price_history_every_minute
- Get price history with minute frequencyget_price_history_every_five_minutes
- Get price history with five minute frequencyget_price_history_every_ten_minutes
- Get price history with ten minute frequencyget_price_history_every_fifteen_minutes
- Get price history with fifteen minute frequencyget_price_history_every_thirty_minutes
- Get price history with thirty minute frequencyget_price_history_every_day
- Get price history with daily frequencyget_price_history_every_week
- Get price history with weekly frequency
Options
get_option_chain
- Get option chain for a specific symbolget_advanced_option_chain
- Get advanced option chain for a specific symbolget_option_expiration_chain
- Get option expiration information for a symbol
Transactions
get_transactions
- Get transactions for a specific accountget_transaction
- Get details for a specific transaction
Account Modification Tools (Requires --jesus-take-the-wheel
flag)
cancel_order
- Cancel a specific order
Security Warning
The --jesus-take-the-wheel
flag enables LLMs to perform actions that can modify your account state, including:
- Canceling orders
- Other actions that may have financial implications (more tools to be added in future releases)
Only use this flag in controlled environments and understand the risks involved.
Development
License
This project is available under the MIT License.
This server cannot be installed
A server that implements the Model Context Protocol for Schwab API, allowing access to account information, positions, stock quotes, and order/transaction history designed for integration with Large Language Models.