跳转至

name: minimax-coding-plan-compat description: MiniMax Coding Plan (sk-cp- Token Plan Key) 的各种 API 调用限制和兼容方案。Coding Plan Key 只能调 MCP 工具,不能直接调 Chat Completions/文本生成 API。 version: 1.0.0 author: Hermes Agent tags: [minimax, api, llm, coding-plan]


MiniMax Coding Plan 兼容性指南

核心发现

MiniMax 有两种 API Key:

Key 类型 前缀 用途 支持 Chat Completions
Token Plan Key sk-cp-... Coding Plan 配额,仅限 MCP 工具 ❌ 不支持
Pay-as-you-go API Key sk-... 通用 API,按量计费 ✅ 支持

关键规则The Token Plan Key is not interchangeable with pay-as-you-go API Keys.

Coding Plan Key 的能力范围

sk-cp- 开头的 Key 只能用于 MiniMax Coding Plan MCP server (minimax-coding-plan-mcp) 提供的两个工具:

  1. web_search — 网络搜索(端点:/v1/coding_plan/search
  2. understand_image — 图片分析(端点:/v1/coding_plan/vlm

MCP server 源码在 minimax_mcp/server.py,关键调用路径: - 搜索:api_client.post("/v1/coding_plan/search", json=payload) - 识图:api_client.post("/v1/coding_plan/vlm", json=payload) "/v1/coding_plan/search", json=payload)- 识图:api_client.post("/v1/coding_plan/vlm", json=payload)`## web_search 的 REST 调用方式(关键!参数名是 q 不是 query)

当 agent 没有 web_search 工具(MCP 未注入)时,可以直接通过 Python urllib POST 到 REST 端点:

import json, urllib.request

url = "https://api.minimaxi.com/v1/coding_plan/search"
payload = json.dumps({"q": "搜索词"}).encode('utf-8')  # ⚠️ 参数名是 "q" 不是 "query"!

req = urllib.request.Request(url, data=payload, headers={
    "Authorization": f"Bearer {key}",
    "Content-Type": "application/json"
})

try:
    resp = urllib.request.urlopen(req, timeout=15)
    result = json.loads(resp.read())
    for item in result.get('organic', [])[:3]:
        print(f"  [{item['title']}]({item['link']})")
        print(f"  {item['snippet']}")
except urllib.error.HTTPError as e:
    body = e.read().decode()
    if "invalid params" in body:
        # 可能参数名错了,检查源码确认
        pass

为什么是 q 不是 query MCP server 源码中 web_search 函数收到 query 参数后,构建 payload 时用的是 payload = {"q": query}(server.py 第 60-62 行)。直接调 REST API 时必须用 {"q": ...},否则返回 400 invalid params

web_search 通过 MCP SDK 调用(当 MCP 已注入工具时)

使用 native-mcp skill(MCP tools 已注入为 mcp_minimax_coding_web_search):

from hermes_tools import mcp_call
result = mcp_call("minimax_coding", "web_search", {"query": "搜索词"})

如果 MCP 未注入工具,但 MCP server 进程已在运行(ps aux | grep minimax-coding),可以: 1. 通过 mcp.client.stdio SDK 连接 2. 但最简单的方式是直接 POST REST API(见上) (ps aux | grep minimax-coding),可以: 1. 通过 mcp.client.stdio SDK 连接 2. 但最简单的方式是直接 POST REST API(见上)## 不能做的事

  • ❌ 直接调 /v1/chat/completions → 429 Token Plan Max (0/0 used)
  • ❌ 走 Anthropic 协议(api.minimaxi.com/anthropic)→ 同样 429
  • ❌ 任何标准 LLM 文本生成 API → 都走不通

端点配置

区域 API Host Key 获取
国际 https://api.minimax.io MiniMax Global
国内 https://api.minimaxi.com MiniMax

MCP 配置(正确示例)

mcp_servers:
  minimax_coding:
    command: "uvx"
    args: ["minimax-coding-plan-mcp"]
    env:
      MINIMAX_API_KEY: "sk-cp-..."
      MINIMAX_API_HOST: "https://api.minimaxi.com"

如果需要在 TradingAgents 等项目中用 MiniMax

必须使用 pay-as-you-go API Keysk- 开头),配置方式:

config = {
    "llm_provider": "minimax",  # 走 OpenAI 兼容协议
    "deep_think_llm": "MiniMax-M2.7",
    "quick_think_llm": "MiniMax-M2.7-highspeed",
}
# 环境变量需要: MINIMAX_API_KEY=sk-...

或者走 Anthropic 协议(如果 pay-as-you-go key 也支持):

config = {
    "llm_provider": "anthropic",
    "deep_think_llm": "MiniMax-M2.7",
    "quick_think_llm": "MiniMax-M2.7-highspeed",
    "backend_url": "https://api.minimaxi.com/anthropic",
}

常见错误

  • 429: Token Plan Max (0/0 used) — 不是"用完了额度",是这个 Key 本来就不支持该 API
  • 429: 5-hour usage limit reached — Token Plan Key 的 5 小时限额,下午 3 点重置(但即使重置后也调不了 Chat Completions)

验证方法

age limit reached`  Token Plan Key  5 小时限额,下午 3 点重置(但即使重置后也调不了 Chat Completions)

## 验证方法

```bash# 测试 Chat Completions 是否可用(Token Plan Key  429curl -X POST "https://api.minimaxi.com/v1/chat/completions" \
  -H "Authorization: Bearer sk-cp-..." \
  -H "Content-Type: application/json" \
  -d '{"model":"MiniMax-M2.7-highspeed","messages":[{"role":"user","content":"hi"}]}'