Schwab Model Context Protocol Server

Schwab Model Context Protocol Server

site icon
2025.03.25 2
Python金融数据服务交易APIAI金融集成金融服务
Schwab Model Context Protocol Server (schwab-mcp) 是一个实现了Model Context Protocol (MCP)的服务器,专门为Schwab API设计。它通过MCP协议暴露Schwab API的功能,支持获取账户信息、股票报价、市场数据、期权链、订单历史等,并可与大型语言模型(LLMs)集成。该服务器还提供账户状态修改工具(需启用特殊标志),适用于金融数据分析和自动化交易场景。
View on GitHub

Overview

基本能力

产品定位

Schwab-mcp是一个金融数据服务中间件,通过MCP协议将Schwab交易API标准化,便于与AI系统集成。

核心功能

  • 账户信息查询:获取账户余额、持仓等
  • 市场数据获取:股票报价、价格历史、市场动态
  • 期权数据:期权链、到期日信息
  • 订单管理:查询订单/交易历史
  • 账户修改工具:取消订单等操作(需特殊权限)
  • LLM集成:专为大型语言模型设计的数据接口

适用场景

  • 金融数据分析平台
  • 自动化交易系统
  • AI投资助手开发
  • 量化研究工具
  • 个人投资组合管理

工具列表

  1. 市场信息工具:获取市场时间、涨跌股、证券信息等
  2. 账户工具:查询账户详情、持仓、用户偏好等
  3. 订单工具:获取订单详情和列表
  4. 报价工具:获取股票实时报价
  5. 历史价格工具:多种时间粒度的价格历史(1分钟至周线)
  6. 期权工具:期权链查询和到期日信息
  7. 交易工具:查询交易记录
  8. 账户修改工具:取消订单等(需特殊权限)

常见问题

  • 认证令牌5天后会过期需要重新认证
  • 账户修改功能需显式启用--jesus-take-the-wheel标志
  • 修改操作具有真实财务影响,需谨慎使用

使用教程

使用依赖

需要Python环境和以下SDK: - schwab-py - MCP python-sdk

安装教程

# 安装主程序
uv add -e .

# 安装开发依赖(可选)
uv add -e .[dev]

认证配置

uv run schwab-mcp auth \
  --client-id YOUR_CLIENT_ID \
  --client-secret YOUR_CLIENT_SECRET \
  --callback-url YOUR_CALLBACK_URL

可通过环境变量设置认证信息:

export SCHWAB_CLIENT_ID='your_id'
export SCHWAB_CLIENT_SECRET='your_secret'
export SCHWAB_CALLBACK_URL='https://127.0.0.1:8182'

运行服务

# 基础模式
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 \
  --jesus-take-the-wheel \
  --client-id YOUR_CLIENT_ID \
  --client-secret YOUR_CLIENT_SECRET \
  --callback-url YOUR_CALLBACK_URL

调试方式

# 类型检查
uv run pyright

# 代码格式化
uv run ruff format .

# 代码检查
uv run ruff check .

# 运行测试
uv run pytest

许可证

该项目遵循 MIT 开源许可条款,请参阅 MIT 了解完整条款。