E\*TRADE MCP服务器
用于E\*TRADE的市场API的模型上下文协议(MCP)服务器,使用FastMCP构建。
特性
此MCP服务器提供对E\*TRADE市场API端点的访问:
- 引用:获取股票、期权和共同基金的实时和延迟报价
- 产品查询:按代码或公司名称搜索证券
- 期权链:获得带有罢工和到期的期权链
- 期权到期日期:获取选项的可用到期日期
安装
- 克隆此存储库
- 安装依赖项:
pip install -e .- 复制
.env.example到.env并添加您的E\*TRADE API证书:
cp .env.example .env- 编辑
.env并添加您的凭据:
ETRADE_CONSUMER_KEY=your_consumer_key_here
ETRADE_CONSUMER_SECRET=your_consumer_secret_here
ETRADE_ENVIRONMENT=sandbox # or 'production'获取E\*TRADE API证书
- 首选 E\*TRADE开发者门户
- 使用您的E\*TRADE帐户注册或登录
- 在以下地址请求沙盒消费者密钥 https://us.etrade.com/etx/ris/apikey
- 获取您的消费者密钥和消费者秘密
- 从沙盒环境开始进行测试
认证
一次性设置(推荐)
运行身份验证脚本以获取并保存您的访问令牌:
python authenticate.py这将:
- 提示您访问E\*TRADE授权URL
- 要求您输入验证码
- 将访问令牌保存到您的
.env文件
MCP服务器将自动使用这些保存的令牌。
备注:访问令牌将在美国东部时间午夜到期,因此您需要每天重新进行身份验证。
替代方案:手动身份验证
您还可以通过MCP工具进行身份验证:
- 呼叫
etrade_get_auth_url()获取授权URL - 访问浏览器中的URL并授权应用程序
- 复制验证码
- 呼叫
etrade_authenticate(verifier="YOUR_CODE")带有验证码
用法
运行服务器
服务器作为HTTP服务器在端口8000上运行,MCP端点位于 /mcp:
etrade-mcp或者用Python:
python -m etrade_mcp.server服务器将在以下时间启动 http://localhost:8000 MCP端点位于 http://localhost:8000/mcp.
连接到服务器
配置您的MCP客户端以连接到HTTP端点:
{
"mcpServers": {
"etrade": {
"url": "http://localhost:8000/mcp"
}
}
}可用工具
etrade_get_auth_url()
获取OAuth授权URL。这是身份验证的第一步。
退货:在浏览器中访问的授权URL
etrade_authenticate(verifier: str)
使用E\*TRADE的验证码完成身份验证。
参数:
verifier:来自E\*TRADE的验证码
退货:成功消息
etrade_get_quote(symbols: str, require_earnings_date: bool = False, skip_mini_options_check: bool = False)
获取一个或多个交易品种的股票报价。
参数:
symbols:逗号分隔的符号列表(例如,“AAPL、MSFT、GOOGL”)require_earnings_date:包括下一个收益日期skip_mini_options_check:跳过迷你选项检查
退货:报价数据,包括价格、数量、买卖等。
etrade_lookup_product(search: str, company: str = None, type: str = None)
按符号或公司名称查找产品。
参数:
search:要搜索的符号或部分符号company:公司名称(可选)type:安全类型-EQ、MF、OPTN(可选)
退货:匹配产品列表
etrade_get_option_chains(symbol: str, ...)
获取具有各种过滤器的符号的选项链。
参数:
symbol:基础符号expiry_year,expiry_month,expiry_day:过期日期筛选器strike_price_near:筛选器接近此价格no_of_strikes:返回的罢工次数include_weekly:包括每周选项option_category:标准、全部、迷你chain_type:CALL,PUT,CALLPUT- 还有更多。..
退货:期权链数据
etrade_get_option_expire_dates(symbol: str, expiry_type: str = None)
获取可用选项的到期日期。
参数:
symbol:基础符号expiry_type:每周、每月、每季度、全部
退货:到期日期列表
MCP客户端使用示例
# Get authorization URL
auth_url = etrade_get_auth_url()
# Visit the URL, authorize, get verifier code
# Authenticate
etrade_authenticate(verifier="12345")
# Get a quote
quote = etrade_get_quote(symbols="AAPL")
# Look up a product
results = etrade_lookup_product(search="Apple")
# Get option chains
chains = etrade_get_option_chains(
symbol="AAPL",
chain_type="CALL",
price_type="ATNM"
)
# Get expiration dates
dates = etrade_get_option_expire_dates(symbol="AAPL")API 文档
有关API的详细文档,请参阅:
环境变量
ETRADE_CONSUMER_KEY:您的E\*TRADE消费者密钥(必填)ETRADE_CONSUMER_SECRET:您的E\*TRADE消费者机密(必填)ETRADE_ENVIRONMENT:sandbox或production(默认:沙盒)ETRADE_SANDBOX_BASE_URL:沙盒API URL(默认值:https://apisb.etrade.com)ETRADE_PROD_BASE_URL:生产API URL(默认值:https://api.etrade.com)
安全说明
- 永远不要承诺你的
.env文件或公开您的API凭据 - 从沙盒环境开始进行测试
- OAuth令牌过期;您需要定期重新进行身份验证
- 生产环境需要额外的E\*TRADE账户审批
参考
此服务器基于E\*TRADE的示例Python客户端,该客户端包含在 EtradePythonClient 目录以供参考。
许可证
麻省理工学院
