Run the Grok Build CLI as MCP tools: agent runs with live progress, code review, web research.
Copy the AI prompt to install this server into Claude Code, Cursor, or another agent β or use 1-click editor setup below.
π‘ Paste the JSON block into your client's configuration file under mcpServers, then restart the application.
An MCP stdio server that exposes the Grok Build
CLI (grok) as tools you can call from Claude Code, Cursor, VS Code, or any other MCP client.
It is a thin process wrapper. It does not reimplement agent logic and does not talk to the xAI API
directly β all the intelligence stays in the grok CLI. What this server adds is faithful argument
construction, robust process supervision, and clean MCP-shaped output.
Status: 0.2.2. The tool surface is complete. The server runs real headless Grok agents in the foreground or detached in the background, streams progress while they run, stops a run on request, reviews git diffs, researches questions on the web, lists the sessions those runs created, and reports session, usage, and cost. See CHANGELOG.md for what shipped and ROADMAP.md for what was considered and rejected.
A long agent run is visible while it happens, rather than a silent wait ending in a wall of text.
When your client sends a progressToken, the server runs Grok with --output-format streaming-json
and forwards a notification per event:
Progress tracks what the agent is doing, not what phase it is in. Reasoning and response text are
coalesced so a token stream does not flood your client, while tool calls are reported as they
happen. Clients that support resetTimeoutOnProgress will not time out mid-run.
A client that sends no progressToken gets the cheaper non-streaming path and pays nothing for
this.
grok models should succeed)If grok is not on your PATH, set GROK_BINARY to its full path when you register the server.
-s user registers the server for your whole account rather than for the directory you happen to be
in. Without it the scope is that one project, which is rarely what you want for a general coding
assistant, and the symptom is a server that is missing the next time you start Claude Code somewhere
else.
Then, in Claude Code:
check reports the resolved binary, the CLI version, whether you are authenticated, and the active
permission ceiling. If it is happy, the rest will work.
The server speaks MCP over stdio and takes no arguments of its own:
VS Code and Cursor accept the install badges at the top of this page, which carry exactly that configuration.
Clients that install from the MCP Registry know this
server as io.github.Nuruvala/grok-build-mcp-server. The registry entry is published from the same
tag as the npm release and points at the same package.
npx cannot find the servernpx resolves a bare package name against the local project first. If your MCP client's working
directory is a checkout of this repository β or of anything else whose package.json is named
grok-build-mcp-server β npx -y grok-build-mcp-server runs the local entry point, does not find
one, and fails with command not found. Install it somewhere of its own and register that path:
Grok runs launched through this server are read-only by default: --permission-mode plan with
--sandbox read-only. Nothing can modify your files until you say so.
Permission is a ceiling, set once when you register the server, rather than a prompt on every call. Three levels:
| Level | --permission-mode | --sandbox | What it allows |
|---|---|---|---|
read-only (default) | plan | read-only | Reading and reasoning. No edits |
write | auto | workspace | Edits inside the working directory |
full | bypassPermissions | off | Unattended full approval |
The sandbox is not advisory, and a refusal is not a warning. Under write the run cannot write
outside cwd, and a refused tool call ends the whole run: the CLI reports
stopReason: cancelled, exits 0, and returns only whatever the model had said before the refusal.
The server names the refused call and its path in that case, so a refused tool is not mistaken for a
model that gave up. The server can see which call failed, not why the CLI refused it. If a run must
write somewhere else, say a report outside the repository, either point it at a path inside cwd or
use full.
write uses --permission-mode auto rather than acceptEdits, which is measured rather than
inherited from the flag's name. Headless grok has no human to accept an edit, so under
acceptEdits, dontAsk and default every file mutation is refused and the run dies, on both
sandbox profiles. auto and bypassPermissions both work; auto is the narrower one, and it still
refuses a write outside the workspace, so full remains a real step up rather than a synonym.
To let Grok make edits:
Use full only if you already run your MCP client with full approval and want the delegated Grok
run to be equally unattended. It grants the spawned grok process the same authority you have.
A call that requests more than the ceiling is rejected, not silently downgraded β a clamped run would report success while changing nothing, which is worse than a clear error.
| Variable | Default | Purpose |
|---|---|---|
GROK_BINARY | grok | Path to the grok executable |
GROK_MCP_PERMISSION_CEILING | read-only | Highest level any call may request |
GROK_MCP_DEFAULT_PERMISSION | read-only | Level used when a call requests none |
GROK_MCP_DEFAULT_MODEL | grok-4.6 | Model when a call omits one. none defers to the CLI |
GROK_MCP_DEFAULT_EFFORT | high | Reasoning effort when a call omits one. none defers to the CLI |
GROK_MCP_TIMEOUT_MS | 1800000 | Wall clock for a single run |
GROK_MCP_STATE_DIR | $XDG_STATE_HOME/grok-mcp | Background job records |
GROK_MCP_MAX_CONCURRENT_RUNS | 4 | Background runs alive at once. off for no cap |
GROK_MCP_LOG_LEVEL | info | debug, info, warn, error. Logs go to stderr |
STRUCTURED_CONTENT_ENABLED | off | Also emit structuredContent alongside _meta |
Grok's own variables (XAI_API_KEY, GROK_HOME, GROK_DISABLE_AUTOUPDATER) pass through to the
child process untouched.
No reviews yet β be the first to share how this listing worked for you.
Showcase your server listing on GitHub or your project documentation. Embed this dynamic SVG badge to highlight official listing status and live engagement.
[](https://allmcps.com/mcp/grok-build)<a href="https://allmcps.com/mcp/grok-build"><img src="https://allmcps.com/api/badge/grok-build?style=directory" alt="Grok Build on AllMCPs" /></a>