tachibot-mcp 2.26.1 → 2.27.0
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/README.md +18 -13
- package/dist/src/config/model-constants.js +68 -43
- package/dist/src/profiles/balanced.js +2 -1
- package/dist/src/profiles/code_focus.js +1 -0
- package/dist/src/profiles/full.js +2 -1
- package/dist/src/profiles/heavy_coding.js +2 -1
- package/dist/src/profiles/minimal.js +1 -0
- package/dist/src/profiles/research_power.js +2 -1
- package/dist/src/tools/grok-enhanced.js +17 -9
- package/dist/src/tools/grok-search-lite-tool.js +82 -0
- package/dist/src/tools/grok-tools.js +23 -15
- package/dist/src/tools/openai-tools.js +9 -3
- package/dist/src/tools/provider-catalog.js +1 -0
- package/dist/src/tools/registry.js +4 -1
- package/docs/TOOLS_REFERENCE.md +26 -2
- package/docs/TOOL_PROFILES.md +13 -13
- package/package.json +2 -2
- package/profiles/balanced.json +2 -1
- package/profiles/code_focus.json +1 -0
- package/profiles/full.json +2 -1
- package/profiles/heavy_coding.json +2 -1
- package/profiles/minimal.json +1 -0
- package/profiles/research_power.json +2 -1
- package/tools.config.json +3 -1
package/README.md
CHANGED
|
@@ -4,18 +4,18 @@
|
|
|
4
4
|
|
|
5
5
|
### Multi-Model AI Orchestration Platform
|
|
6
6
|
|
|
7
|
-
[](https://www.npmjs.com/package/tachibot-mcp)
|
|
8
|
+
[](#-tool-ecosystem-65-tools)
|
|
9
9
|
[](LICENSE)
|
|
10
10
|
[](https://nodejs.org)
|
|
11
11
|
[](https://modelcontextprotocol.io)
|
|
12
12
|
|
|
13
|
-
**
|
|
13
|
+
**65 AI tools. 12 providers. One protocol.**
|
|
14
14
|
|
|
15
15
|
Orchestrate Perplexity, Grok, GPT-5.5, Gemini, Qwen, Kimi K2.7-Code, and MiniMax M3
|
|
16
16
|
from Claude Code, Claude Desktop, Cursor, or any MCP client.
|
|
17
17
|
|
|
18
|
-
[Get Started](#-quick-start) · [View Tools](#-tool-ecosystem-
|
|
18
|
+
[Get Started](#-quick-start) · [View Tools](#-tool-ecosystem-65-tools) · [Documentation](https://tachibot.com/docs)
|
|
19
19
|
|
|
20
20
|
<br>
|
|
21
21
|
|
|
@@ -30,6 +30,11 @@ from Claude Code, Claude Desktop, Cursor, or any MCP client.
|
|
|
30
30
|
|
|
31
31
|
## What's New
|
|
32
32
|
|
|
33
|
+
### v2.27.0
|
|
34
|
+
- **Grok 4.5** (Jul 8 flagship, "Opus-class") now powers all Grok tools, with automatic fallback to `grok-4.3` while xAI's region-staged rollout completes (EU mid-July) — tools keep working everywhere, and 4.5 activates by itself.
|
|
35
|
+
- **`grok_search_lite`** (new tool, 65 total) — the same Grok live search on `grok-4-1-fast` ($0.20/$0.50, 2M ctx), ~10x cheaper than `grok_search`. Use it for high-volume lookups and jury/council fan-outs.
|
|
36
|
+
- **GPT-5.6 tiers** — `openai_*` tools move to `gpt-5.6-sol` (flagship, same $5/$30 as 5.5 but stronger), `terra` for code (5.5-level at half price), `luna` for explanations ($1/$6). The $30/$180 `gpt-5.5-pro` tier is replaced by sol + reasoning effort; a permission fallback (sol → terra → 5.5) covers org-gated accounts.
|
|
37
|
+
|
|
33
38
|
### v2.26.1
|
|
34
39
|
- **`/test` and `/audit` skills** (19 skills total) — `/test` generates runnable tests via `testgen`; `/audit` runs an OWASP/CWE security review via `security_review`.
|
|
35
40
|
- **Skill install in the wizard** — `tachibot init` now offers to install Claude Code skills with a per-skill skip choice (`[Enter]`=all · `[s]`=choose which to skip · `[n]`=none). Skills are opt-in — `postinstall` no longer writes to `~/.claude` silently (`npm run install-skills` still installs all non-interactively).
|
|
@@ -47,7 +52,7 @@ from Claude Code, Claude Desktop, Cursor, or any MCP client.
|
|
|
47
52
|
- **One-click Claude Desktop install** — download the `.mcpb` from the latest release and double-click. No JSON editing.
|
|
48
53
|
- **`doctor`** — shows which keys are set, which tools are visible vs hidden and why, and what to try first.
|
|
49
54
|
|
|
50
|
-
#### New tools & skills (
|
|
55
|
+
#### New tools & skills (65 tools · 19 skills)
|
|
51
56
|
- `debug_triage` — ranked root-cause hypotheses with the cheapest discriminating check for each (Grok 4.3)
|
|
52
57
|
- `spec_writer` — loose request → reviewable spec: user stories, Given/When/Then, out-of-scope, open questions (GPT-5.5)
|
|
53
58
|
- `diff_review` / `plan_critique` / `testgen` / `security_review` — multi-model diff review, adversarial plan red-team, test generation, OWASP/CWE audit
|
|
@@ -95,7 +100,7 @@ Skills automatically adapt to your configured API keys. Even with just 1-2 provi
|
|
|
95
100
|
## Key Features
|
|
96
101
|
|
|
97
102
|
### Multi-Model Intelligence
|
|
98
|
-
- **
|
|
103
|
+
- **65 AI Tools** across 12 providers — Perplexity, Grok, GPT-5, Gemini, Qwen, Kimi, MiniMax, DeepSeek, GLM (Zhipu), StepFun, ERNIE (Baidu), plus free local models (Ollama / LM Studio / llama.cpp / vLLM)
|
|
99
104
|
- **Gemini 3.5 Flash** (`gemini-3.5-flash`, GA May 19 2026) — Flash/search tier; reasoning default stays `gemini-3.1-pro-preview`
|
|
100
105
|
- **Multi-Model Council** — planner_maker synthesizes plans from 5+ models into bite-sized TDD steps
|
|
101
106
|
- **Smart Routing** — Automatic model selection for optimal results
|
|
@@ -111,11 +116,11 @@ Skills automatically adapt to your configured API keys. Even with just 1-2 provi
|
|
|
111
116
|
| Profile | Tools | Best For |
|
|
112
117
|
|---------|-------|----------|
|
|
113
118
|
| **Minimal** | 13 | Quick tasks, low token budget |
|
|
114
|
-
| **Research Power** |
|
|
119
|
+
| **Research Power** | 36 | Deep investigation, multi-source |
|
|
115
120
|
| **Code Focus** | 42 | Software development, SWE tasks |
|
|
116
|
-
| **Balanced** |
|
|
117
|
-
| **Heavy Coding** |
|
|
118
|
-
| **Full** (default) |
|
|
121
|
+
| **Balanced** | 54 | General-purpose, mixed workflows |
|
|
122
|
+
| **Heavy Coding** | 58 | Max code tools + agentic workflows |
|
|
123
|
+
| **Full** (default) | 65 | Everything enabled |
|
|
119
124
|
|
|
120
125
|
### Developer Experience
|
|
121
126
|
- **Claude Code** — First-class support
|
|
@@ -195,10 +200,10 @@ See [Installation Guide](docs/INSTALLATION_BOTH.md) for detailed instructions.
|
|
|
195
200
|
|
|
196
201
|
---
|
|
197
202
|
|
|
198
|
-
## Tool Ecosystem (
|
|
203
|
+
## Tool Ecosystem (65 Tools)
|
|
199
204
|
|
|
200
|
-
### Research & Search (
|
|
201
|
-
`perplexity_ask` · `perplexity_reason` · `grok_search` · `openai_search` · `gemini_search`
|
|
205
|
+
### Research & Search (6)
|
|
206
|
+
`perplexity_ask` · `perplexity_reason` · `grok_search` · `grok_search_lite` · `openai_search` · `gemini_search`
|
|
202
207
|
|
|
203
208
|
### Reasoning & Planning (14)
|
|
204
209
|
`grok_reason` · `openai_reason` · `qwen_reason` · `qwq_reason` · `kimi_thinking` · `kimi_decompose` · `deepseek_reason` · `glm_reason` · `stepfun_reason` · `ernie_reason` · `planner_maker` · `planner_runner` · `list_plans` · `spec_writer`
|
|
@@ -6,26 +6,33 @@
|
|
|
6
6
|
// =============================================================================
|
|
7
7
|
// OPENAI MODELS (provider-based naming)
|
|
8
8
|
// =============================================================================
|
|
9
|
-
// GPT-5.
|
|
10
|
-
//
|
|
11
|
-
//
|
|
12
|
-
// OpenRouter uses prefix: openai/gpt-5.
|
|
9
|
+
// GPT-5.6 released Jul 9, 2026 - CURRENT. Three durable tiers replace the pro/mini split:
|
|
10
|
+
// sol (flagship $5/$30) / terra (balanced $2.50/$15) / luna (fast $1/$6). All 1.05M ctx, 128K out.
|
|
11
|
+
// "Pro" is no longer a model: sol + reasoning.effort (the $30/$180 gpt-5.5-pro tier is gone).
|
|
12
|
+
// GPT-5.5 (Apr 23, 2026) kept as fallback. OpenRouter uses prefix: openai/gpt-5.6-sol etc.
|
|
13
13
|
export const OPENAI_MODELS = {
|
|
14
|
-
// GPT-5.
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
14
|
+
// GPT-5.6 tiers (Jul 9, 2026 - CURRENT)
|
|
15
|
+
DEFAULT: "gpt-5.6-sol", // Flagship: coding/agentic SOTA, 54% more token-efficient than 5.5
|
|
16
|
+
SOL: "gpt-5.6-sol", // Explicit tier alias (also aliased "gpt-5.6" server-side)
|
|
17
|
+
TERRA: "gpt-5.6-terra", // Balanced: matches gpt-5.5 at half price ($2.50/$15)
|
|
18
|
+
LUNA: "gpt-5.6-luna", // Fast/cheap: $1/$6 (weaker long-context recall — avoid huge inputs)
|
|
19
|
+
MINI: "gpt-5.6-luna", // "mini" tier successor (was gpt-5.4-mini)
|
|
20
|
+
PRO: "gpt-5.6-sol", // Pro tier eliminated in 5.6 — sol + reasoning.effort xhigh (was gpt-5.5-pro $30/$180)
|
|
21
|
+
// GPT-5.5 (Apr 2026) - fallback
|
|
22
|
+
FALLBACK_5_5: "gpt-5.5",
|
|
19
23
|
// Aliases for backward compatibility
|
|
20
|
-
THINKING: "gpt-5.
|
|
21
|
-
FULL: "gpt-5.
|
|
22
|
-
CODEX: "gpt-5.
|
|
23
|
-
CODEX_MINI: "gpt-5.
|
|
24
|
-
CODEX_MAX: "gpt-5.
|
|
25
|
-
INSTANT: "gpt-5.
|
|
24
|
+
THINKING: "gpt-5.6-sol", // "Thinking" = sol with high reasoning effort
|
|
25
|
+
FULL: "gpt-5.6-sol", // Map old FULL to DEFAULT
|
|
26
|
+
CODEX: "gpt-5.6-terra", // Coding workhorse tier
|
|
27
|
+
CODEX_MINI: "gpt-5.6-luna", // Cheapest tier
|
|
28
|
+
CODEX_MAX: "gpt-5.6-sol", // Map old codex-max to flagship (use high effort)
|
|
29
|
+
INSTANT: "gpt-5.6-luna", // Fast tier
|
|
26
30
|
};
|
|
27
31
|
// OpenRouter model ID mapping (add prefix when using OpenRouter gateway)
|
|
28
32
|
export const OPENROUTER_PREFIX_MAP = {
|
|
33
|
+
"gpt-5.6-sol": "openai/",
|
|
34
|
+
"gpt-5.6-terra": "openai/",
|
|
35
|
+
"gpt-5.6-luna": "openai/",
|
|
29
36
|
"gpt-5.5": "openai/",
|
|
30
37
|
"gpt-5.5-pro": "openai/",
|
|
31
38
|
"gpt-5.4-mini": "openai/",
|
|
@@ -63,18 +70,21 @@ export const PERPLEXITY_MODELS = {
|
|
|
63
70
|
SONAR_PRO: "sonar-pro", // Advanced search
|
|
64
71
|
SONAR_REASONING: "sonar-reasoning-pro", // Reasoning model (expensive - avoid)
|
|
65
72
|
};
|
|
66
|
-
// Grok Models (xAI) - Updated 2026-
|
|
73
|
+
// Grok Models (xAI) - Updated 2026-07-11 with Grok 4.5 (Jul 8, 2026 flagship)
|
|
67
74
|
export const GROK_MODELS = {
|
|
68
|
-
// Grok 4.
|
|
69
|
-
//
|
|
70
|
-
//
|
|
71
|
-
|
|
75
|
+
// Grok 4.5 (Jul 8, 2026) - CURRENT FLAGSHIP ("Opus-class")
|
|
76
|
+
// 500K context (SMALLER than 4.3's 1M — fine for tools, mind huge inputs), $2/$6,
|
|
77
|
+
// configurable reasoning effort. EU API rollout was "mid-July" — 4.3 stays the fallback.
|
|
78
|
+
_4_5: "grok-4.5", // Flagship: 500K ctx, $2/$6, reasoning.effort low|high
|
|
79
|
+
// Grok 4.3 (Apr 30, 2026) - previous flagship, kept as FALLBACK
|
|
80
|
+
// 1M context, $1.25/$2.50, lowest verified hallucination rate.
|
|
81
|
+
_4_3: "grok-4.3", // Fallback: 1M ctx, $1.25/$2.50, reasoning.effort low|high
|
|
72
82
|
_4_3_LATEST: "grok-4.3-latest", // Rolling alias for newest 4.3 snapshot
|
|
73
83
|
_BUILD: "grok-build-0.1", // Coding specialist (May 29, 2026): 256k ctx, fast agentic coding
|
|
74
|
-
// Grok 4.20 models (Mar 10, 2026) - LEGACY
|
|
75
|
-
_4_20_REASONING: "grok-4.
|
|
76
|
-
_4_20_NON_REASONING: "grok-4.
|
|
77
|
-
_4_20_MULTI_AGENT: "grok-4.
|
|
84
|
+
// Grok 4.20 models (Mar 10, 2026) - LEGACY keys. Deprecated keys now resolve to the current flagship (4.5).
|
|
85
|
+
_4_20_REASONING: "grok-4.5", // [deprecated key] → grok-4.5 (was grok-4.20-0309-reasoning)
|
|
86
|
+
_4_20_NON_REASONING: "grok-4.5", // [deprecated key] → grok-4.5 (was grok-4.20-0309-non-reasoning)
|
|
87
|
+
_4_20_MULTI_AGENT: "grok-4.5", // [deprecated key] → grok-4.5 (architect uses high reasoning.effort)
|
|
78
88
|
// Grok 4.1 fast models (Nov 2025) - BEST VALUE (10x cheaper)
|
|
79
89
|
_4_1_FAST_REASONING: "grok-4-1-fast-reasoning", // Fast reasoning: 2M context, $0.20/$0.50
|
|
80
90
|
_4_1_FAST_NON_REASONING: "grok-4-1-fast-non-reasoning", // Tool-calling optimized: 2M context, $0.20/$0.50
|
|
@@ -159,26 +169,27 @@ export const DEFAULT_WORKFLOW_SETTINGS = {
|
|
|
159
169
|
// When new models release, update ONLY this section!
|
|
160
170
|
// All tools automatically use the new models.
|
|
161
171
|
// ============================================================================
|
|
162
|
-
// UPDATED
|
|
163
|
-
// Kimi K2.
|
|
172
|
+
// UPDATED Jul 11, 2026: GPT-5.6 tiers (sol/terra/luna — Jul 9) + Grok 4.5 (Jul 8 flagship)
|
|
173
|
+
// Kimi K2.7-Code (Jun 12, 2026)
|
|
164
174
|
export const CURRENT_MODELS = {
|
|
165
175
|
openai: {
|
|
166
|
-
default: OPENAI_MODELS.DEFAULT, // gpt-5.
|
|
167
|
-
reason: OPENAI_MODELS.DEFAULT, // Deep reasoning (
|
|
168
|
-
brainstorm: OPENAI_MODELS.DEFAULT, // Creative ideation (
|
|
169
|
-
code: OPENAI_MODELS.
|
|
170
|
-
explain: OPENAI_MODELS.
|
|
171
|
-
search: OPENAI_MODELS.DEFAULT, // Web search (
|
|
172
|
-
// Premium
|
|
173
|
-
premium: OPENAI_MODELS.PRO, // Expert mode (gpt-5.
|
|
176
|
+
default: OPENAI_MODELS.DEFAULT, // gpt-5.6-sol - flagship, agentic/coding SOTA (Jul 2026)
|
|
177
|
+
reason: OPENAI_MODELS.DEFAULT, // Deep reasoning (sol + effort=high)
|
|
178
|
+
brainstorm: OPENAI_MODELS.DEFAULT, // Creative ideation (sol + effort=medium)
|
|
179
|
+
code: OPENAI_MODELS.TERRA, // Code tasks (gpt-5.6-terra - 5.5-level at half price)
|
|
180
|
+
explain: OPENAI_MODELS.LUNA, // Explanations (gpt-5.6-luna - $1/$6, fast)
|
|
181
|
+
search: OPENAI_MODELS.DEFAULT, // Web search (sol + web_search tool)
|
|
182
|
+
// Premium: the 5.5-pro tier ($30/$180) is gone — sol + effort=xhigh replaces it at $5/$30
|
|
183
|
+
premium: OPENAI_MODELS.PRO, // Expert mode (gpt-5.6-sol - crank reasoning effort)
|
|
174
184
|
},
|
|
175
185
|
grok: {
|
|
176
|
-
reason: GROK_MODELS.
|
|
177
|
-
code: GROK_MODELS.
|
|
178
|
-
debug: GROK_MODELS.
|
|
179
|
-
brainstorm: GROK_MODELS.
|
|
180
|
-
search: GROK_MODELS.
|
|
181
|
-
|
|
186
|
+
reason: GROK_MODELS._4_5, // grok-4.5 (Jul 2026 flagship, high reasoning effort)
|
|
187
|
+
code: GROK_MODELS._4_5, // grok-4.5 (flagship quality, tool-calling)
|
|
188
|
+
debug: GROK_MODELS._4_5, // grok-4.5 (flagship debugging)
|
|
189
|
+
brainstorm: GROK_MODELS._4_5, // grok-4.5 (500K context)
|
|
190
|
+
search: GROK_MODELS._4_5, // grok-4.5 flagship synthesis over live search
|
|
191
|
+
search_lite: GROK_MODELS._4_1_FAST_NON_REASONING, // grok-4-1-fast: $0.20/$0.50, 2M ctx, tool-calling optimized — 10x cheaper search
|
|
192
|
+
architect: GROK_MODELS._4_5, // grok-4.5 with high reasoning.effort (agentic swarm behaviour)
|
|
182
193
|
},
|
|
183
194
|
gemini: {
|
|
184
195
|
default: GEMINI_MODELS.GEMINI_3_PRO,
|
|
@@ -275,6 +286,11 @@ export const TOOL_DEFAULTS = {
|
|
|
275
286
|
maxTokens: 3000,
|
|
276
287
|
temperature: 0.7,
|
|
277
288
|
},
|
|
289
|
+
grok_search_lite: {
|
|
290
|
+
model: CURRENT_MODELS.grok.search_lite,
|
|
291
|
+
maxTokens: 3000,
|
|
292
|
+
temperature: 0.3,
|
|
293
|
+
},
|
|
278
294
|
grok_brainstorm: {
|
|
279
295
|
model: CURRENT_MODELS.grok.brainstorm,
|
|
280
296
|
maxTokens: 4000,
|
|
@@ -343,6 +359,10 @@ export const DEFAULT_WORKFLOW_TOOL = "openai_brainstorm";
|
|
|
343
359
|
// Used in tool outputs, usage stats, logs - keeps display consistent
|
|
344
360
|
export const MODEL_DISPLAY_NAMES = {
|
|
345
361
|
// OpenAI
|
|
362
|
+
"gpt-5.6-sol": "gpt-5.6-sol",
|
|
363
|
+
"gpt-5.6-terra": "gpt-5.6-terra",
|
|
364
|
+
"gpt-5.6-luna": "gpt-5.6-luna",
|
|
365
|
+
"gpt-5.6": "gpt-5.6-sol",
|
|
346
366
|
"gpt-5.5": "gpt-5.5",
|
|
347
367
|
"gpt-5.5-pro": "gpt-5.5-pro",
|
|
348
368
|
"gpt-5.4": "gpt-5.4",
|
|
@@ -354,6 +374,7 @@ export const MODEL_DISPLAY_NAMES = {
|
|
|
354
374
|
"gemini-3-flash-preview": "gemini-3-flash",
|
|
355
375
|
"gemini-3.1-flash-lite": "gemini-3.1-flash-lite",
|
|
356
376
|
// Grok (xAI)
|
|
377
|
+
"grok-4.5": "grok-4.5",
|
|
357
378
|
"grok-4.3": "grok-4.3",
|
|
358
379
|
"grok-4.3-latest": "grok-4.3",
|
|
359
380
|
"grok-build-0.1": "grok-build",
|
|
@@ -397,8 +418,11 @@ export function getModelDisplayName(modelId) {
|
|
|
397
418
|
// Model pricing per 1K tokens (input/output average) for cost tracking
|
|
398
419
|
export const MODEL_PRICING = {
|
|
399
420
|
// OpenAI
|
|
400
|
-
"gpt-5.
|
|
401
|
-
"gpt-5.
|
|
421
|
+
"gpt-5.6-sol": 0.0175, // ($5 + $30) / 2 / 1000 (Jul 9, 2026)
|
|
422
|
+
"gpt-5.6-terra": 0.00875, // ($2.50 + $15) / 2 / 1000 (Jul 9, 2026)
|
|
423
|
+
"gpt-5.6-luna": 0.0035, // ($1 + $6) / 2 / 1000 (Jul 9, 2026)
|
|
424
|
+
"gpt-5.5": 0.0175, // ($5 + $30) / 2 / 1000 (Apr 23, 2026 - fallback)
|
|
425
|
+
"gpt-5.5-pro": 0.105, // ($30 + $180) / 2 / 1000 (Apr 23, 2026 - tier removed in 5.6)
|
|
402
426
|
"gpt-5.4": 0.00875, // ($2.50 + $15) / 2 / 1000 (Mar 2026 - legacy)
|
|
403
427
|
"gpt-5.4-mini": 0.002625, // ($0.75 + $4.50) / 2 / 1000 (Mar 17, 2026)
|
|
404
428
|
"gpt-5.4-pro": 0.105, // ($30 + $180) / 2 / 1000 (Mar 2026)
|
|
@@ -408,7 +432,8 @@ export const MODEL_PRICING = {
|
|
|
408
432
|
"gemini-3-flash-preview": 0.00175, // ($0.50 + $3) / 2 / 1000 (legacy)
|
|
409
433
|
"gemini-3.1-flash-lite": 0.001, // Cheapest/fastest in 3.1 series (Mar 2026)
|
|
410
434
|
// Grok
|
|
411
|
-
"grok-4.
|
|
435
|
+
"grok-4.5": 0.004, // ($2 + $6) / 2 / 1000 (Jul 8, 2026 flagship)
|
|
436
|
+
"grok-4.3": 0.001875, // ($1.25 + $2.50) / 2 / 1000 (Apr 30, 2026 - fallback)
|
|
412
437
|
"grok-4.3-latest": 0.001875,
|
|
413
438
|
"grok-build-0.1": 0.001875, // Coding specialist (estimate, same tier)
|
|
414
439
|
"grok-4.20-0309-reasoning": 0.004, // ($2 + $6) / 2 / 1000 (legacy)
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
export const balancedProfile = {
|
|
2
|
-
description: "Balanced set for general use (
|
|
2
|
+
description: "Balanced set for general use (54 tools)",
|
|
3
3
|
tools: {
|
|
4
4
|
think: true,
|
|
5
5
|
focus: true,
|
|
@@ -16,6 +16,7 @@ export const balancedProfile = {
|
|
|
16
16
|
grok_architect: false,
|
|
17
17
|
grok_brainstorm: false,
|
|
18
18
|
grok_search: true,
|
|
19
|
+
grok_search_lite: true,
|
|
19
20
|
openai_reason: true,
|
|
20
21
|
openai_brainstorm: true,
|
|
21
22
|
openai_code_review: false,
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
export const fullProfile = {
|
|
2
|
-
description: "Default profile — all tools enabled for maximum capability (
|
|
2
|
+
description: "Default profile — all tools enabled for maximum capability (65 tools)",
|
|
3
3
|
tools: {
|
|
4
4
|
think: true,
|
|
5
5
|
focus: true,
|
|
@@ -16,6 +16,7 @@ export const fullProfile = {
|
|
|
16
16
|
grok_architect: true,
|
|
17
17
|
grok_brainstorm: true,
|
|
18
18
|
grok_search: true,
|
|
19
|
+
grok_search_lite: true,
|
|
19
20
|
openai_reason: true,
|
|
20
21
|
openai_brainstorm: true,
|
|
21
22
|
openai_code_review: true,
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
export const heavyCodingProfile = {
|
|
2
|
-
description: "Heavy coding with all reasoning & code tools (
|
|
2
|
+
description: "Heavy coding with all reasoning & code tools (58 tools)",
|
|
3
3
|
tools: {
|
|
4
4
|
// Core reasoning - all enabled
|
|
5
5
|
think: true,
|
|
@@ -19,6 +19,7 @@ export const heavyCodingProfile = {
|
|
|
19
19
|
grok_architect: true,
|
|
20
20
|
grok_brainstorm: true,
|
|
21
21
|
grok_search: true,
|
|
22
|
+
grok_search_lite: true,
|
|
22
23
|
// OpenAI - all enabled for heavy coding
|
|
23
24
|
openai_reason: true,
|
|
24
25
|
openai_brainstorm: true,
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
export const researchPowerProfile = {
|
|
2
|
-
description: "Research-focused with Grok search + all Perplexity + brainstorming (
|
|
2
|
+
description: "Research-focused with Grok search + all Perplexity + brainstorming (36 tools)",
|
|
3
3
|
tools: {
|
|
4
4
|
think: true,
|
|
5
5
|
focus: true,
|
|
@@ -16,6 +16,7 @@ export const researchPowerProfile = {
|
|
|
16
16
|
grok_architect: false,
|
|
17
17
|
grok_brainstorm: false,
|
|
18
18
|
grok_search: true,
|
|
19
|
+
grok_search_lite: true,
|
|
19
20
|
openai_reason: false,
|
|
20
21
|
openai_brainstorm: true,
|
|
21
22
|
openai_code_review: false,
|
|
@@ -38,9 +38,11 @@ export async function callGrokEnhanced(messages, options = {}) {
|
|
|
38
38
|
// Use different endpoint and format for search vs non-search
|
|
39
39
|
if (enableLiveSearch) {
|
|
40
40
|
// NEW Agent Tools API (Jan 2025) - uses /v1/responses endpoint
|
|
41
|
-
// with 'input' instead of 'messages' and tools array
|
|
41
|
+
// with 'input' instead of 'messages' and tools array.
|
|
42
|
+
// Respects options.model so grok_search (flagship) and grok_search_lite
|
|
43
|
+
// (grok-4-1-fast, 10x cheaper) share this path.
|
|
42
44
|
const searchRequestBody = {
|
|
43
|
-
model
|
|
45
|
+
model,
|
|
44
46
|
input: messages.map(m => ({ role: m.role, content: m.content })),
|
|
45
47
|
tools: [
|
|
46
48
|
{ type: "web_search" },
|
|
@@ -132,8 +134,14 @@ export async function callGrokEnhanced(messages, options = {}) {
|
|
|
132
134
|
};
|
|
133
135
|
}
|
|
134
136
|
catch (error) {
|
|
137
|
+
const errMsg = error instanceof Error ? error.message : String(error);
|
|
138
|
+
// grok-4.5's rollout is region-staged (EU lands mid-July 2026) — fall back to grok-4.3
|
|
139
|
+
if (model.startsWith('grok-4.5') && errMsg.includes('not available in your region')) {
|
|
140
|
+
console.error(`[Grok] grok-4.5 region-blocked, falling back to grok-4.3`);
|
|
141
|
+
return callGrokEnhanced(messages, { ...options, model: GrokModel.GROK_4_3 });
|
|
142
|
+
}
|
|
135
143
|
return {
|
|
136
|
-
content: `[Grok error: ${
|
|
144
|
+
content: `[Grok error: ${errMsg}]`
|
|
137
145
|
};
|
|
138
146
|
}
|
|
139
147
|
}
|
|
@@ -348,7 +356,7 @@ export const grokSearchTool = {
|
|
|
348
356
|
const messages = [
|
|
349
357
|
{
|
|
350
358
|
role: "system",
|
|
351
|
-
content: `You are Grok 4.
|
|
359
|
+
content: `You are Grok 4.5 with live search. Search for: "${query}".
|
|
352
360
|
${recencyPrompt}
|
|
353
361
|
Provide concise, factual results with sources.
|
|
354
362
|
Limit search to ${max_search_results} sources for cost control.
|
|
@@ -359,13 +367,13 @@ ${FORMAT_INSTRUCTION}`
|
|
|
359
367
|
content: `Search for: ${query}`
|
|
360
368
|
}
|
|
361
369
|
];
|
|
362
|
-
log?.info(`Grok Search: ${max_search_results} sources, recency: ${recency} (using grok-4.
|
|
370
|
+
log?.info(`Grok Search: ${max_search_results} sources, recency: ${recency} (using grok-4.5 flagship)`);
|
|
363
371
|
// Extract domains from sources if specified
|
|
364
372
|
const domains = sources
|
|
365
373
|
?.filter((s) => s.allowed_websites)
|
|
366
374
|
?.flatMap((s) => s.allowed_websites) || [];
|
|
367
375
|
const result = await callGrokEnhanced(messages, {
|
|
368
|
-
model: GrokModel.GROK_4_20_REASONING, //
|
|
376
|
+
model: GrokModel.GROK_4_20_REASONING, // → grok-4.5 flagship (grok_search_lite is the cheap tier)
|
|
369
377
|
enableLiveSearch: true,
|
|
370
378
|
searchSources: max_search_results,
|
|
371
379
|
searchDomains: domains,
|
|
@@ -403,11 +411,11 @@ export function isGrokAvailable() {
|
|
|
403
411
|
export function getGrokStatus() {
|
|
404
412
|
return {
|
|
405
413
|
available: isGrokAvailable(),
|
|
406
|
-
model: "grok-4.
|
|
414
|
+
model: "grok-4.5",
|
|
407
415
|
features: [
|
|
408
|
-
'Grok 4.
|
|
416
|
+
'Grok 4.5 (grok-4.5): Flagship ("Opus-class", Jul 2026), 500K context, configurable reasoning effort ($2/$6)',
|
|
417
|
+
'Grok 4.3 (grok-4.3): Previous flagship, kept as fallback — 1M context, lowest verified hallucination ($1.25/$2.50)',
|
|
409
418
|
'Grok Build (grok-build-0.1): Fast agentic coding specialist, 256k context',
|
|
410
|
-
'Grok 4.20 (grok-4.20-0309-*): Legacy flagship, still available as fallback (2M context)',
|
|
411
419
|
'Live web search with citations',
|
|
412
420
|
'Function calling',
|
|
413
421
|
'Structured outputs',
|
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Grok Search Lite — cost-optimized live web search.
|
|
3
|
+
*
|
|
4
|
+
* Same xAI live-search path as grok_search, but on grok-4-1-fast
|
|
5
|
+
* (tool-calling optimized, 2M context, $0.20/$0.50 — ~10x cheaper than the
|
|
6
|
+
* grok-4.5 flagship). Use for high-volume lookups, jury/council fan-outs, and
|
|
7
|
+
* quick fact checks; use grok_search when synthesis quality matters most.
|
|
8
|
+
*/
|
|
9
|
+
import { z } from "zod";
|
|
10
|
+
import { callGrokEnhanced, GrokModel } from "./grok-enhanced.js";
|
|
11
|
+
import { defineModelTool } from "./factory/define-model-tool.js";
|
|
12
|
+
import { link } from "../utils/ansi-renderer.js";
|
|
13
|
+
import { stripFormatting } from "../utils/format-stripper.js";
|
|
14
|
+
import { FORMAT_INSTRUCTION } from "../utils/format-constants.js";
|
|
15
|
+
/** Pure prompt builder — exported for tests. */
|
|
16
|
+
export function buildGrokSearchLitePrompt(query, maxSearchResults, recency) {
|
|
17
|
+
const recencyPrompt = recency !== "all" ? `Focus on information from the last ${recency}.` : "";
|
|
18
|
+
return `You are Grok with live search (fast tier). Search for: "${query}".
|
|
19
|
+
${recencyPrompt}
|
|
20
|
+
Provide concise, factual results with sources.
|
|
21
|
+
Limit search to ${maxSearchResults} sources for cost control.
|
|
22
|
+
${FORMAT_INSTRUCTION}`;
|
|
23
|
+
}
|
|
24
|
+
export const grokSearchLiteTool = defineModelTool({
|
|
25
|
+
name: "grok_search_lite",
|
|
26
|
+
description: "Cheap web search (grok-4-1-fast, ~10x cheaper than grok_search). Put your QUERY in the 'query' parameter.",
|
|
27
|
+
parameters: z.object({
|
|
28
|
+
query: z.string(),
|
|
29
|
+
sources: z
|
|
30
|
+
.array(z.object({
|
|
31
|
+
type: z.enum(["web", "news", "x", "rss"]),
|
|
32
|
+
country: z.string().optional(),
|
|
33
|
+
allowed_websites: z.array(z.string()).optional(),
|
|
34
|
+
}))
|
|
35
|
+
.optional(),
|
|
36
|
+
max_search_results: z.number().optional(),
|
|
37
|
+
recency: z.enum(["all", "day", "week", "month", "year"]).optional(),
|
|
38
|
+
}),
|
|
39
|
+
execute: async (args, { log }) => {
|
|
40
|
+
const { query, sources = [{ type: "web" }], max_search_results = 20, recency = "all", } = args;
|
|
41
|
+
const messages = [
|
|
42
|
+
{
|
|
43
|
+
role: "system",
|
|
44
|
+
content: buildGrokSearchLitePrompt(query, max_search_results, recency),
|
|
45
|
+
},
|
|
46
|
+
{
|
|
47
|
+
role: "user",
|
|
48
|
+
content: `Search for: ${query}`,
|
|
49
|
+
},
|
|
50
|
+
];
|
|
51
|
+
log?.info(`Grok Search Lite: ${max_search_results} sources, recency: ${recency} (using grok-4-1-fast, $0.20/$0.50)`);
|
|
52
|
+
// Extract domains from sources if specified
|
|
53
|
+
const domains = sources
|
|
54
|
+
?.filter((s) => s.allowed_websites)
|
|
55
|
+
?.flatMap((s) => s.allowed_websites) || [];
|
|
56
|
+
const result = await callGrokEnhanced(messages, {
|
|
57
|
+
model: GrokModel.GROK_4_1_FAST, // Tool-calling optimized cheap tier — the whole point of this tool
|
|
58
|
+
enableLiveSearch: true,
|
|
59
|
+
searchSources: max_search_results,
|
|
60
|
+
searchDomains: domains,
|
|
61
|
+
temperature: 0.3, // Low temperature for factual search
|
|
62
|
+
maxTokens: 3000,
|
|
63
|
+
});
|
|
64
|
+
// Format sources with ANSI links (same shape as grok_search output)
|
|
65
|
+
let output = result.content;
|
|
66
|
+
if (result.sources && result.sources.length > 0) {
|
|
67
|
+
const sourcesText = result.sources
|
|
68
|
+
.slice(0, 10)
|
|
69
|
+
.map((s, i) => {
|
|
70
|
+
const title = s.title || "Source";
|
|
71
|
+
const url = s.url || "";
|
|
72
|
+
return ` ${link(url, `[${i + 1}] ${title}`)}`;
|
|
73
|
+
})
|
|
74
|
+
.join("\n");
|
|
75
|
+
output += `\n\nSources:\n${sourcesText}`;
|
|
76
|
+
}
|
|
77
|
+
// Add cost info
|
|
78
|
+
const estimatedCost = (max_search_results / 1000) * 0.025;
|
|
79
|
+
output += `\n\nSearch used up to ${max_search_results} sources (~$${estimatedCost.toFixed(4)})`;
|
|
80
|
+
return stripFormatting(output);
|
|
81
|
+
},
|
|
82
|
+
});
|
|
@@ -23,18 +23,20 @@ config({ path: path.resolve(__dirname, '../../../.env') });
|
|
|
23
23
|
// Grok API configuration
|
|
24
24
|
const GROK_API_KEY = getGrokApiKey();
|
|
25
25
|
const GROK_API_URL = "https://api.x.ai/v1/chat/completions";
|
|
26
|
-
// Available Grok models - Updated 2026-
|
|
26
|
+
// Available Grok models - Updated 2026-07-11 with Grok 4.5 (Jul 8, 2026 flagship)
|
|
27
27
|
export var GrokModel;
|
|
28
28
|
(function (GrokModel) {
|
|
29
|
-
// Grok 4.
|
|
30
|
-
//
|
|
29
|
+
// Grok 4.5 (Jul 8, 2026) - CURRENT FLAGSHIP ("Opus-class")
|
|
30
|
+
// 500K ctx (smaller than 4.3's 1M), $2/$6, configurable reasoning effort.
|
|
31
|
+
GrokModel["GROK_4_5"] = "grok-4.5";
|
|
32
|
+
// Grok 4.3 (Apr 30, 2026) - previous flagship, kept as FALLBACK
|
|
31
33
|
GrokModel["GROK_4_3"] = "grok-4.3";
|
|
32
34
|
GrokModel["GROK_4_3_LATEST"] = "grok-4.3-latest";
|
|
33
35
|
GrokModel["GROK_BUILD"] = "grok-build-0.1";
|
|
34
|
-
// Grok 4.20 keys (Mar 2026) - DEPRECATED, retained for back-compat → now resolve to
|
|
35
|
-
GrokModel["GROK_4_20_REASONING"] = "grok-4.
|
|
36
|
-
GrokModel["GROK_4_20_NON_REASONING"] = "grok-4.
|
|
37
|
-
GrokModel["GROK_4_20_MULTI_AGENT"] = "grok-4.
|
|
36
|
+
// Grok 4.20 keys (Mar 2026) - DEPRECATED, retained for back-compat → now resolve to the current flagship
|
|
37
|
+
GrokModel["GROK_4_20_REASONING"] = "grok-4.5";
|
|
38
|
+
GrokModel["GROK_4_20_NON_REASONING"] = "grok-4.5";
|
|
39
|
+
GrokModel["GROK_4_20_MULTI_AGENT"] = "grok-4.5";
|
|
38
40
|
// Grok 4.1 fast models (Nov 2025) - BEST VALUE (10x cheaper)
|
|
39
41
|
GrokModel["GROK_4_1_FAST_REASONING"] = "grok-4-1-fast-reasoning";
|
|
40
42
|
GrokModel["GROK_4_1_FAST"] = "grok-4-1-fast-non-reasoning";
|
|
@@ -53,7 +55,7 @@ export var GrokModel;
|
|
|
53
55
|
* - 'code-analysis': Relaxed for code analysis tools
|
|
54
56
|
* - 'llm-orchestration': Medium for LLM-to-LLM calls
|
|
55
57
|
*/
|
|
56
|
-
export async function callGrok(messages, model = GrokModel.
|
|
58
|
+
export async function callGrok(messages, model = GrokModel.GROK_4_5, temperature = 0.7, maxTokens = 16384, // Increased default for comprehensive responses
|
|
57
59
|
forceVisibleOutput = true, validationContext = 'llm-orchestration', reasoningEffort) {
|
|
58
60
|
// Try OpenRouter gateway first if enabled
|
|
59
61
|
if (isGatewayEnabled()) {
|
|
@@ -78,9 +80,9 @@ forceVisibleOutput = true, validationContext = 'llm-orchestration', reasoningEff
|
|
|
78
80
|
}
|
|
79
81
|
return { ...msg, content: validation.sanitized };
|
|
80
82
|
});
|
|
81
|
-
// Grok 4.x reasoning can take 60-90s; 4.
|
|
83
|
+
// Grok 4.x reasoning can take 60-90s; 4.3/4.5 flagship and multi-agent can take longer
|
|
82
84
|
const isReasoning = model.includes('reasoning') || model.includes('multi-agent');
|
|
83
|
-
const isFlagship = model.includes('4.20') || model.startsWith('grok-4.3');
|
|
85
|
+
const isFlagship = model.includes('4.20') || model.startsWith('grok-4.3') || model.startsWith('grok-4.5');
|
|
84
86
|
const timeoutMs = isFlagship ? 180000 : (isReasoning ? 120000 : 60000);
|
|
85
87
|
try {
|
|
86
88
|
// For Grok 4+ models, we need to handle reasoning tokens specially
|
|
@@ -94,8 +96,8 @@ forceVisibleOutput = true, validationContext = 'llm-orchestration', reasoningEff
|
|
|
94
96
|
}
|
|
95
97
|
const controller = new AbortController();
|
|
96
98
|
const timeoutId = setTimeout(() => controller.abort(), timeoutMs);
|
|
97
|
-
// grok-4.3
|
|
98
|
-
const supportsReasoningEffort = model.includes('multi-agent') || model.startsWith('grok-4.3');
|
|
99
|
+
// grok-4.3/4.5 flagships and 4.20 multi-agent all accept reasoning.effort
|
|
100
|
+
const supportsReasoningEffort = model.includes('multi-agent') || model.startsWith('grok-4.3') || model.startsWith('grok-4.5');
|
|
99
101
|
const requestBody = {
|
|
100
102
|
model,
|
|
101
103
|
messages: validatedMessages,
|
|
@@ -138,7 +140,13 @@ forceVisibleOutput = true, validationContext = 'llm-orchestration', reasoningEff
|
|
|
138
140
|
if (error instanceof Error && error.name === 'AbortError') {
|
|
139
141
|
return `[Grok timeout: ${model} exceeded ${isReasoning ? '120' : '60'}s limit]`;
|
|
140
142
|
}
|
|
141
|
-
|
|
143
|
+
const errMsg = error instanceof Error ? error.message : String(error);
|
|
144
|
+
// grok-4.5's rollout is region-staged (EU lands mid-July 2026) — fall back to grok-4.3
|
|
145
|
+
if (model.startsWith('grok-4.5') && errMsg.includes('not available in your region')) {
|
|
146
|
+
console.error(`[Grok] grok-4.5 region-blocked, falling back to grok-4.3`);
|
|
147
|
+
return callGrok(validatedMessages, GrokModel.GROK_4_3, temperature, maxTokens, forceVisibleOutput, validationContext, reasoningEffort);
|
|
148
|
+
}
|
|
149
|
+
return `[Grok error: ${errMsg}]`;
|
|
142
150
|
}
|
|
143
151
|
}
|
|
144
152
|
/**
|
|
@@ -171,7 +179,7 @@ export const grokReasonTool = defineModelTool({
|
|
|
171
179
|
const messages = [
|
|
172
180
|
{
|
|
173
181
|
role: "system",
|
|
174
|
-
content: `You are Grok 4.
|
|
182
|
+
content: `You are Grok 4.5, an expert at logical reasoning and problem-solving.
|
|
175
183
|
${approachPrompts[approach]}.
|
|
176
184
|
${context ? `Context: ${context}` : ''}
|
|
177
185
|
${FORMAT_INSTRUCTION}`
|
|
@@ -221,7 +229,7 @@ export const grokCodeTool = defineModelTool({
|
|
|
221
229
|
const messages = [
|
|
222
230
|
{
|
|
223
231
|
role: "system",
|
|
224
|
-
content: `You are Grok 4.
|
|
232
|
+
content: `You are Grok 4.5, expert programmer and code analyst.
|
|
225
233
|
Task: ${taskPrompts[task]}
|
|
226
234
|
${language ? `Language: ${language}` : ''}
|
|
227
235
|
${requirements ? `Requirements: ${requirements}` : ''}
|
|
@@ -143,8 +143,13 @@ reasoningEffort = "low", requireConfirmation = false, skipValidation = false) {
|
|
|
143
143
|
}
|
|
144
144
|
return { ...msg, content: validation.sanitized };
|
|
145
145
|
});
|
|
146
|
-
// Model fallback chain
|
|
146
|
+
// Model fallback chain
|
|
147
147
|
const modelFallbacks = {
|
|
148
|
+
// gpt-5.6-sol is org-verification gated (403 "insufficient permissions" until verified);
|
|
149
|
+
// terra matches gpt-5.5 quality at half price, so it's the safe runtime fallback.
|
|
150
|
+
"gpt-5.6-sol": ["gpt-5.6-terra", "gpt-5.5"],
|
|
151
|
+
"gpt-5.6-terra": ["gpt-5.5"],
|
|
152
|
+
"gpt-5.6-luna": ["gpt-5.6-terra"],
|
|
148
153
|
"gpt-5.4": [], // No fallback - test actual gpt-5.4
|
|
149
154
|
"gpt-5.4-mini": ["gpt-5.4"], // Mini falls back to flagship
|
|
150
155
|
"gpt-5.4-pro": [] // No fallback - test actual gpt-5.4-pro
|
|
@@ -204,8 +209,9 @@ reasoningEffort = "low", requireConfirmation = false, skipValidation = false) {
|
|
|
204
209
|
const error = await response.text();
|
|
205
210
|
lastError = `${currentModel}: ${response.statusText} - ${error}`;
|
|
206
211
|
console.error(`🔍 TRACE: ${currentModel} failed - Status: ${response.status}, Error: ${error}`);
|
|
207
|
-
// Check if it's a model not found error
|
|
208
|
-
|
|
212
|
+
// Check if it's a model not found / not-yet-unlocked error
|
|
213
|
+
// (403 "insufficient permissions" = org-verification-gated tier, e.g. gpt-5.6-sol)
|
|
214
|
+
if (response.status === 404 || response.status === 403 || error.includes('model') || error.includes('not found') || error.includes('insufficient permissions')) {
|
|
209
215
|
console.error(`🔍 TRACE: Model ${currentModel} not available, trying fallback...`);
|
|
210
216
|
continue; // Try next model
|
|
211
217
|
}
|
|
@@ -39,6 +39,7 @@
|
|
|
39
39
|
import { getAllPerplexityTools, isPerplexityAvailable } from "./perplexity-tools.js";
|
|
40
40
|
import { getAllGrokTools, isGrokAvailable } from "./grok-tools.js";
|
|
41
41
|
import { debugTriageTool } from "./debug-triage-tool.js";
|
|
42
|
+
import { grokSearchLiteTool } from "./grok-search-lite-tool.js";
|
|
42
43
|
import { isOpenAIAvailable, getAllOpenAITools } from "./openai-tools.js";
|
|
43
44
|
import { specWriterTool } from "./spec-writer-tool.js";
|
|
44
45
|
import { refinePromptTool } from "./refine-prompt-tool.js";
|
|
@@ -74,8 +75,10 @@ export async function getAllTools(inlineTools = []) {
|
|
|
74
75
|
// 2) Grok (custom API).
|
|
75
76
|
if (isGrokAvailable()) {
|
|
76
77
|
tools.push(...getAllGrokTools());
|
|
77
|
-
// debug_triage — ranked-hypothesis bug triage (Grok
|
|
78
|
+
// debug_triage — ranked-hypothesis bug triage (Grok flagship) — gated on Grok.
|
|
78
79
|
tools.push(debugTriageTool);
|
|
80
|
+
// grok_search_lite — cheap live search (grok-4-1-fast, ~10x cheaper) — gated on Grok.
|
|
81
|
+
tools.push(grokSearchLiteTool);
|
|
79
82
|
}
|
|
80
83
|
// 3) OpenAI (GPT-5 suite). NB: getAllOpenAITools() ALSO self-guards (returns
|
|
81
84
|
// [] when unavailable); the outer guard is kept to mirror server.ts 1:1.
|
package/docs/TOOLS_REFERENCE.md
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# TachiBot MCP - Complete Tools Reference
|
|
2
2
|
|
|
3
|
-
**Complete parameter schemas and example calls for all
|
|
3
|
+
**Complete parameter schemas and example calls for all 65 tools** (66 registered — `continue_focus` is an always-on companion to `focus` outside the profile system; see [Meta & Orchestration](#meta--orchestration)).
|
|
4
4
|
|
|
5
5
|
Schemas below are generated from the wire contract (`test/golden/__snapshots__/tool-contracts.json`) — the exact JSON Schema the MCP server publishes for each tool.
|
|
6
6
|
|
|
@@ -8,7 +8,7 @@ Schemas below are generated from the wire contract (`test/golden/__snapshots__/t
|
|
|
8
8
|
|
|
9
9
|
## Table of Contents
|
|
10
10
|
|
|
11
|
-
- [Research & Search](#research--search) (
|
|
11
|
+
- [Research & Search](#research--search) (6): [perplexity_ask](#perplexity_ask) · [perplexity_reason](#perplexity_reason) · [grok_search](#grok_search) · [grok_search_lite](#grok_search_lite) · [openai_search](#openai_search) · [gemini_search](#gemini_search)
|
|
12
12
|
- [Reasoning & Planning](#reasoning--planning) (14): [grok_reason](#grok_reason) · [openai_reason](#openai_reason) · [qwen_reason](#qwen_reason) · [qwq_reason](#qwq_reason) · [kimi_thinking](#kimi_thinking) · [kimi_decompose](#kimi_decompose) · [deepseek_reason](#deepseek_reason) · [glm_reason](#glm_reason) · [stepfun_reason](#stepfun_reason) · [ernie_reason](#ernie_reason) · [planner_maker](#planner_maker) · [planner_runner](#planner_runner) · [list_plans](#list_plans) · [spec_writer](#spec_writer)
|
|
13
13
|
- [Code Intelligence](#code-intelligence) (11): [kimi_code](#kimi_code) · [grok_code](#grok_code) · [grok_debug](#grok_debug) · [qwen_coder](#qwen_coder) · [qwen_algo](#qwen_algo) · [qwen_competitive](#qwen_competitive) · [deepseek_algo](#deepseek_algo) · [minimax_code](#minimax_code) · [minimax_agent](#minimax_agent) · [testgen](#testgen) · [debug_triage](#debug_triage)
|
|
14
14
|
- [Analysis & Judgment](#analysis--judgment) (14): [gemini_analyze_text](#gemini_analyze_text) · [gemini_analyze_code](#gemini_analyze_code) · [gemini_judge](#gemini_judge) · [jury](#jury) · [diff_review](#diff_review) · [plan_critique](#plan_critique) · [gemini_brainstorm](#gemini_brainstorm) · [openai_brainstorm](#openai_brainstorm) · [openai_code_review](#openai_code_review) · [openai_explain](#openai_explain) · [grok_brainstorm](#grok_brainstorm) · [grok_architect](#grok_architect) · [security_review](#security_review) · [kimi_long_context](#kimi_long_context)
|
|
@@ -95,6 +95,30 @@ grok_search({
|
|
|
95
95
|
|
|
96
96
|
---
|
|
97
97
|
|
|
98
|
+
### grok_search_lite
|
|
99
|
+
|
|
100
|
+
Cheap web search (grok-4-1-fast, ~10x cheaper than grok_search). Same live-search pipeline and parameters as `grok_search` — use it for high-volume lookups and quick fact checks; use `grok_search` when synthesis quality matters most.
|
|
101
|
+
|
|
102
|
+
#### Parameters
|
|
103
|
+
|
|
104
|
+
| Parameter | Type | Required | Default | Description |
|
|
105
|
+
|-----------|------|----------|---------|-------------|
|
|
106
|
+
| `query` | `string` | ✅ Yes | - | Search query |
|
|
107
|
+
| `max_search_results` | `number` | No | - | Max sources searched (costs per 1k) |
|
|
108
|
+
| `recency` | `"all" \| "day" \| "week" \| "month" \| "year"` | No | - | Time filter |
|
|
109
|
+
| `sources` | `Array<{type: "web"\|"news"\|"x"\|"rss", allowed_websites?: string[], country?: string}>` | No | - | Source configuration |
|
|
110
|
+
|
|
111
|
+
#### Example
|
|
112
|
+
|
|
113
|
+
```typescript
|
|
114
|
+
grok_search_lite({
|
|
115
|
+
query: "current stable Node.js LTS version",
|
|
116
|
+
recency: "month"
|
|
117
|
+
})
|
|
118
|
+
```
|
|
119
|
+
|
|
120
|
+
---
|
|
121
|
+
|
|
98
122
|
### openai_search
|
|
99
123
|
|
|
100
124
|
Web search using GPT-5.4 with real-time web access. Put your QUERY in the `query` parameter.
|
package/docs/TOOL_PROFILES.md
CHANGED
|
@@ -25,11 +25,11 @@ Counts below are generated from `src/profiles/*.ts` via `npm run build:profiles`
|
|
|
25
25
|
| Profile | Tools | Description |
|
|
26
26
|
|---------|-------|-------------|
|
|
27
27
|
| `minimal` | 13 | Minimal essential tools for basic tasks |
|
|
28
|
-
| `research_power` |
|
|
28
|
+
| `research_power` | 36 | Research-focused with Grok search + all Perplexity + brainstorming |
|
|
29
29
|
| `code_focus` | 42 | Code-heavy work with debugging and analysis |
|
|
30
|
-
| `balanced` |
|
|
31
|
-
| `heavy_coding` |
|
|
32
|
-
| `full` |
|
|
30
|
+
| `balanced` | 54 | Balanced set for general use |
|
|
31
|
+
| `heavy_coding` | 58 | Heavy coding with all reasoning & code tools |
|
|
32
|
+
| `full` | 65 | **Default profile** — every tool enabled |
|
|
33
33
|
|
|
34
34
|
---
|
|
35
35
|
|
|
@@ -50,13 +50,13 @@ Minimal essential tools for basic tasks.
|
|
|
50
50
|
|
|
51
51
|
---
|
|
52
52
|
|
|
53
|
-
### 2. `research_power` (
|
|
53
|
+
### 2. `research_power` (36 tools)
|
|
54
54
|
|
|
55
55
|
Research-focused with Grok search + all Perplexity + brainstorming + the full reasoning/planning suite.
|
|
56
56
|
|
|
57
57
|
**Tools:**
|
|
58
58
|
- Meta: `think`, `focus`, `tachi`, `doctor`, `nextThought`, `usage_stats`
|
|
59
|
-
- Research: `perplexity_ask`, `perplexity_reason`, `grok_search`, `openai_search`, `gemini_search`
|
|
59
|
+
- Research: `perplexity_ask`, `perplexity_reason`, `grok_search`, `grok_search_lite`, `openai_search`, `gemini_search`
|
|
60
60
|
- Reasoning: `grok_reason`, `qwq_reason`, `qwen_reason`, `kimi_thinking`, `kimi_decompose`, `deepseek_reason`, `glm_reason`, `stepfun_reason`, `ernie_reason`
|
|
61
61
|
- Judgment: `gemini_judge`, `jury`
|
|
62
62
|
- Creative: `openai_brainstorm`, `gemini_brainstorm`
|
|
@@ -68,7 +68,7 @@ Research-focused with Grok search + all Perplexity + brainstorming + the full re
|
|
|
68
68
|
**Best for:** Deep research, fact-checking, multi-source verification, brainstorming sessions.
|
|
69
69
|
|
|
70
70
|
**Key tools for research:**
|
|
71
|
-
- `grok_search` / `openai_search` / `gemini_search` — live web search, three different engines
|
|
71
|
+
- `grok_search` / `openai_search` / `gemini_search` — live web search, three different engines (`grok_search_lite` = same Grok search on grok-4-1-fast, ~10x cheaper for high-volume lookups)
|
|
72
72
|
- `jury` — multi-model consensus (parallel jurors + Gemini synthesis)
|
|
73
73
|
- `gemini_judge` — evaluate/synthesize/rank/resolve multiple perspectives into one verdict
|
|
74
74
|
|
|
@@ -94,13 +94,13 @@ Code-heavy work with debugging and analysis.
|
|
|
94
94
|
|
|
95
95
|
---
|
|
96
96
|
|
|
97
|
-
### 4. `balanced` (
|
|
97
|
+
### 4. `balanced` (54 tools)
|
|
98
98
|
|
|
99
99
|
Balanced set for general use — nearly everything except the deepest niche reasoning/creative extras.
|
|
100
100
|
|
|
101
101
|
**Tools:**
|
|
102
102
|
- Meta: `think`, `focus`, `tachi`, `doctor`, `nextThought`, `usage_stats`
|
|
103
|
-
- Research: `perplexity_ask`, `perplexity_reason`, `grok_search`, `openai_search`, `gemini_search`
|
|
103
|
+
- Research: `perplexity_ask`, `perplexity_reason`, `grok_search`, `grok_search_lite`, `openai_search`, `gemini_search`
|
|
104
104
|
- Reasoning: `grok_reason`, `qwq_reason`, `qwen_reason`, `kimi_thinking`, `kimi_decompose`, `deepseek_reason`, `glm_reason`, `stepfun_reason`, `ernie_reason`
|
|
105
105
|
- Code: `grok_code`, `qwen_coder`, `qwen_algo`, `kimi_code`, `kimi_long_context`, `minimax_code`, `minimax_agent`, `deepseek_algo`, `debug_triage`
|
|
106
106
|
- Judgment: `gemini_judge`, `jury`
|
|
@@ -117,13 +117,13 @@ Balanced set for general use — nearly everything except the deepest niche reas
|
|
|
117
117
|
|
|
118
118
|
---
|
|
119
119
|
|
|
120
|
-
### 5. `heavy_coding` (
|
|
120
|
+
### 5. `heavy_coding` (58 tools)
|
|
121
121
|
|
|
122
122
|
Heavy coding with the full reasoning & code toolset, minus the general workflow-management tools.
|
|
123
123
|
|
|
124
124
|
**Tools:**
|
|
125
125
|
- Meta: `think`, `focus`, `tachi`, `doctor`, `nextThought`, `usage_stats`
|
|
126
|
-
- Research: `perplexity_ask`, `perplexity_reason`, `grok_search`, `openai_search`, `gemini_search`
|
|
126
|
+
- Research: `perplexity_ask`, `perplexity_reason`, `grok_search`, `grok_search_lite`, `openai_search`, `gemini_search`
|
|
127
127
|
- Reasoning: `grok_reason`, `openai_reason`, `qwq_reason`, `qwen_reason`, `kimi_thinking`, `kimi_decompose`, `deepseek_reason`, `glm_reason`, `stepfun_reason`
|
|
128
128
|
- Code: `grok_code`, `grok_debug`, `grok_architect`, `openai_code_review`, `openai_explain`, `gemini_analyze_code`, `qwen_coder`, `qwen_algo`, `kimi_code`, `kimi_long_context`, `minimax_code`, `minimax_agent`, `deepseek_algo`, `debug_triage`
|
|
129
129
|
- Judgment: `gemini_judge`, `jury`
|
|
@@ -141,7 +141,7 @@ Heavy coding with the full reasoning & code toolset, minus the general workflow-
|
|
|
141
141
|
|
|
142
142
|
---
|
|
143
143
|
|
|
144
|
-
### 6. `full` (
|
|
144
|
+
### 6. `full` (65 tools) — default
|
|
145
145
|
|
|
146
146
|
All tools enabled for maximum capability. This is the profile set in `tools.config.json`'s `activeProfile` by default.
|
|
147
147
|
|
|
@@ -149,7 +149,7 @@ All tools enabled for maximum capability. This is the profile set in `tools.conf
|
|
|
149
149
|
|
|
150
150
|
**Best for:** Maximum flexibility, specialized tasks, demonstrations.
|
|
151
151
|
|
|
152
|
-
**Note:** tools still self-gate on API keys — with no `OPENROUTER_API_KEY`, the Qwen/Kimi/MiniMax/DeepSeek/GLM/StepFun/ERNIE tools won't register even under `full`. Run `doctor` to see exactly what's active. `continue_focus` is always registered regardless of profile (see [TOOLS_REFERENCE.md](TOOLS_REFERENCE.md#continue_focus)) and isn't counted in the
|
|
152
|
+
**Note:** tools still self-gate on API keys — with no `OPENROUTER_API_KEY`, the Qwen/Kimi/MiniMax/DeepSeek/GLM/StepFun/ERNIE tools won't register even under `full`. Run `doctor` to see exactly what's active. `continue_focus` is always registered regardless of profile (see [TOOLS_REFERENCE.md](TOOLS_REFERENCE.md#continue_focus)) and isn't counted in the 65.
|
|
153
153
|
|
|
154
154
|
---
|
|
155
155
|
|
package/package.json
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
"name": "tachibot-mcp",
|
|
3
3
|
"mcpName": "io.github.byPawel/tachibot-mcp",
|
|
4
4
|
"displayName": "TachiBot MCP - Universal AI Orchestrator",
|
|
5
|
-
"version": "2.
|
|
5
|
+
"version": "2.27.0",
|
|
6
6
|
"type": "module",
|
|
7
7
|
"main": "dist/src/server.js",
|
|
8
8
|
"bin": {
|
|
@@ -76,7 +76,7 @@
|
|
|
76
76
|
"node": ">=22.0.0"
|
|
77
77
|
},
|
|
78
78
|
"license": "AGPL-3.0",
|
|
79
|
-
"description": "TachiBot MCP:
|
|
79
|
+
"description": "TachiBot MCP: 65 AI tools, 12 providers. Multi-model orchestration (Perplexity, Grok, OpenAI, Gemini, Qwen, Kimi, MiniMax, DeepSeek, GLM, StepFun, ERNIE, local), YAML workflows, token-optimized profiles. Smart routing, parallel execution, jury system.",
|
|
80
80
|
"dependencies": {
|
|
81
81
|
"@types/node": "^22.13.17",
|
|
82
82
|
"@types/react": "^19.2.7",
|
package/profiles/balanced.json
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
{
|
|
2
|
-
"description": "Balanced set for general use (
|
|
2
|
+
"description": "Balanced set for general use (54 tools)",
|
|
3
3
|
"tools": {
|
|
4
4
|
"think": true,
|
|
5
5
|
"focus": true,
|
|
@@ -16,6 +16,7 @@
|
|
|
16
16
|
"grok_architect": false,
|
|
17
17
|
"grok_brainstorm": false,
|
|
18
18
|
"grok_search": true,
|
|
19
|
+
"grok_search_lite": true,
|
|
19
20
|
"openai_reason": true,
|
|
20
21
|
"openai_brainstorm": true,
|
|
21
22
|
"openai_code_review": false,
|
package/profiles/code_focus.json
CHANGED
package/profiles/full.json
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
{
|
|
2
|
-
"description": "Default profile — all tools enabled for maximum capability (
|
|
2
|
+
"description": "Default profile — all tools enabled for maximum capability (65 tools)",
|
|
3
3
|
"tools": {
|
|
4
4
|
"think": true,
|
|
5
5
|
"focus": true,
|
|
@@ -16,6 +16,7 @@
|
|
|
16
16
|
"grok_architect": true,
|
|
17
17
|
"grok_brainstorm": true,
|
|
18
18
|
"grok_search": true,
|
|
19
|
+
"grok_search_lite": true,
|
|
19
20
|
"openai_reason": true,
|
|
20
21
|
"openai_brainstorm": true,
|
|
21
22
|
"openai_code_review": true,
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
{
|
|
2
|
-
"description": "Heavy coding with all reasoning & code tools (
|
|
2
|
+
"description": "Heavy coding with all reasoning & code tools (58 tools)",
|
|
3
3
|
"tools": {
|
|
4
4
|
"think": true,
|
|
5
5
|
"focus": true,
|
|
@@ -16,6 +16,7 @@
|
|
|
16
16
|
"grok_architect": true,
|
|
17
17
|
"grok_brainstorm": true,
|
|
18
18
|
"grok_search": true,
|
|
19
|
+
"grok_search_lite": true,
|
|
19
20
|
"openai_reason": true,
|
|
20
21
|
"openai_brainstorm": true,
|
|
21
22
|
"openai_code_review": true,
|
package/profiles/minimal.json
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
{
|
|
2
|
-
"description": "Research-focused with Grok search + all Perplexity + brainstorming (
|
|
2
|
+
"description": "Research-focused with Grok search + all Perplexity + brainstorming (36 tools)",
|
|
3
3
|
"tools": {
|
|
4
4
|
"think": true,
|
|
5
5
|
"focus": true,
|
|
@@ -16,6 +16,7 @@
|
|
|
16
16
|
"grok_architect": false,
|
|
17
17
|
"grok_brainstorm": false,
|
|
18
18
|
"grok_search": true,
|
|
19
|
+
"grok_search_lite": true,
|
|
19
20
|
"openai_reason": false,
|
|
20
21
|
"openai_brainstorm": true,
|
|
21
22
|
"openai_code_review": false,
|
package/tools.config.json
CHANGED
|
@@ -23,7 +23,8 @@
|
|
|
23
23
|
"debug_triage",
|
|
24
24
|
"grok_architect",
|
|
25
25
|
"grok_brainstorm",
|
|
26
|
-
"grok_search"
|
|
26
|
+
"grok_search",
|
|
27
|
+
"grok_search_lite"
|
|
27
28
|
],
|
|
28
29
|
"openai": ["openai_brainstorm", "openai_reason", "openai_code_review", "openai_explain", "openai_search", "spec_writer", "refine_prompt"],
|
|
29
30
|
"gemini": [
|
|
@@ -73,6 +74,7 @@
|
|
|
73
74
|
"grok_architect": true,
|
|
74
75
|
"grok_brainstorm": true,
|
|
75
76
|
"grok_search": true,
|
|
77
|
+
"grok_search_lite": true,
|
|
76
78
|
"openai_brainstorm": true,
|
|
77
79
|
"openai_reason": true,
|
|
78
80
|
"openai_code_review": true,
|