股票期权数据服务

Theta Data MCP Server是一个本地MCP包装器,为AI模型提供实时和历史股票、期权和指数数据访问。

  • by drmartell
  • Python
  • 本地部署
  • 1 星标
  • 更新于
在 GitHub 查看 drmartell/thetadata-mcp

使用说明

Theta数据MCP服务器

Theta Data API的本地MCP(模型上下文协议)包装器,为AI模型提供对实时和历史股票、期权和指数数据的访问。

概述

此MCP服务器由Theta Data OpenAPI规范生成,使用 FastMCP。它将API端点公开为MCP工具,允许人工智能助手直接查询市场数据。

支持的数据类型

  • 股票:交易品种、EOD数据、OHLC、交易、报价、快照
  • 选项:符号、到期、罢工、合同、希腊语、隐含波动率
  • 指数:符号、价格、OHLC、市场价值
  • 日历:市场开放日期

先决条件

  1. Python 3.10+
  2. 紫外线 用于包管理
  3. Theta数据终端在本地运行(默认: http://127.0.0.1:25503)
  4. Theta数据订阅(在此处订阅)

安装

# Create virtual environment and install all dependencies (including dev)
uv sync

用法

运行服务器

# Run with stdio transport (default)
uv run server.py

# Run with SSE transport
uv run server.py --transport sse

# Custom base URL
uv run server.py --base-url http://localhost:25503/v3

# Custom timeout
uv run server.py --timeout 60.0

环境变量

变量 描述 默认值
THETADATA_BASE_URL Theta数据API基础URL http://127.0.0.1:25503/v3
THETADATA_TIMEOUT 请求超时(秒) 30.0

MCP客户端配置

将以下内容添加到MCP客户端配置中,替换 /path/to/thetadata-mcp 使用此存储库的实际路径:

{
  "mcpServers": {
    "thetadata": {
      "command": "uv",
      "args": [
        "--directory",
        "/path/to/thetadata-mcp",
        "run",
        "server.py"
      ],
      "env": {
        "THETADATA_BASE_URL": "http://127.0.0.1:25503/v3",
        "THETADATA_TIMEOUT": "30.0"
      }
    }
  }
}

可用工具

服务器将所有Theta Data v3 API端点公开为MCP工具,包括:

股票数据

  • stock_list_symbols -列出所有股票代码
  • stock_list_dates -列出请求类型的可用日期
  • stock_snapshot_ohlc -实时OHLC数据
  • stock_snapshot_trade -实时交易数据
  • stock_snapshot_quote -实时报价数据
  • stock_history_eod -历史EOD数据
  • stock_history_ohlc -历史悠久的OHLC酒吧
  • stock_history_trade -历史贸易数据
  • stock_history_quote -历史报价数据

选项数据

  • option_list_symbols -列出可选符号
  • option_list_expirations -列出某个符号的过期时间
  • option_list_strikes -列表因过期而罢工
  • option_list_contracts -列出期权合约
  • option_snapshot_ohlc -实时选项OHLC
  • option_snapshot_greeks_all -所有希腊人(δ、γ、θ、维加、ρ)
  • option_snapshot_greeks_implied_volatility -隐含波动性
  • option_history_eod -历史选项EOD数据
  • option_history_greeks_all -希腊历史数据

索引数据

  • index_list_symbols -列出索引符号
  • index_snapshot_price -实时指数价格
  • index_history_eod -历史索引EOD数据

日历

  • calendar_open_today -查看今天市场是否开放
  • calendar_on_date -检查市场是否在特定日期开放

看 Theta Data API文档 有关参数和响应的完整详细信息。

查询示例

连接到MCP客户端后,您可以问:

  • “列出所有可用的股票代码”
  • “获取AAPL的当前OHLC数据”
  • “SPY的可用期权到期日是什么?”
  • “让我看看下周五到期的SPY 500电话的希腊人”
  • “今天市场开放吗?”

发展

预提交钩子

此项目使用 预承诺 跑 ruff 每次提交时自动进行linting和格式化。

安装程序(每个克隆一次):

uv run pre-commit install

钩子现在将在您提交更改时自动检查并修复代码格式。

手动开发命令

# Run linting with uv
uv run ruff check .

# Format code with uv
uv run ruff format .

# Regenerate endpoints_by_subscription documentation
uv run python generate_endpoint_docs.py

正在重新生成端点文档

这 generate_endpoint_docs.py 脚本读取 x-min-subscription 场从 openapiv3_updated.yaml 并在中重新生成markdown文件 endpoints_by_subscription/。每个层文件显示该订阅级别及以下可用的所有端点(累积):

  • endpoints_free.md -免费层端点
  • endpoints_value.md -免费+价值层端点
  • endpoints_standard.md -免费+价值+标准层端点
  • endpoints_professional.md -所有端点

许可证

MIT许可证-有关详细信息,请参阅许可证文件。

资源