tachibot-mcp 2.23.0 → 2.23.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +5 -0
- package/README.md +1 -1
- package/dist/src/config/model-constants.js +9 -6
- package/dist/src/config/model-defaults.js +1 -1
- package/dist/src/orchestrators/collaborative/registries/ModelProviderRegistry.js +1 -1
- package/dist/src/tools/jury-tool.js +2 -2
- package/dist/src/tools/openrouter-tools.js +10 -8
- package/dist/src/tools/registry.js +2 -2
- package/package.json +1 -1
- package/skills/algo/SKILL.md +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -5,6 +5,11 @@ All notable changes to TachiBot MCP will be documented in this file.
|
|
|
5
5
|
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
|
|
6
6
|
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
|
7
7
|
|
|
8
|
+
## [2.23.1] - 2026-06-11
|
|
9
|
+
|
|
10
|
+
### Changed
|
|
11
|
+
- **MiniMax M2.7 → M3** (`minimax/minimax-m3`, released May 31 on OpenRouter, API-verified via grok_search): 1M-token context (up from 200K), MSA sparse attention (~1/20 compute at 1M ctx vs prior gen), native multimodal, tuned for long-horizon agentic work. Same promo pricing as M2.7 ($0.30/$1.20 per M). Powers `minimax_code`, `minimax_agent`, and the `minimax` juror. M2.7 kept as quota fallback via `MODEL_FALLBACKS`.
|
|
12
|
+
|
|
8
13
|
## [2.23.0] - 2026-06-11
|
|
9
14
|
|
|
10
15
|
### Changed
|
package/README.md
CHANGED
|
@@ -12,7 +12,7 @@
|
|
|
12
12
|
|
|
13
13
|
**57 AI tools. 12 providers. One protocol.**
|
|
14
14
|
|
|
15
|
-
Orchestrate Perplexity, Grok, GPT-5, Gemini, Qwen, Kimi K2.
|
|
15
|
+
Orchestrate Perplexity, Grok, GPT-5.5, Gemini, Qwen, Kimi K2.6, and MiniMax M3
|
|
16
16
|
from Claude Code, Claude Desktop, Cursor, or any MCP client.
|
|
17
17
|
|
|
18
18
|
[Get Started](#-quick-start) · [View Tools](#-tool-ecosystem-57-tools) · [Documentation](https://tachibot.com/docs)
|
|
@@ -95,9 +95,10 @@ export const KIMI_MODELS = {
|
|
|
95
95
|
K2_5: "moonshotai/kimi-k2.5", // Previous: multimodal + agent swarm (fallback)
|
|
96
96
|
};
|
|
97
97
|
// MiniMax Models (MiniMax via OpenRouter)
|
|
98
|
-
//
|
|
98
|
+
// M3 released May 31, 2026 - 1M ctx, MSA sparse attention (~1/20 compute at 1M), native multimodal
|
|
99
99
|
export const MINIMAX_MODELS = {
|
|
100
|
-
|
|
100
|
+
M3: "minimax/minimax-m3", // 1M ctx, MSA sparse attention, multimodal, agentic/coding, $0.30/$1.20
|
|
101
|
+
M2_7: "minimax/minimax-m2.7", // 2300B/100B MoE, 200K ctx, SWE-Pro 56.22%, Multi-SWE #1 (fallback)
|
|
101
102
|
M2_5: "minimax/minimax-m2.5", // SWE-Bench 80.2%, 37% faster than M2.1 (legacy)
|
|
102
103
|
M2_1: "minimax/minimax-m2.1", // 230B/10B MoE - SWE-Bench 72.5% (legacy)
|
|
103
104
|
};
|
|
@@ -188,7 +189,7 @@ export const CURRENT_MODELS = {
|
|
|
188
189
|
kimi: KIMI_MODELS.K2_6, // K2.6 (Apr 2026): 1T MoE, SWE-bench Pro leader
|
|
189
190
|
qwen: QWEN_MODELS.CODER_NEXT, // Qwen3-Coder-Next: 80B/3B MoE, 262K ctx, SWE >70% (no 3.6-coder yet)
|
|
190
191
|
qwen_reason: QWEN_MODELS.MAX_THINKING, // 235B MoE thinking mode (HMMT 98%) — still best for reasoning
|
|
191
|
-
minimax: MINIMAX_MODELS.
|
|
192
|
+
minimax: MINIMAX_MODELS.M3, // M3: 1M ctx, MSA sparse attention, agentic/coding
|
|
192
193
|
}
|
|
193
194
|
};
|
|
194
195
|
// Tool-specific defaults - References CURRENT_MODELS for easy bumping
|
|
@@ -309,12 +310,12 @@ export const TOOL_DEFAULTS = {
|
|
|
309
310
|
},
|
|
310
311
|
// MiniMax tools - VERY CHEAP, open source
|
|
311
312
|
minimax_code: {
|
|
312
|
-
model: MINIMAX_MODELS.
|
|
313
|
+
model: MINIMAX_MODELS.M3, // 1M ctx, MSA sparse attention, agentic/coding
|
|
313
314
|
maxTokens: 4000,
|
|
314
315
|
temperature: 0.3, // Lower for precise code
|
|
315
316
|
},
|
|
316
317
|
minimax_agent: {
|
|
317
|
-
model: MINIMAX_MODELS.
|
|
318
|
+
model: MINIMAX_MODELS.M3, // 1M ctx, multimodal, long-horizon agentic work
|
|
318
319
|
maxTokens: 4000,
|
|
319
320
|
temperature: 0.5, // Balanced for agentic tasks
|
|
320
321
|
},
|
|
@@ -381,6 +382,7 @@ export const MODEL_DISPLAY_NAMES = {
|
|
|
381
382
|
"qwen/qwen3-max-thinking": "qwen-max",
|
|
382
383
|
"qwen/qwen3-235b-a22b-thinking-2507": "qwen-235b-thinking",
|
|
383
384
|
// MiniMax
|
|
385
|
+
"minimax/minimax-m3": "minimax-m3",
|
|
384
386
|
"minimax/minimax-m2.7": "minimax-m2.7",
|
|
385
387
|
"minimax/minimax-m2.5": "minimax-m2.5",
|
|
386
388
|
"minimax/minimax-m2.1": "minimax-m2.1",
|
|
@@ -434,7 +436,8 @@ export const MODEL_PRICING = {
|
|
|
434
436
|
"qwen/qwen3-max-thinking": 0.005,
|
|
435
437
|
"qwen/qwen3-235b-a22b-thinking-2507": 0.000822, // ($0.15 + $1.50) / 2 / 1000
|
|
436
438
|
// OpenRouter models - MiniMax (VERY CHEAP!)
|
|
437
|
-
"minimax/minimax-
|
|
439
|
+
"minimax/minimax-m3": 0.00075, // ($0.30 + $1.20) / 2 / 1000 - flagship (promo pricing)
|
|
440
|
+
"minimax/minimax-m2.7": 0.00075, // ($0.30 + $1.20) / 2 / 1000 - fallback
|
|
438
441
|
"minimax/minimax-m2.5": 0.000685, // legacy
|
|
439
442
|
"minimax/minimax-m2.1": 0.000685, // legacy
|
|
440
443
|
};
|
|
@@ -29,7 +29,7 @@ const MODELS = {
|
|
|
29
29
|
QWEN: QWEN_MODELS.CODER_NEXT, // qwen/qwen3-coder-next (80B/3B MoE, 262K ctx)
|
|
30
30
|
QWEN_REASON: QWEN_MODELS.MAX_THINKING, // qwen/qwen3-235b-a22b-thinking (235B MoE)
|
|
31
31
|
KIMI: KIMI_MODELS.K2_6, // moonshotai/kimi-k2.6 (Apr 2026 - SWE-bench Pro leader)
|
|
32
|
-
MINIMAX: MINIMAX_MODELS.
|
|
32
|
+
MINIMAX: MINIMAX_MODELS.M3, // minimax/minimax-m3 (May 2026 - 1M ctx, MSA sparse attention)
|
|
33
33
|
};
|
|
34
34
|
/**
|
|
35
35
|
* Get Scout model configuration
|
|
@@ -101,7 +101,7 @@ modelProviderRegistry.registerMany([
|
|
|
101
101
|
// Qwen reason (heavy math/reasoning)
|
|
102
102
|
{ modelName: "qwen-reason", toolName: "qwen_reason", provider: "openrouter", aliases: ["qwen_reason", "qwen-max", "qwen-thinking"] },
|
|
103
103
|
// MiniMax models (cheap agentic)
|
|
104
|
-
{ modelName: "minimax", toolName: "minimax_agent", provider: "openrouter", aliases: ["minimax-agent", "minimax-m2.7", "minimax-m2.5"] },
|
|
104
|
+
{ modelName: "minimax", toolName: "minimax_agent", provider: "openrouter", aliases: ["minimax-agent", "minimax-m3", "minimax-m2.7", "minimax-m2.5"] },
|
|
105
105
|
{ modelName: "minimax-code", toolName: "minimax_code", provider: "openrouter", aliases: ["minimax_code"] },
|
|
106
106
|
// Think tool
|
|
107
107
|
{ modelName: "think", toolName: "think", provider: "anthropic" },
|
|
@@ -73,9 +73,9 @@ export const JUROR_REGISTRY = {
|
|
|
73
73
|
label: "MiniMax (Agentic)",
|
|
74
74
|
role: "Focus on practical execution steps and agentic task planning.",
|
|
75
75
|
call: async (q) => callOpenRouter([
|
|
76
|
-
{ role: "system", content: `You are MiniMax
|
|
76
|
+
{ role: "system", content: `You are MiniMax M3, an agentic model built for long-horizon multi-step work (1M context, MSA sparse attention). Focus on practical execution and step-by-step plans. ${FORMAT_INSTRUCTION}` },
|
|
77
77
|
{ role: "user", content: q }
|
|
78
|
-
], OpenRouterModel.
|
|
78
|
+
], OpenRouterModel.MINIMAX_M3, 0.5, 3000),
|
|
79
79
|
},
|
|
80
80
|
deepseek: {
|
|
81
81
|
label: "DeepSeek V4 Pro (Frontier Reasoning)",
|
|
@@ -32,6 +32,7 @@ export var OpenRouterModel;
|
|
|
32
32
|
OpenRouterModel["KIMI_K2_6"] = "moonshotai/kimi-k2.6";
|
|
33
33
|
OpenRouterModel["KIMI_K2_5"] = "moonshotai/kimi-k2.5";
|
|
34
34
|
// MiniMax models - VERY CHEAP, #1 AI Intelligence Index
|
|
35
|
+
OpenRouterModel["MINIMAX_M3"] = "minimax/minimax-m3";
|
|
35
36
|
OpenRouterModel["MINIMAX_M2_7"] = "minimax/minimax-m2.7";
|
|
36
37
|
OpenRouterModel["MINIMAX_M2_5"] = "minimax/minimax-m2.5";
|
|
37
38
|
OpenRouterModel["MINIMAX_M2_1"] = "minimax/minimax-m2.1";
|
|
@@ -56,6 +57,7 @@ const MODEL_FALLBACKS = {
|
|
|
56
57
|
[OpenRouterModel.DEEPSEEK_V4_PRO]: OpenRouterModel.DEEPSEEK_V4_FLASH, // Fall back to V4 Flash if Pro is rate-limited
|
|
57
58
|
[OpenRouterModel.GLM_5_1]: OpenRouterModel.GLM_5, // Fall back to GLM-5 base if 5.1 fails
|
|
58
59
|
[OpenRouterModel.STEPFUN_3_7]: OpenRouterModel.STEPFUN_3_5, // Fall back to 3.5 flash if 3.7 fails
|
|
60
|
+
[OpenRouterModel.MINIMAX_M3]: OpenRouterModel.MINIMAX_M2_7, // Fall back to M2.7 if M3 fails
|
|
59
61
|
};
|
|
60
62
|
/**
|
|
61
63
|
* Call OpenRouter API with auto-fallback on provider quota errors
|
|
@@ -901,12 +903,12 @@ ${FORMAT_INSTRUCTION}`
|
|
|
901
903
|
});
|
|
902
904
|
/**
|
|
903
905
|
* MiniMax Code Tool
|
|
904
|
-
* Single-pass code operations with MiniMax
|
|
906
|
+
* Single-pass code operations with MiniMax M3 (1M ctx, MSA sparse attention, agentic/coding)
|
|
905
907
|
* Best for: atomic code tasks — one input, one output, no planning needed
|
|
906
908
|
*/
|
|
907
909
|
export const minimaxCodeTool = defineModelTool({
|
|
908
910
|
name: "minimax_code",
|
|
909
|
-
description: "Single-pass code operations with MiniMax
|
|
911
|
+
description: "Single-pass code operations with MiniMax M3 (1M ctx, strong agentic/coding). Put your REQUEST in the 'query' parameter. For multi-step tasks, use minimax_agent instead.",
|
|
910
912
|
parameters: z.object({
|
|
911
913
|
query: z.string().describe("Your request or question (REQUIRED - put your main request here)"),
|
|
912
914
|
task: z.enum(["generate", "fix", "review", "optimize", "debug", "refactor"])
|
|
@@ -975,17 +977,17 @@ ${FORMAT_INSTRUCTION}`;
|
|
|
975
977
|
];
|
|
976
978
|
const temp = taskTemperatures[args.task || "review"] ?? 0.3;
|
|
977
979
|
const reportFn = reportProgress ?? (async () => { });
|
|
978
|
-
return await withHeartbeat(() => callOpenRouter(messages, OpenRouterModel.
|
|
980
|
+
return await withHeartbeat(() => callOpenRouter(messages, OpenRouterModel.MINIMAX_M3, temp, 4000), reportFn);
|
|
979
981
|
}
|
|
980
982
|
});
|
|
981
983
|
/**
|
|
982
984
|
* MiniMax Agent Tool
|
|
983
|
-
* Multi-step task decomposition and execution with MiniMax
|
|
985
|
+
* Multi-step task decomposition and execution with MiniMax M3
|
|
984
986
|
* Best for: tasks requiring planning, analysis, research synthesis, decision-making
|
|
985
987
|
*/
|
|
986
988
|
export const minimaxAgentTool = defineModelTool({
|
|
987
989
|
name: "minimax_agent",
|
|
988
|
-
description: "Multi-step task decomposition and execution with MiniMax
|
|
990
|
+
description: "Multi-step task decomposition and execution with MiniMax M3: plan, analyze, research, decide. Use when a task needs breakdown into steps before execution. For single-pass code tasks, use minimax_code instead. Put TASK in 'task' parameter.",
|
|
989
991
|
parameters: z.object({
|
|
990
992
|
task: z.string().describe("The task to execute (REQUIRED - describe what needs to be done)"),
|
|
991
993
|
context: z.string().optional().describe("Additional context about the environment or constraints"),
|
|
@@ -1041,7 +1043,7 @@ ${FORMAT_INSTRUCTION}`
|
|
|
1041
1043
|
}
|
|
1042
1044
|
];
|
|
1043
1045
|
const reportFn = reportProgress ?? (async () => { });
|
|
1044
|
-
return await withHeartbeat(() => callOpenRouter(messages, OpenRouterModel.
|
|
1046
|
+
return await withHeartbeat(() => callOpenRouter(messages, OpenRouterModel.MINIMAX_M3, 0.3, 4000), reportFn);
|
|
1045
1047
|
}
|
|
1046
1048
|
});
|
|
1047
1049
|
/**
|
|
@@ -1301,8 +1303,8 @@ export function getAllOpenRouterTools() {
|
|
|
1301
1303
|
kimiLongContextTool, // Kimi K2.6 - long-context analysis (256K)
|
|
1302
1304
|
// NEW tools (Jan 2026)
|
|
1303
1305
|
qwenReasonTool, // Qwen3-Max-Thinking - heavy reasoning
|
|
1304
|
-
minimaxCodeTool, // MiniMax
|
|
1305
|
-
minimaxAgentTool, // MiniMax
|
|
1306
|
+
minimaxCodeTool, // MiniMax M3 - 1M ctx, MSA sparse attention, agentic/coding
|
|
1307
|
+
minimaxAgentTool, // MiniMax M3 - agentic workflows, multimodal
|
|
1306
1308
|
// NEW tools (Jun 2026)
|
|
1307
1309
|
deepseekReasonTool, // DeepSeek V4 Pro - frontier reasoning/math (open-weight)
|
|
1308
1310
|
deepseekAlgoTool, // DeepSeek V4 Pro - algorithmic code review (top AIME/CodeElo)
|
|
@@ -108,8 +108,8 @@ export async function getAllTools(inlineTools = []) {
|
|
|
108
108
|
kimiDecomposeTool, // Task decomposition (Kimi K2.5 Agent Swarm)
|
|
109
109
|
kimiLongContextTool, // Long-context analysis (Kimi K2.5 - 256K)
|
|
110
110
|
qwenReasonTool, // Heavy reasoning (Qwen3-Max-Thinking >1T params)
|
|
111
|
-
minimaxCodeTool, // MiniMax
|
|
112
|
-
minimaxAgentTool, // MiniMax
|
|
111
|
+
minimaxCodeTool, // MiniMax M3 - 1M ctx, agentic/coding
|
|
112
|
+
minimaxAgentTool, // MiniMax M3 - agentic workflows
|
|
113
113
|
deepseekReasonTool, // DeepSeek V4 Pro — frontier reasoning/math (open-weight)
|
|
114
114
|
deepseekAlgoTool, // DeepSeek V4 Pro — algorithmic code review (top AIME/CodeElo)
|
|
115
115
|
glmReasonTool, // Zhipu GLM-5.1 — agentic reasoning (SWE-Bench Pro leader)
|
package/package.json
CHANGED
package/skills/algo/SKILL.md
CHANGED
|
@@ -68,7 +68,7 @@ mcp__tachibot-mcp__qwen_reason({
|
|
|
68
68
|
})
|
|
69
69
|
```
|
|
70
70
|
|
|
71
|
-
**minimax_code** — Implementation review (
|
|
71
|
+
**minimax_code** — Implementation review (MiniMax M3, 1M ctx, cheap second opinion):
|
|
72
72
|
```
|
|
73
73
|
mcp__tachibot-mcp__minimax_code({
|
|
74
74
|
query: "[problem description + focus]",
|