MCP Servers

A collection of Model Context Protocol servers, templates, tools and more.

MCP server by getway

Created 4/11/2026
Updated about 6 hours ago
Repository documentation and setup instructions

掘金量化 MCP 服务

Python License MCP

掘金量化SDK的完整 MCP (Model Context Protocol) 服务封装,为 AI 助手提供量化交易能力。

30 个 MCP 工具 | 行情查询 | 财务数据 | 交易日历 | 持仓查询 | 交易下单 | 系统信息

gm-cli 命令行工具 | 本地快速查询 | 脚本自动化 | 数据导出

快速开始 · 工具列表 · CLI 工具 · 客户端配置 · 开发指南


📚 文档导航

新手入门

架构与设计

维护与开发

更新日志


功能特性

  • 🔍 行情数据 - 历史行情、实时行情、标的列表、交易日历
  • 📊 财务数据 - 估值指标、三大报表、市值、指数成分股
  • 💹 交易操作 - 持仓/资金/委托/成交查询、买卖下单、撤单
  • 🖥️ CLI 工具 - 命令行直接调用,支持表格/JSON/CSV 输出
  • 🌐 Streamable HTTP - 标准 HTTP 服务模式,支持网络访问和多客户端
  • 🔐 Header透传 - Token 和 Account ID 通过 HTTP Header 传递,服务端无状态
  • 生产就绪 - 统一异常处理、日志系统、ContextVar 隔离

快速开始

前置条件

  1. Python 3.10-3.13
  2. 掘金量化终端 已安装并启动
  3. 掘金 Token(从终端获取)

安装

目前仅支持从源码安装:

git clone https://github.com/getway/juejin-mcp.git
cd juejin-mcp

# 使用国内镜像源(推荐,速度更快)
pip install -e . -i https://pypi.tuna.tsinghua.edu.cn/simple

# 或使用官方源
pip install -e .

提示: 项目尚未发布到 PyPI,敬请期待!

启动

MCP 服务模式

⚠️ 重要:MCP 服务采用无状态设计,Token 和 Account ID 必须由客户端通过 HTTP Header 传递。

# 启动服务(只需配置数据服务器地址)
python -m gm_mcp

# 自定义监听地址和端口
python -m gm_mcp --host 127.0.0.1 --port 9000

客户端配置示例(必需):

{
  "mcpServers": {
    "gm-mcp": {
      "url": "http://127.0.0.1:8000/mcp",
      "headers": {
        "X-GM-Token": "你的Token",
        "X-GM-Account-Id": "你的账户ID"
      }
    }
  }
}

注意:

  • 服务端不需要配置 Token 和 Account ID
  • 这些凭证由 MCP 客户端通过 HTTP Header 传递
  • config.env 仅用于配置数据服务器地址(GM_HOST/GM_PORT)

CLI 工具模式

# 查询最新价
gm-cli price SHSE.600519

# 查询标的信息
gm-cli info SHSE.600519,SZSE.000001

# 查询历史行情
gm-cli history SHSE.600519 --start 2026-04-01 --end 2026-04-10

# 查询账户资金
gm-cli cash

# 查询持仓
gm-cli position

# 买入下单
gm-cli buy SHSE.600519 --volume 100

# 导出为 CSV
gm-cli history SHSE.600519 --format csv --output data.csv

提示: CLI 工具需要设置 GM_TOKEN 环境变量或在命令中使用 --token 参数。

客户端配置

⚠️ 重要说明

gm-mcp 是标准的 MCP 服务,必须通过 MCP 客户端使用,不能直接用 curl 调用。

✅ 正确方式: 在 MCP 客户端(如 Hermes、Claude Desktop、Cursor 等)中配置连接。

❌ 错误方式: 直接用 curl 发送 HTTP 请求(无法正确处理会话状态)。


gm-mcp 服务采用无状态设计,Token 和 Account ID 必须由客户端传递:

| 配置项 | gm-cli | gm-mcp | |--------|--------|--------| | Token 来源 | 自动读取 config.env | 客户端 HTTP Header | | Account ID 来源 | 自动读取 config.env | 客户端 HTTP Header | | 数据服务器 | config.env | config.env |

MCP 客户端配置

必需 HTTP Headers:

  • X-GM-Token - 掘金认证Token(必需
  • X-GM-Account-Id - 掘金交易账户ID(交易功能必需)

配置示例:

{
  "mcpServers": {
    "gm-mcp": {
      "url": "http://127.0.0.1:8000/mcp",
      "headers": {
        "X-GM-Token": "你的Token",
        "X-GM-Account-Id": "你的账户ID"
      }
    }
  }
}

Cursor

~/.cursor/mcp.json 中添加:

{
  "mcpServers": {
    "gm-mcp": {
      "url": "http://127.0.0.1:8000/mcp",
      "headers": {
        "X-GM-Token": "你的掘金Token",
        "X-GM-Account-Id": "你的账户ID"
      }
    }
  }
}

Claude Desktop

claude_desktop_config.json 中添加:

{
  "mcpServers": {
    "gm-mcp": {
      "url": "http://127.0.0.1:8000/mcp",
      "headers": {
        "X-GM-Token": "你的掘金Token",
        "X-GM-Account-Id": "你的账户ID"
      }
    }
  }
}

CodeBuddy

.codebuddy/mcp.json 中添加:

{
  "mcpServers": {
    "gm-mcp": {
      "url": "http://127.0.0.1:8000/mcp",
      "headers": {
        "X-GM-Token": "你的掘金Token",
        "X-GM-Account-Id": "你的账户ID"
      }
    }
  }
}

curl 测试

# 列出工具
curl -X POST http://localhost:8000/mcp \
  -H "Content-Type: application/json" \
  -H "X-GM-Token: 你的Token" \
  -d '{"jsonrpc":"2.0","id":1,"method":"tools/list","params":{}}'

# 查询茅台实时价格
curl -X POST http://localhost:8000/mcp \
  -H "Content-Type: application/json" \
  -H "X-GM-Token: 你的Token" \
  -d '{"jsonrpc":"2.0","id":2,"method":"tools/call","params":{"name":"query_current_price","arguments":{"symbols":"SHSE.600519"}}}'

工具列表

MCP 服务工具(30个)

行情数据(10个工具)

| 工具 | 说明 | |------|------| | get_symbol_info | 标的基本信息(名称、上市日期、交易单位) | | get_symbols_list | 获取标的列表(支持按类型/交易所/日期过滤) | | get_history_symbol_info | 标的历史交易信息 | | query_history | 历史行情(支持复权、跳过停牌) | | query_history_n | 最近N条历史行情 | | query_current | 当前行情快照(支持集合竞价数据) | | query_current_price | 当前最新价 | | get_trading_dates | 交易日历 | | get_previous_trading_dates | 前N个交易日 | | get_next_trading_dates | 后N个交易日 |

财务数据(9个工具)

| 工具 | 说明 | |------|------| | query_valuation | 估值指标(PE/PB/PS/股息率) | | query_market_value | 市值指标(总市值/流通市值/企业价值) | | query_basic_daily | 基础指标(收盘价/换手率/股本) | | query_index_constituents | 指数成分股和权重 | | query_balance_sheet | 资产负债表 | | query_cashflow | 现金流量表 | | query_income_statement | 利润表 | | query_finance_prime | 财务主要指标 | | query_finance_deriv | 财务衍生指标 |

交易操作(9个工具)

| 工具 | 说明 | |------|------| | get_position_query | 持仓查询 | | get_cash_query | 资金查询(余额/可用/冻结/净值/市值) | | get_orders_query | 委托查询(支持按标的/方向/状态过滤) | | get_execrpts_query | 成交查询 | | order_buy | 买入下单(支持市价/限价) | | order_sell | 卖出下单(支持市价/限价) | | order_cancel_by_id | 根据订单号撤单 | | batch_order_cancel | 批量撤单(支持按标的/方向过滤) | | get_order_by_id | 根据订单号查询委托详情 |

补充工具(2个工具)

| 工具 | 说明 | |------|------| | get_position_detail | 查询指定标的的持仓详情 | | get_sdk_version | 查询掘金SDK版本号 |


gm-cli 命令行工具

gm-cli 是一个命令行工具,允许用户在本机直接调用掘金量化 SDK 的功能,无需启动 MCP 服务。

可用命令

| 命令 | 功能 | 示例 | |------|------|------| | price | 查询最新价 | gm-cli price SHSE.600519 | | info | 查询标的信息 | gm-cli info SHSE.600519 | | history | 查询历史行情 | gm-cli history SHSE.600519 | | cash | 查询账户资金 | gm-cli cash | | position | 查询持仓 | gm-cli position | | buy | 买入下单 | gm-cli buy SHSE.600519 --volume 100 | | sell | 卖出下单 | gm-cli sell SHSE.600519 --volume 100 |

输出格式

# 表格输出(默认)
gm-cli price SHSE.600519

# JSON 输出
gm-cli price SHSE.600519 --format json

# CSV 输出
gm-cli history SHSE.600519 --format csv --output data.csv

与 MCP 服务的区别

| 特性 | gm-cli | gm-mcp | |------|--------|--------| | 使用方式 | 命令行 | MCP 协议 | | 适用场景 | 本地快速查询/脚本自动化 | AI 工具调用 | | AI 集成 | ❌ | ✅ | | 输出格式 | 表格/JSON/CSV | JSON |


环境变量配置

⚠️ 配置区别

| 工具 | Token/Account ID | 数据服务器 | |------|------------------|------------| | gm-cli | 自动读取 config.env | config.env | | gm-mcp | 客户端 HTTP Header | config.env |

配置变量

| 变量名 | gm-cli | gm-mcp | 说明 | |--------|--------|--------|------| | GM_TOKEN | config.env | ❌ 客户端 Header | 掘金量化 Token | | GM_ACCOUNT_ID | config.env | ❌ 客户端 Header | 交易账户 ID | | GM_HOST | config.env | config.env | 数据服务器地址 | | GM_PORT | config.env | config.env | 数据服务器端口 |

配置方式

gm-cli 配置(自动读取):

# 在项目根目录创建配置文件(只需一次)
copy config.env.example config.env

# 编辑配置文件,填入真实值
# gm-cli 会自动读取,无需额外操作!

gm-mcp 配置(客户端传递):

{
  "mcpServers": {
    "gm-mcp": {
      "url": "http://127.0.0.1:8000/mcp",
      "headers": {
        "X-GM-Token": "你的Token",
        "X-GM-Account-Id": "你的账户ID"
      }
    }
  }
}

重要提示:

  • gm-mcp 服务采用无状态设计,Token 和 Account ID 必须由客户端通过 HTTP Header 传递
  • 服务端的 config.env 仅用于配置数据服务器地址(GM_HOST/GM_PORT)

详细配置说明请参考:环境变量配置指南


配置说明

命令行参数

| 参数 | 默认值 | 说明 | |------|--------|------| | --gm-host | 127.0.0.1 | 掘金数据服务器地址 | | --gm-port | 7001 | 掘金数据服务器端口 | | --host | 0.0.0.0 | MCP服务监听地址 | | --port | 8000 | MCP服务监听端口 | | --workers | 1 | worker进程数 |

环境变量

| 变量 | 说明 | |------|------| | GM_HOST | 掘金数据服务器地址 | | GM_PORT | 掘金数据服务器端口 | | MCP_HOST | MCP服务监听地址 | | MCP_PORT | MCP服务监听端口 | | LOG_LEVEL | 日志级别 (DEBUG/INFO/WARNING/ERROR) |

Symbol 格式规范

| 类型 | 格式 | 示例 | |------|------|------| | 股票 | 交易所.代码 | SHSE.600519(贵州茅台) | | ETF | 交易所.代码 | SZSE.159915(创业板ETF) | | 指数 | 交易所.代码 | SHSE.000300(沪深300) | | 期货 | 交易所.合约 | SHFE.au2506(黄金期货) |

交易所代码

| 代码 | 交易所 | |------|--------| | SHSE | 上海证券交易所 | | SZSE | 深圳证券交易所 | | CFFEX | 中国金融期货交易所 | | SHFE | 上海期货交易所 | | DCE | 大连商品交易所 | | CZCE | 郑州商品交易所 | | INE | 上海国际能源交易中心 | | GFEX | 广州期货交易所 |

项目结构

juejin-mcp/
├── src/
│   ├── gm_mcp/           # MCP 服务源代码
│   │   ├── __init__.py
│   │   ├── __main__.py
│   │   ├── server.py         # MCP服务器主入口
│   │   ├── config.py         # 全局配置管理
│   │   ├── helpers.py        # 工具函数
│   │   ├── middleware.py     # HTTP Header中间件
│   │   ├── exceptions.py     # 异常处理装饰器
│   │   └── tools/            # MCP工具模块
│   │       ├── market.py     # 行情数据工具
│   │       ├── finance.py    # 财务数据工具
│   │       ├── trading.py    # 交易操作工具
│   │       └── extra.py      # 补充工具
│   │
│   └── gm_cli/           # CLI 工具源代码
│       ├── __init__.py
│       └── __main__.py       # CLI 主入口
│
├── skills/               # AI 技能文档
│   ├── gm-mcp/           # MCP 服务技能
│   ├── gm-cli/           # CLI 工具技能
│   └── quant-juejin-sdk/ # SDK 技能文档
│
├── tests/                # 测试
├── .env.example          # 环境变量模板
├── pyproject.toml        # 项目配置
├── CHANGELOG.md          # 更新日志
├── CONTRIBUTING.md       # 贡献指南
├── LICENSE               # MIT许可证
└── README.md             # 本文件

开发指南

本地开发

# 克隆仓库
git clone https://github.com/getway/juejin-mcp.git
cd juejin-mcp

# 创建虚拟环境
python -m venv .venv
source .venv/bin/activate  # Linux/Mac
.venv\Scripts\activate     # Windows

# 安装开发依赖
pip install -e ".[dev]"

# 运行测试
pytest

# 代码格式化
ruff format .
ruff check .

添加新工具

  1. src/gm_mcp/tools/ 对应模块中添加工具函数
  2. 使用 @mcp.tool()@safe_tool 装饰器
  3. 在函数文档字符串中说明参数
  4. 更新 README.md 工具列表

已知限制

财务数据工具超时问题

部分财务工具(query_market_value, query_balance_sheet 等)可能出现超时,原因:

  1. 模拟账户未订阅财务数据包 - 需要在掘金终端订阅
  2. 数据量大 - 财务数据查询耗时较长
  3. 免费版限制 - 部分财务数据需要付费版本

解决方案

  • 检查掘金终端是否开通财务数据权限
  • 减少查询标的数量
  • 增加超时时间配置

其他限制

  • get_contract_expire_days 仅支持期货/期权/可转债,不支持股票
  • get_trading_session 查询所有标的时可能超时,建议指定具体标的

常见问题

如何获取掘金Token?
  1. 下载并安装掘金量化终端
  2. 注册并登录终端
  3. 在终端设置中复制 Token
交易功能需要什么配置?

交易功能(下单、撤单等)需要在 MCP 客户端配置中添加 X-GM-Account-Id Header:

  1. 掘金终端已开启仿真/实盘模式
  2. 在 MCP 客户端配置的 headers 中添加 "X-GM-Account-Id": "你的账户ID"
  3. 账户已在掘金终端中绑定
免费版有什么限制?
  • 历史数据仅限180天
  • L2行情数据不可用
  • 中证系列指数成分股权重不提供(weight=0)
如何在IDE中使用?

在 Cursor / Claude Desktop / CodeBuddy 等 MCP 客户端中配置 HTTP 连接,在 headers 中传入 Token:

{
  "mcpServers": {
    "gm-mcp": {
      "url": "http://127.0.0.1:8000/mcp",
      "headers": {
        "X-GM-Token": "你的掘金Token",
        "X-GM-Account-Id": "你的账户ID"
      }
    }
  }
}

先启动服务:python -m gm_mcp

许可证

MIT License

致谢

Quick Setup
Installation guide for this server

Install Package (if required)

uvx juejin-mcp

Cursor configuration (mcp.json)

{ "mcpServers": { "getway-juejin-mcp": { "command": "uvx", "args": [ "juejin-mcp" ] } } }