Summary
The PyPI release defaults DEFAULT_SPEECH_MODEL = "speech-2.6-hd" and DEFAULT_MUSIC_MODEL = "music-2.0" (in minimax_mcp/const.py) cause every MCP call to fail for users on the MiniMax Coding Plan subscription, even though the same key works perfectly via direct API calls with newer model versions.
Symptom
All MCP-routed calls to text_to_audio and music_generation return:
{
"base_resp": {
"status_code": 2056,
"status_msg": "usage limit exceeded, 5-hour usage limit reached for Token Plan Hs_max (0/0 used), resets at 2026-05-12T15:00:00Z"
}
}
The dashboard shows the user has plenty of unused Coding Plan quota — making this look like a credentials or quota-display bug, when it's actually a plan-routing issue.
Root Cause (empirically verified 2026-05-12)
Same API key (sk-cp-*, Coding Plan), same /v1/t2a_v2 endpoint, two direct curl calls:
| Model |
Result |
speech-2.6-hd (current MCP default) |
❌ 2056 Token Plan Hs_max 0/0 |
speech-2.8-hd |
✅ success |
music-2.0 (current MCP default) |
❌ 2056 Token Plan Hs_max 0/0 |
music-2.6 |
✅ success |
The discriminator is the model version, not headers, not endpoint, not key. Older model versions appear to require Token Plan (Hs_max) subscription. Coding Plan users (which has its own per-endpoint quotas visible on the dashboard: TTS HD 19000/day, music-2.6 100/day, image-01 200/day, Hailuo-2.3 3/day) cannot reach those older models at all.
The MM-API-Source header ('MM-API-Source': 'Minimax-MCP' in minimax_mcp/client.py) was an initial false-positive hypothesis — empirically it does NOT change routing.
Suggested Fix
In minimax_mcp/const.py:
DEFAULT_SPEECH_MODEL = "speech-2.8-hd" # was: speech-2.6-hd
DEFAULT_MUSIC_MODEL = "music-2.6" # was: music-2.0
Alternatively (more conservative): document in the README which model versions are accessible per plan tier, and add a MINIMAX_DEFAULT_MODELS=coding-plan-friendly env var or similar opt-in.
Either approach unblocks Coding Plan users without affecting Token Plan users (who have access to all model versions either way).
Why this matters
The Coding-Plan-MCP repo exists (https://github.com/MiniMax-AI/MiniMax-Coding-Plan-MCP) but only exposes web_search + understand_image — Coding Plan users currently have no documented MCP path for TTS / music / image / video generation, even though the dashboard suggests those quotas are available. This issue (the model-default trap) is likely the reason that path appears broken.
Workaround for current Coding Plan users
Pass model: "speech-2.8-hd" (or "music-2.6") explicitly on every call, or fork the repo and bump the const defaults (we've shipped a local fork patch as coding-plan-defaults branch in our infrastructure: single-line change in const.py).
Environment
- Plan: MiniMax Coding Plan (
sk-cp-* API key prefix)
- API Host:
https://api.minimax.io (Global)
- minimax-mcp installation:
uvx minimax-mcp (latest PyPI as of 2026-05-12)
- Client: Claude Code on macOS
Happy to provide more detail or contribute a PR if a fix direction is decided. Thanks for the tool.
Summary
The PyPI release defaults
DEFAULT_SPEECH_MODEL = "speech-2.6-hd"andDEFAULT_MUSIC_MODEL = "music-2.0"(inminimax_mcp/const.py) cause every MCP call to fail for users on the MiniMax Coding Plan subscription, even though the same key works perfectly via direct API calls with newer model versions.Symptom
All MCP-routed calls to
text_to_audioandmusic_generationreturn:{ "base_resp": { "status_code": 2056, "status_msg": "usage limit exceeded, 5-hour usage limit reached for Token Plan Hs_max (0/0 used), resets at 2026-05-12T15:00:00Z" } }The dashboard shows the user has plenty of unused Coding Plan quota — making this look like a credentials or quota-display bug, when it's actually a plan-routing issue.
Root Cause (empirically verified 2026-05-12)
Same API key (
sk-cp-*, Coding Plan), same/v1/t2a_v2endpoint, two directcurlcalls:speech-2.6-hd(current MCP default)speech-2.8-hdmusic-2.0(current MCP default)music-2.6The discriminator is the model version, not headers, not endpoint, not key. Older model versions appear to require Token Plan (Hs_max) subscription. Coding Plan users (which has its own per-endpoint quotas visible on the dashboard: TTS HD 19000/day, music-2.6 100/day, image-01 200/day, Hailuo-2.3 3/day) cannot reach those older models at all.
The MM-API-Source header (
'MM-API-Source': 'Minimax-MCP'inminimax_mcp/client.py) was an initial false-positive hypothesis — empirically it does NOT change routing.Suggested Fix
In
minimax_mcp/const.py:Alternatively (more conservative): document in the README which model versions are accessible per plan tier, and add a
MINIMAX_DEFAULT_MODELS=coding-plan-friendlyenv var or similar opt-in.Either approach unblocks Coding Plan users without affecting Token Plan users (who have access to all model versions either way).
Why this matters
The Coding-Plan-MCP repo exists (https://github.com/MiniMax-AI/MiniMax-Coding-Plan-MCP) but only exposes
web_search+understand_image— Coding Plan users currently have no documented MCP path for TTS / music / image / video generation, even though the dashboard suggests those quotas are available. This issue (the model-default trap) is likely the reason that path appears broken.Workaround for current Coding Plan users
Pass
model: "speech-2.8-hd"(or"music-2.6") explicitly on every call, or fork the repo and bump the const defaults (we've shipped a local fork patch ascoding-plan-defaultsbranch in our infrastructure: single-line change inconst.py).Environment
sk-cp-*API key prefix)https://api.minimax.io(Global)uvx minimax-mcp(latest PyPI as of 2026-05-12)Happy to provide more detail or contribute a PR if a fix direction is decided. Thanks for the tool.