Schwab Model Context Protocol Server
一个实现了施瓦布(Schwab)API 的模型上下文协议(Model Context Protocol)的服务器,允许访问账户信息、持仓、股票报价以及订单/交易历史,专为与大型语言模型集成而设计。
README
Schwab 模型上下文协议服务器
这是一个使用 schwab-py 和 MCP python-sdk 为 Schwab API 实现模型上下文协议 (MCP) 的服务器。
特性
- 通过模型上下文协议公开 Schwab API 功能
- 获取账户信息和持仓
- 检索股票报价和价格历史
- 获取市场信息和异动股
- 获取期权链和到期数据
- 访问订单和交易历史
- 使用特殊工具修改账户状态(需要
--jesus-take-the-wheel标志) - 旨在与大型语言模型 (LLM) 集成
安装
# 安装所有依赖项
uv add -e .
# 安装开发依赖项
uv add -e .[dev]
用法
身份验证
第一步是使用 Schwab API 进行身份验证并生成令牌:
# 身份验证并生成令牌
uv run schwab-mcp auth --client-id YOUR_CLIENT_ID --client-secret YOUR_CLIENT_SECRET --callback-url YOUR_CALLBACK_URL
您可以通过环境变量设置这些凭据,以避免每次都输入它们:
SCHWAB_CLIENT_IDSCHWAB_CLIENT_SECRETSCHWAB_CALLBACK_URL(默认为 https://127.0.0.1:8182)
默认情况下,令牌保存到 ~/.local/share/schwab-mcp/token.yaml(平台特定)。您可以指定不同的路径:
uv run schwab-mcp auth --token-path /path/to/token.yaml
支持 yaml 和 json 令牌格式,并将从文件扩展名推断。
运行服务器
身份验证后,您可以运行服务器:
# 使用默认令牌路径运行服务器
uv run schwab-mcp server --client-id YOUR_CLIENT_ID --client-secret YOUR_CLIENT_SECRET --callback-url YOUR_CALLBACK_URL
# 使用自定义令牌路径运行
uv run schwab-mcp server --token-path /path/to/token.json --client-id YOUR_CLIENT_ID --client-secret YOUR_CLIENT_SECRET --callback-url YOUR_CALLBACK_URL
# 运行并启用账户修改工具
uv run schwab-mcp server --jesus-take-the-wheel --client-id YOUR_CLIENT_ID --client-secret YOUR_CLIENT_SECRET --callback-url YOUR_CALLBACK_URL
令牌有效期会进行验证 - 如果超过 5 天,系统将提示您重新进行身份验证。
警告: 使用
--jesus-take-the-wheel标志会启用可以修改您的账户状态的工具。请谨慎使用,因为这允许 LLM 取消订单并可能执行其他更改账户状态的操作。
可用工具
服务器公开以下 MCP 工具:
日期和市场信息
get_datetime- 获取当前 ISO 格式的日期时间get_market_hours- 获取特定市场的交易时间get_movers- 获取特定指数的异动股get_instruments- 搜索具有特定代码的金融工具
账户信息
get_account_numbers- 获取账户 ID 到账户哈希的映射get_accounts- 获取所有链接的 Schwab 账户的信息get_accounts_with_positions- 获取包含持仓信息的账户get_account- 获取特定账户的信息get_account_with_positions- 获取包含持仓信息的特定账户get_user_preferences- 获取所有账户的用户偏好设置,包括昵称
订单
get_order- 获取特定订单的详细信息get_orders- 获取特定账户的订单
报价
get_quotes- 获取指定代码的报价
价格历史
get_advanced_price_history- 获取特定代码的高级价格历史get_price_history_every_minute- 获取分钟频率的价格历史get_price_history_every_five_minutes- 获取五分钟频率的价格历史get_price_history_every_ten_minutes- 获取十分钟频率的价格历史get_price_history_every_fifteen_minutes- 获取十五分钟频率的价格历史get_price_history_every_thirty_minutes- 获取三十分钟频率的价格历史get_price_history_every_day- 获取每日频率的价格历史get_price_history_every_week- 获取每周频率的价格历史
期权
get_option_chain- 获取特定代码的期权链get_advanced_option_chain- 获取特定代码的高级期权链get_option_expiration_chain- 获取代码的期权到期信息
交易
get_transactions- 获取特定账户的交易get_transaction- 获取特定交易的详细信息
账户修改工具(需要 --jesus-take-the-wheel 标志)
cancel_order- 取消特定订单
安全警告
--jesus-take-the-wheel 标志使 LLM 能够执行可以修改您的账户状态的操作,包括:
- 取消订单
- 可能具有财务影响的其他操作(未来版本将添加更多工具)
仅在受控环境中使用此标志,并了解所涉及的风险。
开发
# 类型检查
uv run pyright
# 格式化代码
uv run ruff format .
# 代码检查
uv run ruff check .
# 运行测试
uv run pytest
许可证
本项目根据 MIT 许可证提供。
推荐服务器
Baidu Map
百度地图核心API现已全面兼容MCP协议,是国内首家兼容MCP协议的地图服务商。
Playwright MCP Server
一个模型上下文协议服务器,它使大型语言模型能够通过结构化的可访问性快照与网页进行交互,而无需视觉模型或屏幕截图。
Magic Component Platform (MCP)
一个由人工智能驱动的工具,可以从自然语言描述生成现代化的用户界面组件,并与流行的集成开发环境(IDE)集成,从而简化用户界面开发流程。
Audiense Insights MCP Server
通过模型上下文协议启用与 Audiense Insights 账户的交互,从而促进营销洞察和受众数据的提取和分析,包括人口统计信息、行为和影响者互动。
VeyraX
一个单一的 MCP 工具,连接你所有喜爱的工具:Gmail、日历以及其他 40 多个工具。
graphlit-mcp-server
模型上下文协议 (MCP) 服务器实现了 MCP 客户端与 Graphlit 服务之间的集成。 除了网络爬取之外,还可以将任何内容(从 Slack 到 Gmail 再到播客订阅源)导入到 Graphlit 项目中,然后从 MCP 客户端检索相关内容。
Kagi MCP Server
一个 MCP 服务器,集成了 Kagi 搜索功能和 Claude AI,使 Claude 能够在回答需要最新信息的问题时执行实时网络搜索。
e2b-mcp-server
使用 MCP 通过 e2b 运行代码。
Neon MCP Server
用于与 Neon 管理 API 和数据库交互的 MCP 服务器
Exa MCP Server
模型上下文协议(MCP)服务器允许像 Claude 这样的 AI 助手使用 Exa AI 搜索 API 进行网络搜索。这种设置允许 AI 模型以安全和受控的方式获取实时的网络信息。