MCP server for Grok Build integration, providing tools to delegate coding tasks, plan approaches, verify changes, manage worktrees, and access build status and usage history
Strong foundation with comprehensive parameter schemas and detailed descriptions. All 9 tools have explicit registrations with input schemas and descriptions. Tool names follow verb_noun patterns (grok_auth_check, grok_build_delegate). Descriptions are detailed (100-400+ chars) and explain WHAT, WHEN, and side effects. Parameters are well-typed with Zod schemas and descriptions. Critical weakness: no output schemas documented, LLMs cannot infer response structure. Error handling is present but generic (json() helper returns isError boolean without recovery guidance). Security is well-handled (no secrets in params, auth pre-checks). Composition is strong, tools are single-responsibility and chainable (e.g., delegate → worktree → apply).
Check whether Grok Build is authenticated for the active auth mode. Does not delegate.
Delegate a coding task to Grok Build; returns a summary, changed files (new during run), billing mode, and sessionId when present. Records the run to ~/.grok-build/history.jsonl (timestamp, cwd, first ~200 chars of the prompt with known secret shapes redacted, files changed, sessionId) — grok_build_usage and grok_build_status read that back.
Ask Grok Build for a plan/approach for a task (passes --permission-mode plan). Use before grok_build_delegate to preview grok's approach; returns a plan summary. ⚠️ NOT guaranteed read-only. grok 1.0.13 ignored --permission-mode plan and edited anyway (measured 2026-09-05; --sandbox did not stop it either); grok 1.0.30 does refuse the write (re-measured 2026-09-22). The CLI self-updates, so treat neither as the version in front of you: the response reports planWroteFiles and filesChanged, and those are facts about THIS run — check them before treating the tree as untouched. Records the run to ~/.grok-build/history.jsonl (timestamp, cwd, first ~200 chars of the prompt with known secret shapes redacted, files changed, sessionId).
Route a task to the appropriate tool (delegate, plan, or verify) based on keywords and context. A pure local decision; does not delegate or spawn grok.
No output schemas documented. LLMs cannot infer response structure (fields, types, pagination). Responses are JSON-stringified text blobs without formal schema.
Error responses lack recovery guidance. isError boolean is set but no actionable next steps provided. E.g., 'auth failed' should suggest 'Run grok auth login' or 'Check GROK_API_KEY'.
grok_build_worktree action parameter is free-form string, not enum. Should be enum: ['list', 'diff', 'apply', 'remove', 'prune'] to prevent hallucinated actions.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | C | 64 | 2026-07-28+ | v2 |
Snapshot of the current build state: auth mode, subscription status, grok CLI version, and the last run's summary (if any). Does not delegate.
Summarize usage from ~/.grok-build/history.jsonl: total runs, total cost (metered mode only), and a breakdown by status (completed, timeout, grok_error, blocked). Does not delegate.
Ask Grok Build to verify a change (passes --permission-mode verify). Use after grok_build_delegate to ask grok to review its own work; returns a verification summary. ⚠️ NOT guaranteed read-only — same caveats as grok_build_plan. Records the run to ~/.grok-build/history.jsonl.
Manage isolated git worktrees for grok runs: list, diff, apply, remove, or prune. Worktrees let you review grok's changes before merging them into your working directory.
Pass through to the grok CLI with arbitrary arguments. Useful for queries like `grok --version`, `grok models`, or `grok --help`. Headless mode is enforced (--always-approve, --output-format json). Prompts are allowed but not required; a prompt-free call is read-only.
grok_cli args parameter is array of strings with no validation. LLMs could pass dangerous flags (--delete-all, --force-overwrite). Should document safe/unsafe patterns or whitelist allowed args.
best_of_n parameter marked 'Removed in Grok CLI 1.0' but still accepted in schema. Should be rejected at registration time or removed entirely to avoid confusion.