嘉信理财MCP服务器是一个模型上下文协议(MCP)服务器,它使Claude等AI助手能够通过嘉信理财官方API,安全地与嘉信理财账户和市场数据进行交互。
git clone
cd schwab-mcp
npm install
# 首次使用时,使用Cloudflare进行身份验证
npx wrangler login
# 创建用于存储OAuth令牌的KV命名空间
npx wrangler kv:namespace create "OAUTH_KV"
# 记录输出中的ID,配置时需要用到
# 设置个人配置
cp wrangler.example.jsonc wrangler.jsonc
# 编辑wrangler.jsonc:
# 1. 将YOUR_KV_NAMESPACE_ID_HERE替换为上面的ID
# 2. 将名称更改为唯一的名称(例如,"schwab-mcp-yourname")
# 设置密钥
npx wrangler secret put SCHWAB_CLIENT_ID # 您的嘉信理财应用密钥
npx wrangler secret put SCHWAB_CLIENT_SECRET # 您的嘉信理财应用密钥
npx wrangler secret put SCHWAB_REDIRECT_URI # https://your-worker-name.workers.dev/callback
npx wrangler secret put COOKIE_ENCRYPTION_KEY # 使用openssl rand -hex 32生成
# 部署
npm run deploy
wrangler.example.jsonc - 模板配置(已提交)wrangler.jsonc - 您的个人配置(git忽略,从模板创建).dev.vars - 本地开发密钥(git忽略,可选)由于wrangler.jsonc被git忽略,您可以安全地使用个人配置进行开发和测试,而不会泄露密钥。
https://schwab-mcp..workers.dev/callback 。需要设置与快速设置中相同的密钥(见上文)。
对于自动部署,添加以下GitHub仓库密钥:
CLOUDFLARE_API_TOKEN:您的Cloudflare API令牌。OAUTH_KV_ID:您的KV命名空间ID。当推送到main分支时,工作流会处理验证和部署。仍然需要通过wrangler secret设置Cloudflare密钥。
使用MCP Inspector测试您的部署:
npx @modelcontextprotocol/inspector@latest
输入https://schwab-mcp.并连接。系统会提示您使用嘉信理财进行身份验证。
getAccounts:检索所有账户信息,包括持仓和余额。getAccountNumbers:获取账户标识符列表。getOrder:按ID获取订单。getOrders:按状态、时间范围和符号过滤获取订单。getOrdersByAccountNumber:按账户号码获取订单。cancelOrder:取消订单(实验性)。placeOrder:下单(实验性)。replaceOrder:替换订单(实验性)。getQuotes:获取多个符号的实时报价。getQuoteBySymbolId:获取单个符号的详细报价。getTransactions:按日期过滤检索所有账户的交易历史。getUserPreference:检索用户交易偏好和设置。searchInstruments:按符号搜索证券,并提供基本面/参考数据。getPriceHistory:获取可自定义周期和频率的历史价格数据。getMarketHours:按日期检查市场营业时间。getMarketHoursByMarketId:获取特定市场信息。getMovers:按指数($SPX、$COMPX、$DJI)查找顶级市场动态。getOptionChain:检索包含希腊字母的完整期权链数据。getOptionExpirationChain:获取期权到期日期。git clone
cd schwab-mcp
npm install
# 首次使用时,使用Cloudflare进行身份验证
npx wrangler login
# 创建用于存储OAuth令牌的KV命名空间
npx wrangler kv:namespace create "OAUTH_KV"
# 记录输出中的ID,配置时需要用到
# 设置个人配置
cp wrangler.example.jsonc wrangler.jsonc
# 编辑wrangler.jsonc:
# 1. 将YOUR_KV_NAMESPACE_ID_HERE替换为上面的ID
# 2. 将名称更改为唯一的名称(例如,"schwab-mcp-yourname")
# 设置密钥
npx wrangler secret put SCHWAB_CLIENT_ID # 您的嘉信理财应用密钥
npx wrangler secret put SCHWAB_CLIENT_SECRET # 您的嘉信理财应用密钥
npx wrangler secret put SCHWAB_REDIRECT_URI # https://your-worker-name.workers.dev/callback
npx wrangler secret put COOKIE_ENCRYPTION_KEY # 使用openssl rand -hex 32生成
# 部署
npm run deploy
# 本地开发
npm run dev
# 服务器将在http://localhost:8788可用
# 部署到Cloudflare Workers
npm run deploy
https://schwab-mcp..workers.dev/sse 。将以下内容添加到您的Claude桌面配置文件中:
{
"mcpServers": {
"schwab": {
"command": "npx",
"args": [
"mcp-remote",
"https://schwab-mcp..workers.dev/sse"
]
}
}
}
重启Claude桌面。首次使用嘉信理财工具时,将打开一个浏览器窗口进行身份验证。
连接后,您可以要求Claude:
对于本地开发,创建一个.dev.vars文件(git会自动忽略):
SCHWAB_CLIENT_ID=your_development_app_key
SCHWAB_CLIENT_SECRET=your_development_app_secret
SCHWAB_REDIRECT_URI=http://localhost:8788/callback
COOKIE_ENCRYPTION_KEY=your_random_key_here
LOG_LEVEL=DEBUG # 可选:启用调试日志
在本地运行:
npm run dev
# 服务器将在http://localhost:8788可用
使用MCP Inspector连接到http://localhost:8788/sse进行测试。
@cloudflare/workers-oauth-provider实现的带有PKCE的OAuth 2.0。@sudowealth/schwab-api,用于类型安全的嘉信理财API访问。@modelcontextprotocol/sdk,带有workers-mcp适配器。npm run dev # 在端口8788上启动开发服务器
npm run deploy # 部署到Cloudflare Workers
npm run typecheck # 运行TypeScript类型检查
npm run lint # 运行ESLint并自动修复
npm run format # 使用Prettier格式化代码
npm run validate # 同时运行类型检查和代码检查
服务器包含可配置级别的全面日志记录:
启用调试日志以查看详细的OAuth流程和API交互:
# 本地开发
echo "LOG_LEVEL=DEBUG" >> .dev.vars
# 生产环境
npx wrangler secret put LOG_LEVEL --secret="DEBUG"
服务器实现了强大的错误处理,具有特定的错误类型:
git checkout -b feature/amazing-feature)。git commit -m 'Add amazing feature')。git push origin feature/amazing-feature)。wrangler.jsonc。npx wrangler kv:namespace list进行验证。npx wrangler secret list检查所有密钥是否设置正确。npx wrangler kv:key list --namespace-id=。本项目采用MIT许可证。
⚠️ 重要提示
这是一个非官方的、由社区开发的嘉信理财TypeScript MCP服务器。它未经嘉信理财批准、认可或认证。按原样提供,其功能可能不完整或不稳定。使用时请自行承担风险,尤其是在处理财务数据或交易时。