GitHub
Connect AI assistants to GitHub - manage repos, issues, PRs, and workflows through natural language.
作者提供的说明(英文原文)
Use xAI Grok as a peer reviewer + PR gate from Claude Code, Cursor, Cline and any MCP host.
这三项永远不会合并成一个分数:意见、测量和人气是不同的东西。
我们还没有为它写通俗的介绍。下面是我们从注册中心读取到的事实。
选择你使用的 AI 应用,然后复制设置。
你需要
你用的是哪个应用?
在上方选择你的应用。我们会记住它,下次按钮会显示“安装到 …”。
打开 Claude Desktop → Settings → Developer → Edit Config,把下面的内容粘贴到 claude_desktop_config.json
{
"mcpServers": {
"grok": {
"command": "npx",
"args": [
"-y",
"grok-cli-mcp"
]
}
}
}在终端中运行这条命令
claude mcp add grok -- npx -y grok-cli-mcp粘贴到项目中的 .cursor/mcp.json,或 ~/.cursor/mcp.json
{
"mcpServers": {
"grok": {
"command": "npx",
"args": [
"-y",
"grok-cli-mcp"
]
}
}
}浏览器会先询问是否打开应用,然后应用会显示设置并请你确认。密钥的值会留空,由你自己填写。
粘贴到项目中的 .vscode/mcp.json
{
"servers": {
"grok": {
"type": "stdio",
"command": "npx",
"args": [
"-y",
"grok-cli-mcp"
]
}
}
}浏览器会先询问是否打开应用,然后应用会显示设置并请你确认。密钥的值会留空,由你自己填写。
这个服务器在你的电脑上运行,而 ChatGPT 只能连接互联网上的服务器。请选择其他应用。
你的选择通过 Cookie 保存在这台设备上,无需账户。
这些设置是根据作者在注册中心的条目生成的。如果 README 的写法不同,请以 README 为准。
它在你的电脑上运行;安装后,工具列表会显示在你的 AI 应用中。
我们检查的是任何人都能看到的信息;我们没有阅读代码。不适用的检查项不计入总数。 · 检查于 2026年11月8日
注册名称已通过 GitHub 账户 howardpen9 验证,该账户拥有此仓库
我们还没有从 GitHub 读取这个仓库
我们还没有从 GitHub 读取这个仓库
它在你的电脑上运行,没有互联网端点
在你的电脑上运行,改用本地设置
它在你的电脑上运行;我们只能读取互联网端点的工具列表
与注册中心里这个分类中所有活跃的服务器比较。只有当发布者拥有该仓库时,星标数才计入。
它在 1 项适用的基础检查中通过了 1 项。我们没有阅读代码。在添加密钥或令牌之前,请先看看这个服务器要求哪些权限,并使用只具备所需权限的密钥。
注册中心没有列出必需的密钥,不过有些服务器会在首次使用时要求你登录。
它在你的电脑上运行。你的 AI 应用会在需要时启动它,数据不会经过作者的服务器(除非它自己调用在线服务)。
GitHub 仓库最后更新于–,最新版本(0.2.0)于5个月前进入注册中心。
支持 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、图片和脚本已被移除。链接会离开本站。
Use Grok as a peer code reviewer and rigorous second-opinion consultant inside Claude Code, Cursor, Cline, OpenClaw, and any other MCP host — talking to xAI's API directly (just an
XAI_API_KEY, no install) or via the official Grok CLI.
grok-mcp (npm: grok-cli-mcp) is a Model Context Protocol server for Grok. It gives your primary agent (Claude, Cursor, etc.) four tools so it can delegate to Grok for high-quality second opinions and rigorous validation without leaving the session. As of v0.3.0 it talks to xAI's API directly — no grok binary required — and still supports the CLI for OAuth users:
grok_review — structured diff review with per-dimension scoresgrok_challenge — thorough analysis for bugs, races, edge cases and security issuesgrok_consult — multi-turn consultation (caller owns history)grok_chat — one-shot questionsEnglish | 繁體中文
Most "Grok MCP" packages expose Grok's chat/search/image capabilities so Claude can *use* Grok. grok-mcp lets your main coding agent (Claude/Cursor/…) ask Grok for a rigorous second opinion on its own work. A different model providing thorough review often catches issues that single-model loops miss.
Four tools, all stateless, all stdout-only:
| Tool | Use it for |
|---|---|
grok_chat | One-shot prompt → Grok's reply |
grok_review | Pass a unified diff (or auto-grab git diff main...HEAD) and get a per-dimension code review |
grok_consult | Replay a message history for multi-turn — caller owns the thread |
grok_challenge | Rigorous analysis: ask Grok to surface bugs, race conditions, edge cases, and security issues |
XAI_API_KEY from console.x.ai. The server calls xAI's HTTP API directly — no extra binary needed.XAI_API_KEY is set: bash curl -fsSL https://x.ai/cli/install.sh | bash Then authenticate with browser OAuth (run grok once interactively). See Authentication below.npm install -g grok-cli-mcp
npx grok-cli-mcp
Why the npm name is `grok-cli-mcp` instead of `grok-mcp`? The bare
grok-mcpname on npm was already taken by an unrelated project (a Grok HTTP-API integration). The brand, GitHub repo, and MCP server identity staygrok-mcp; only the npm install identifier isgrok-cli-mcp— chosen to highlight that this server wraps the official Grok CLI.
There are two auth methods, each tied to a backend:
| Method | Backend | Best for | Rate limits |
|---|---|---|---|
API key (XAI_API_KEY env var) | API mode — no grok binary needed | MCP / CI / automation | Pay-per-call, no subscription cap |
Browser OAuth (grok interactive login) | CLI mode | Local interactive use | Subject to your grok.com plan tier |
Setting XAI_API_KEY switches the server to API mode, so you can keep your browser login for interactive grok use and use a key *just for this MCP server* via its env block:
{
"mcpServers": { "grok": { "command": "npx", "args": ["-y", "grok-cli-mcp"], "env": { "XAI_API_KEY": "xai-...", "GROK_MCP_TIMEOUT": "600000" } } } }
Treat the key file as a secret — it ends up in your MCP host's config (e.g. ~/.claude.json), which is plain JSON on disk.
Recommended — use add-json so the env block parses cleanly:
claude mcp add-json -s user grok '{
"command": "npx", "args": ["-y", "grok-cli-mcp"], "env": { "XAI_API_KEY": "xai-...", "GROK_MCP_TIMEOUT": "600000" } }'
Why `add-json` not `claude mcp add -e ...`? The
-e KEY=valflag is variadic and will greedily consume the server name as another env value if you pass more than one.add-jsonsidesteps that footgun entirely.
Or edit ~/.claude.json directly. Minimal (OAuth fallback):
{
"mcpServers": { "grok": { "command": "npx", "args": ["-y", "grok-cli-mcp"] } } }
Create .cursor/mcp.json (project) or ~/.cursor/mcp.json (global):
{
"mcpServers": { "grok": { "command": "npx", "args": ["-y", "grok-cli-mcp"] } } }
Settings → Cline → MCP Servers:
{
"grok": { "command": "npx", "args": ["-y", "grok-cli-mcp"] } }
Claude Desktop still supports local stdio servers: Settings → Developer → Edit Config (claude_desktop_config.json), then paste the same JSON block as Claude Code above.
Claude's Settings → Connectors → Add custom connector dialog needs an HTTPS URL, not a command — so deploy the bundled Streamable HTTP server and paste its URL:
# 1. Generate a path secret (keeps strangers from spending your xAI credits)
openssl rand -base64 32 | tr '+/' '-_'
docker build -t grok-mcp . && docker run \ -e XAI_API_KEY=xai-... \ -e GROK_MCP_PATH_SECRET= \ -p 3000:3000 grok-mcp
XAI_API_KEY=xai-... GROK_MCP_PATH_SECRET= npx -y -p grok-cli-mcp grok-mcp-http
Then add the connector in Claude with the URL:
https://your-host.example.com/mcp/<secret-from-step-1>
No OAuth needed — leave the Client ID/Secret fields blank. Claude only starts an OAuth flow if the server asks for it.
Remote-mode notes:
git diff is disabled in remote mode.GET /health is available for platform health checks; see .env.example for all knobs (GROK_MCP_ALLOWED_HOSTS, GROK_MCP_CORS_ORIGINS, ...).grok-mcp speaks plain stdio MCP. Point any client at npx -y grok-cli-mcp and it works. HTTP hosts can point at the remote endpoint above instead.
grok_chat{ "prompt": "Explain consistent hashing in two sentences." }
Optional: model to override the default Grok model; timeout (seconds) to extend the per-call limit for long grok-4 reasoning. All four tools accept timeout.
grok_review{ "base_ref": "main", "focus": "security" }
If diff is omitted, runs git diff ...HEAD in cwd (defaults to your host's working directory). Returns a markdown review by default with verdict, per-dimension scores (correctness / readability / architecture / security / performance), and concrete fix-it items.
Pass "format": "json" to get machine-parseable output suitable for CI gating — see Use as a PR gate.
grok_consult{
"messages": [ { "role": "system", "content": "You are a senior backend engineer." }, { "role": "user", "content": "How would you cache this query?" }, { "role": "assistant", "content": "Two options..." }, { "role": "user", "content": "What's the failure mode of option 2?" } ] }
The server is stateless — the caller passes the full thread each time. Most MCP hosts handle this naturally.
grok_challenge{
"code": "function transfer(from, to, amount) { from.balance -= amount; to.balance += amount; }", "context": "Node.js, called concurrently from HTTP handlers" }
Returns severity-ranked issues (Critical / High / Medium / Low) with concrete reproductions and patches.
| Env var | Default | Purpose |
|---|---|---|
XAI_API_KEY | *(unset — falls back to OAuth)* | API key from console.x.ai. When set, the server uses API mode (direct HTTP) and bills pay-per-call with no subscription rate cap. See Authentication. |
GROK_MCP_BACKEND | auto | Which backend to use: api (direct HTTP), cli (shell out to grok), or auto (API when XAI_API_KEY is set, else CLI). See Backends. |
GROK_MCP_MODEL | grok-4 | Model used in API mode. (CLI mode reads ~/.grok/config.toml.) |
GROK_MCP_BASE_URL | https://api.x.ai/v1 | API base URL — point at a proxy or compatible gateway in API mode. |
GROK_MCP_BIN | grok | Path to the grok binary (CLI mode only) |
GROK_MCP_TIMEOUT | 300000 | Default per-call timeout in milliseconds |
The server can reach Grok two ways and chooses one at startup (it logs which to stderr):
/chat/completions endpoint directly using Node's built-in fetch. No grok binary required, cleaner errors, pay-per-call. Selected when XAI_API_KEY is set, or forced with GROK_MCP_BACKEND=api.grok binary (supports browser OAuth). Selected when no XAI_API_KEY is set, or forced with GROK_MCP_BACKEND=cli.Force a mode with GROK_MCP_BACKEND. In API mode, set the model with GROK_MCP_MODEL; in CLI mode, model defaults live in ~/.grok/config.toml.
grok-4 is a reasoning model and long prompts routinely take longer than two minutes. The server's default per-call limit is 300s (5 min). You can change it three ways:
timeout (seconds) to any tool: { "prompt": "...", "timeout": 600 }.GROK_MCP_TIMEOUT (milliseconds) in the MCP server's env.MCP_TIMEOUT (server startup) and MCP_TOOL_TIMEOUT (per tool call), both in milliseconds.On timeout the error includes any partial output Grok produced before the deadline, so you don't lose a near-complete answer.
grok-mcp ships a grok-review-ci bin and a composite GitHub Action so Grok can review every PR and fail the check on block.
Drop this into .github/workflows/grok-review.yml in your repo:
name: Grok review
on: { pull_request: { branches: [main] } } permissions: { contents: read, pull-requests: write } jobs: grok: runs-on: ubuntu-latest if: ${{ github.event.pull_request.head.repo.full_name == github.repository }} steps:
The action posts a sticky PR comment with verdict +
只显示了开头部分;其余内容请在仓库中阅读