91e83a3b0b
新增 app/mcp_server.py,让 LLM (Claude Desktop / Claude Code) 通过 MCP stdio 协议查询 market_sync 的同步情况: 工具列表: 1. list_sync_tasks - 列出 13 个 sync task + 当前状态 + 7d 运行统计 2. get_task_status - 单个 task 的状态机 + 最近 N 天所有 run 3. list_datasets - 17 张 PG 表的行数 + 日期范围 4. get_dataset_info - 单表的 schema/索引/PK + 3 行抽样(白名单防注入) 5. get_today_sync_summary - 今日 KPI + 每个 task 的最新 run 传输: stdio (本地启动 Claude Desktop 直连) 启动: python -m app.mcp_server 依赖: mcp[cli]>=1.0.0 (已加入 requirements.txt) 复用层: app.core.db.ops + app.core.sync.registry 的 helper, 不绕过 ORM session (与 dashboard API 一致)。 验证: - initialize 握手 OK - tools/list 返回 5 个工具的完整 schema - 各 tool 在 stdio 协议下正常返回 JSON
37 lines
942 B
Plaintext
37 lines
942 B
Plaintext
# Web/API
|
|
fastapi>=0.110.0
|
|
uvicorn[standard]>=0.30.0
|
|
pydantic>=2.0.0
|
|
pydantic-settings>=2.0.0
|
|
|
|
# MCP server (stdio 传输, 给 Claude Desktop / Claude Code 用)
|
|
mcp[cli]>=1.0.0
|
|
|
|
# Data
|
|
pandas>=2.2.0
|
|
numpy>=1.26.0
|
|
pyarrow>=15.0.0
|
|
|
|
# Storage
|
|
SQLAlchemy>=2.0.0
|
|
PyMySQL>=1.0.0
|
|
DBUtils>=3.0.0
|
|
cryptography>=42.0.0
|
|
|
|
# HTTP / Retry
|
|
requests>=2.30.0
|
|
tenacity>=8.0.0
|
|
|
|
# Datasources — A 股免费源
|
|
# akshare 仅用于"无稳定替代源"的数据集(2026-07-01 决策)。
|
|
# 当前仅龙虎榜使用(聚合层 stock_lhb_detail_em + 席位层 stock_lhb_stock_detail_em)。
|
|
# 5min K / moneyflow / kline_daily 等已有 baostock / mairui 替代,禁 akshare。
|
|
akshare>=1.18.0
|
|
baostock>=0.9.0
|
|
# 雪球非官方 SDK:需要 XUEQIU_TOKEN(环境变量)才能拿到股本 / 日K 复核
|
|
# 没装 → share / kline_daily 任务静默失败(ImportError 被 except 吞)
|
|
pysnowball>=0.1.8
|
|
|
|
# Logging / Config
|
|
PyYAML>=6.0.0
|
|
python-dotenv>=1.0.0 |