GitHub
Connect AI assistants to GitHub - manage repos, issues, PRs, and workflows through natural language.
作者提供的说明(英文原文)
Run the Grok Build CLI as MCP tools: agent runs with live progress, code review, web research.
这三项永远不会合并成一个分数:意见、测量和人气是不同的东西。
我们还没有为它写通俗的介绍。下面是我们从注册中心读取到的事实。
选择你使用的 AI 应用,然后复制设置。
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你需要
你用的是哪个应用?
在上方选择你的应用。我们会记住它,下次按钮会显示“安装到 …”。
打开 Claude Desktop → Settings → Developer → Edit Config,把下面的内容粘贴到 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"
}
}
}
}在终端中运行这条命令
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运行前请先填写空着的值。
粘贴到项目中的 .cursor/mcp.json,或 ~/.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"
}
}
}
}浏览器会先询问是否打开应用,然后应用会显示设置并请你确认。密钥的值会留空,由你自己填写。
粘贴到项目中的 .vscode/mcp.json
{
"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"
}
}
}
}浏览器会先询问是否打开应用,然后应用会显示设置并请你确认。密钥的值会留空,由你自己填写。
这个服务器在你的电脑上运行,而 ChatGPT 只能连接互联网上的服务器。请选择其他应用。
你的选择通过 Cookie 保存在这台设备上,无需账户。
GROK_BINARY envGROK_MCP_PERMISSION_CEILING envGROK_MCP_DEFAULT_PERMISSION envGROK_MCP_DEFAULT_MODEL envGROK_MCP_DEFAULT_EFFORT envGROK_MCP_TIMEOUT_MS envGROK_MCP_STATE_DIR envGROK_MCP_MAX_CONCURRENT_RUNS envSTRUCTURED_CONTENT_ENABLED env这些设置是根据作者在注册中心的条目生成的。如果 README 的写法不同,请以 README 为准。
它在你的电脑上运行;安装后,工具列表会显示在你的 AI 应用中。
我们检查的是任何人都能看到的信息;我们没有阅读代码。不适用的检查项不计入总数。 · 检查于 2026年11月8日
注册名称已通过 GitHub 账户 Nuruvala 验证,该账户拥有此仓库
我们还没有从 GitHub 读取这个仓库
我们还没有从 GitHub 读取这个仓库
它在你的电脑上运行,没有互联网端点
在你的电脑上运行,改用本地设置
它在你的电脑上运行;我们只能读取互联网端点的工具列表
与注册中心里这个分类中所有活跃的服务器比较。只有当发布者拥有该仓库时,星标数才计入。
它在 1 项适用的基础检查中通过了 1 项。我们没有阅读代码。在添加密钥或令牌之前,请先看看这个服务器要求哪些权限,并使用只具备所需权限的密钥。
注册中心没有列出必需的密钥,不过有些服务器会在首次使用时要求你登录。
它在你的电脑上运行。你的 AI 应用会在需要时启动它,数据不会经过作者的服务器(除非它自己调用在线服务)。
GitHub 仓库最后更新于–,最新版本(0.2.5)于3个月前进入注册中心。
支持 MCP 的应用,例如 Claude Desktop、Claude Code、Cursor 和 VS Code。你的电脑上还需要有 Node.js。
同一分类中有:GitHub, Desktop Commander, Cloudflare MCP
同一分类中其他作者的服务器,按星标数排序。
如何看卡片:↓ 每周下载量i★ GitHub 星标i三大支柱:评价 · 检查 · 使用情况i更新 = 最新版本发布到注册中心的时间i
Connect AI assistants to GitHub - manage repos, issues, PRs, and workflows through natural language.
MCP server for terminal commands, file operations, and process management
按原文从作者的仓库复制。PopNx MCP 没有审查或背书其内容。HTML、图片和脚本已被移除。链接会离开本站。
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.
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.
grok models should succeed)If grok is not on your PATH, set GROK_BINARY to its full path when you register the server.
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.
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.
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:
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
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:
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.
| 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.
| Tool | Read-only | Purpose |
|---|---|---|
grok | by ceiling | Run a headless Grok agent. Prompt, session resume/continue/fork, model, effort, tool allow/deny |
review | always | Review a git diff: working tree, a merge-base diff against a ref, or a single commit |
websearch | always | Research a question on the web, and report which searches and sources it actually used |
status | always | Poll a background run, or list recent ones |
stop | no | Terminate a background run's process tree |
sessions | always | List, search, and look up the Grok sessions on this machine |
check | yes | Server version, resolved binary, grok version, auth, permission ceiling, run defaults |
help | yes | grok --help passthrough |
reviewThe 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:
isError: true and _meta.findingsComplete is false. The body leads with why, quoting the CLI's own reason, and names the fix只显示了开头部分;其余内容请在仓库中阅读