Prototype · Preview: every server in the official registry, synced every 30 minutes. Reviews and accounts come in a later step.
PopNx MCPMCP servers for people who use AI · explained in plain words

Grok Build

by Nuruvalaversion 0.2.5i★ –iRuns on your computer
Registry nameio.github.Nuruvala/grok-build-mcp-server

Install

Overview

Description from the maker (original English)

Run the Grok Build CLI as MCP tools: agent runs with live progress, code review, web research.

PopNx MCP’s three pillars

These three are never merged into one score: opinions, measurements and popularity are different things.

What you can do with it

We have not written a plain-language summary for this one yet. Below are the facts we read from the registry.

  • Connection: Runs on your computer
  • Transport: stdio
  • Category: Developer tools

Install

Pick the AI app you use, then copy the settings.

Before you install

  • Basic checks: 1 of 1 passed
  • Runs on your computer with your user’s permissions (files, network, apps).
  • You fill in yourself: GROK_BINARY, GROK_MCP_PERMISSION_CEILING, GROK_MCP_DEFAULT_PERMISSION, GROK_MCP_DEFAULT_MODEL, GROK_MCP_DEFAULT_EFFORT, GROK_MCP_TIMEOUT_MS, GROK_MCP_STATE_DIR, GROK_MCP_MAX_CONCURRENT_RUNS, STRUCTURED_CONTENT_ENABLED

You need

  • npmNode.js installed (for the npx command)

Which app do you use?

Pick your app above. We remember it, so next time the button says “Install in …”.

Open Claude Desktop → Settings → Developer → Edit Config, and paste this into claude_desktop_config.json

{
  "mcpServers": {
    "grok-build": {
      "command": "npx",
      "args": [
        "-y",
        "grok-build-mcp-server"
      ],
      "env": {
        "GROK_BINARY": "your-value",
        "GROK_MCP_PERMISSION_CEILING": "your-value",
        "GROK_MCP_DEFAULT_PERMISSION": "your-value",
        "GROK_MCP_DEFAULT_MODEL": "your-value",
        "GROK_MCP_DEFAULT_EFFORT": "your-value",
        "GROK_MCP_TIMEOUT_MS": "your-value",
        "GROK_MCP_STATE_DIR": "your-value",
        "GROK_MCP_MAX_CONCURRENT_RUNS": "your-value",
        "STRUCTURED_CONTENT_ENABLED": "your-value"
      }
    }
  }
}

Run this in your terminal

claude mcp add grok-build --env GROK_BINARY=your-value --env GROK_MCP_PERMISSION_CEILING=your-value --env GROK_MCP_DEFAULT_PERMISSION=your-value --env GROK_MCP_DEFAULT_MODEL=your-value --env GROK_MCP_DEFAULT_EFFORT=your-value --env GROK_MCP_TIMEOUT_MS=your-value --env GROK_MCP_STATE_DIR=your-value --env GROK_MCP_MAX_CONCURRENT_RUNS=your-value --env STRUCTURED_CONTENT_ENABLED=your-value -- npx -y grok-build-mcp-server

Fill in the empty values before running it.

Open in Cursor

Or copy the settings yourself

Paste into .cursor/mcp.json in your project, or ~/.cursor/mcp.json

{
  "mcpServers": {
    "grok-build": {
      "command": "npx",
      "args": [
        "-y",
        "grok-build-mcp-server"
      ],
      "env": {
        "GROK_BINARY": "your-value",
        "GROK_MCP_PERMISSION_CEILING": "your-value",
        "GROK_MCP_DEFAULT_PERMISSION": "your-value",
        "GROK_MCP_DEFAULT_MODEL": "your-value",
        "GROK_MCP_DEFAULT_EFFORT": "your-value",
        "GROK_MCP_TIMEOUT_MS": "your-value",
        "GROK_MCP_STATE_DIR": "your-value",
        "GROK_MCP_MAX_CONCURRENT_RUNS": "your-value",
        "STRUCTURED_CONTENT_ENABLED": "your-value"
      }
    }
  }
}

Your browser asks to open the app, then the app shows the settings and asks you to confirm. Key values are left empty for you to fill in.

Open in VS Code

Or copy the settings yourself

Paste into .vscode/mcp.json in your project

{
  "servers": {
    "grok-build": {
      "type": "stdio",
      "command": "npx",
      "args": [
        "-y",
        "grok-build-mcp-server"
      ],
      "env": {
        "GROK_BINARY": "your-value",
        "GROK_MCP_PERMISSION_CEILING": "your-value",
        "GROK_MCP_DEFAULT_PERMISSION": "your-value",
        "GROK_MCP_DEFAULT_MODEL": "your-value",
        "GROK_MCP_DEFAULT_EFFORT": "your-value",
        "GROK_MCP_TIMEOUT_MS": "your-value",
        "GROK_MCP_STATE_DIR": "your-value",
        "GROK_MCP_MAX_CONCURRENT_RUNS": "your-value",
        "STRUCTURED_CONTENT_ENABLED": "your-value"
      }
    }
  }
}

Your browser asks to open the app, then the app shows the settings and asks you to confirm. Key values are left empty for you to fill in.

This one runs on your computer, and ChatGPT can only connect to servers on the internet. Pick another app.

Your choice stays on this device in a cookie; no account needed.

Values you fill in

  • GROK_BINARY env
    Path to the grok executable. Only needed when grok is not on PATH.
  • GROK_MCP_PERMISSION_CEILING env
    Highest permission level any call may request. Granted once at registration and never prompts again.
  • GROK_MCP_DEFAULT_PERMISSION env
    Permission level used when a call specifies none. Must be at or below the ceiling.
  • GROK_MCP_DEFAULT_MODEL env
    Model used when a call omits one.
  • GROK_MCP_DEFAULT_EFFORT env
    Reasoning effort used when a call omits one.
  • GROK_MCP_TIMEOUT_MS env
    Wall-clock kill for a single run, in milliseconds.
  • GROK_MCP_STATE_DIR env
    Directory for background job records. Defaults to $XDG_STATE_HOME/grok-mcp.
  • GROK_MCP_MAX_CONCURRENT_RUNS env
    Background runs alive at once. Use off, none, or unlimited for no cap.
  • STRUCTURED_CONTENT_ENABLED env
    Emit structuredContent alongside _meta. Off by default because some clients mishandle it.

These settings are generated from the maker’s registry entry. If the README says otherwise, follow the README.

What it can do

Runs on your computer; the tool list appears in your AI app after you install it.

Basic checksi

We check information anyone can see; we have not read the code. Checks that do not apply are left out of the count. · Checked Nov 8, 2026

  • ✓ Pass

    Maker matches the repo

    The registry name was verified with the GitHub account Nuruvala, which owns the repo

  • … Not checked yet

    Still maintained

    We have not read this repo from GitHub yet

  • … Not checked yet

    Has a licence

    We have not read this repo from GitHub yet

  • – Not applicable

    Endpoint responds

    This one runs on your computer; there is no internet endpoint

  • – Not applicable

    Sign-in with OAuth

    Runs on your computer and uses local settings instead

  • … Not checked yet

    No hidden instructions in tool descriptions

    Runs on your computer; we can only read tool lists from internet endpoints

Compared with others in Developer toolsi

  • More stars than 0% of the other 5549 servers in this category
  • Published to the registry more recently than 32% of the other 5549 servers in this category
  • Basic checks equal to or better than 100% of the other 5549 servers in this category

Compared with every active server in this category in the registry. Stars count only when the publisher owns the repo.

Common questions

Is Grok Build safe?

It passed 1 of 1 applicable basic checks. We have not read the code. Before adding a key or token, see what access the server asks for and use a key with only the permissions you need.

What keys or codes does it need?

The registry does not list a required key, though some servers ask you to sign in on first use.

Does it run on my computer or in the cloud?

It runs on your computer. Your AI app starts it when needed, and data does not pass through the maker’s servers (unless it calls an online service itself).

Is it still maintained?

The GitHub repo last changed –, and the latest version (0.2.5) reached the registry 3 months ago.

Which apps can use it?

Apps that support MCP, such as Claude Desktop, Claude Code, Cursor and VS Code. You also need Node.js on your computer.

What can I use instead?

In the same category: GitHub, Desktop Commander, Cloudflare MCP

Alternatives

Servers in the same category from other makers, sorted by stars.

Reading a card:↓ Downloads per weeki★ GitHub starsiThree pillars: reviews · checks · usageiUpdated = latest version published to the registryi

GitHub

GitHub’s official server lets AI read and manage code, issues and pull requests in your account. Use GitHub’s hosted version or run it locally with Docker.

by githubWidely used★ 34.2KUpdated 5 days ago

Computer or cloud

Desktop Commander

MCP server for terminal commands, file operations, and process management

by wonderwhy-erWidely used↓ 709.6K/wk★ 10.2KUpdated 17 days ago

Runs on your computer

Cloudflare MCP

Cloudflare MCP servers

by cloudflareWidely used★ 4.4KUpdated 14 months ago

Runs in the cloud✓ mcp.cloudflare.com

README from the maker

Open the README

Copied from the maker’s repo as written. PopNx MCP has not reviewed or endorsed it. HTML, images and scripts are removed. Links lead off this site.

grok-build-mcp-server

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.

Claude Code  ──stdio/MCP──▶  grok-build-mcp-server  ──spawn──▶  grok CLI  ──▶  xAI API

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.

Progress

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:

#5  list_dir .

#6 read_file README.md #7 read_file — completed #8 thinking: the user asked me to list files, read README.md, then … #10 writing: DONE #11 finished: end_turn (2 turns)

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.

Requirements

  • Grok Build CLI 1.0.0 or newer, authenticated (grok models should succeed)
  • Node.js 22 or newer

If grok is not on your PATH, set GROK_BINARY to its full path when you register the server.

Install

Claude Code
claude mcp add grok-build -s user -- npx -y grok-build-mcp-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:

> use the grok-build check tool

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.

Any other MCP client

The server speaks MCP over stdio and takes no arguments of its own:

{

"mcpServers": { "grok-build": { "command": "npx", "args": ["-y", "grok-build-mcp-server"] } } }

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.

If npx cannot find the server

npx 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:

npm install --prefix ~/.local/share/grok-build-mcp grok-build-mcp-server

claude mcp add grok-build -s user -- ~/.local/share/grok-build-mcp/node_modules/.bin/grok-build-mcp-server

Permissions

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--sandboxWhat it allows
read-only (default)planread-onlyReading and reasoning. No edits
writeautoworkspaceEdits inside the working directory
fullbypassPermissionsoffUnattended 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:

claude mcp add grok-build -s user \

-e GROK_MCP_PERMISSION_CEILING=write \ -e GROK_MCP_DEFAULT_PERMISSION=write \ -- npx -y grok-build-mcp-server

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.

Environment variables

VariableDefaultPurpose
GROK_BINARYgrokPath to the grok executable
GROK_MCP_PERMISSION_CEILINGread-onlyHighest level any call may request
GROK_MCP_DEFAULT_PERMISSIONread-onlyLevel used when a call requests none
GROK_MCP_DEFAULT_MODELgrok-4.6Model when a call omits one. none defers to the CLI
GROK_MCP_DEFAULT_EFFORThighReasoning effort when a call omits one. none defers to the CLI
GROK_MCP_TIMEOUT_MS1800000Wall clock for a single run
GROK_MCP_STATE_DIR$XDG_STATE_HOME/grok-mcpBackground job records
GROK_MCP_MAX_CONCURRENT_RUNS4Background runs alive at once. off for no cap
GROK_MCP_LOG_LEVELinfodebug, info, warn, error. Logs go to stderr
STRUCTURED_CONTENT_ENABLEDoffAlso emit structuredContent alongside _meta

Grok's own variables (XAI_API_KEY, GROK_HOME, GROK_DISABLE_AUTOUPDATER) pass through to the child process untouched.

Tools

ToolRead-onlyPurpose
grokby ceilingRun a headless Grok agent. Prompt, session resume/continue/fork, model, effort, tool allow/deny
reviewalwaysReview a git diff: working tree, a merge-base diff against a ref, or a single commit
websearchalwaysResearch a question on the web, and report which searches and sources it actually used
statusalwaysPoll a background run, or list recent ones
stopnoTerminate a background run's process tree
sessionsalwaysList, search, and look up the Grok sessions on this machine
checkyesServer version, resolved binary, grok version, auth, permission ceiling, run defaults
helpyesgrok --help passthrough
review

The diff is collected in-process and embedded in the prompt, so the model does not spend turns rediscovering what it is meant to review.

> review my working tree with grok-build

review the diff against origin/main

Targets are uncommitted, base: " " (a merge-base diff, so commits that landed on the base after you branched are not attributed to you), or commit: " ". With none given it auto-detects: the upstream diff when your branch is ahead, otherwise the working tree — and it says which it chose rather than guessing silently.

review is always read-only, whatever GROK_MCP_PERMISSION_CEILING allows. It takes no permission, write, or yolo argument, because a review that edits the code under review is never what was wanted.

Pass structured: true for machine-readable findings (severity, file, line, summary, rationale) on _meta.findings, validated before you see them.

Two different things can go wrong, and they are reported differently rather than blurred together:

  • The run never finished — it was cut off, or ended without producing its findings. There is no review, so the call is isError: true and _meta.findingsComplete is false. The body leads with why, quoting the CLI's own reason, and names the fix

Only the beginning is shown; read the rest in the repo

Ask PopNx