Skip to main content
Glama
segalz

xAI Grok MCP Bridge

by segalz

x.ai Grok CLI MCP Bridge

Use the local grok CLI as an MCP sub-agent from Claude Code or any MCP host.

This server wraps the documented x.ai headless scripting mode. The generic tools use JSON output, while grok_code_review uses plain output because it produced better review results in practice.

grok --no-auto-update --prompt-file /tmp/prompt.md --cwd /path/to/project --output-format json

Requirements

  • Python 3.10+

  • grok on PATH

  • Auth already configured with grok login, or an environment supported by the CLI such as XAI_API_KEY

  • Optional: GROK_CLI_PATH if grok is not on PATH

GROK_CLI_PATH is strict: bare commands resolve through PATH, while path values must point to an executable file. Directories and non-executable files are rejected.

Related MCP server: peer-agents-mcp

Install

cd /Users/zvisegal/devlope/XAIMsp
/opt/homebrew/bin/python3.12 -m venv .venv
. .venv/bin/activate
python -m pip install --upgrade pip
pip install -e ".[dev]"
pytest -q -p no:cacheprovider
ruff check --no-cache .

MCP Host Config

Add this server to the MCP host config. Prefer the project venv Python:

{
  "mcpServers": {
    "xai": {
      "command": "/Users/zvisegal/devlope/XAIMsp/.venv/bin/python",
      "args": ["/Users/zvisegal/devlope/XAIMsp/server.py"]
    }
  }
}

Tools

  • grok_ask(prompt, workspace?, timeout_s?, model?, session_id?, max_turns?, reasoning_effort?, rules?, raw_output?)

  • grok_continue(prompt, workspace?, timeout_s?, model?, resume?, max_turns?, reasoning_effort?, rules?, raw_output?)

  • grok_code_review(code_or_diff, question?, primary_analysis?, workspace?, timeout_s?, model?, max_findings?, reasoning_effort?, self_check?, raw_output?)

  • grok_version()

workspace defaults to the MCP server's current directory. Pass the project path explicitly when you want Grok to inspect a specific repo.

Use grok_code_review as a second-opinion reviewer after CodeHelper or manual analysis. It embeds strict offline-review rules in the prompt, disables web search, and uses --prompt-file.

Advanced parameters:

  • self_check=true: Passes --check for an extra Grok verification loop. Use sparingly because it costs more time and quota.

  • raw_output=true: Returns a debug payload with extracted text, stdout, stderr, return code, and parsed JSON when available.

  • session_id and resume: Useful for explicit Grok session control. session_id should be a valid UUID for new sessions.

  • rules: Available on generic ask/continue calls. Prefer grok_code_review for second-opinion code review because it already uses the tuned offline-review prompt.

Set XAI_MCP_DEBUG=true only when diagnosing bridge startup or CLI invocation issues.

See CLAUDE_CODE_USAGE.md for the recommended Claude Code workflow and CLAUDE_CODE_UPDATE_GROK_PATH.md for the latest path-handling update.

Security

Grok is an agentic CLI. workspace is a working directory, not a security boundary. The bridge does not expose --always-approve through MCP tools. Use grok_code_review with focused snippets or diffs, and verify findings before editing code.

Smoke Test

This makes a real Grok call and may use quota:

python test_smoke.py

Available Tools

4 tools
grok_askB

Ask Grok a prompt in a new headless CLI session.

ParametersJSON Schema
NameRequiredDescriptionDefault
modelNoOptional Grok model id passed to `--model`.grok-4.5
rulesNoOptional run-scoped rules appended to Grok's system prompt.
promptYesThe question or task for Grok.
max_turnsNoOptional limit for agent turns.
timeout_sNoMaximum seconds to wait. Default 300, capped at 600.
workspaceNoWorking directory for Grok. Defaults to this server's cwd.
raw_outputNoReturn text plus raw stdout/stderr and parsed JSON when true.
session_idNoOptional UUID for a new named headless session.
reasoning_effortNoOptional reasoning effort string passed through.

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.2/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations provided, so description bears full responsibility. It only mentions a 'new headless CLI session' but omits behavioral traits like session handling, timeout behavior, authentication needs, or raw output characteristics.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single sentence that is concise but lacks structure. It could be expanded with a brief example or key options without losing conciseness.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the complexity (9 parameters) and presence of output schema, the description is minimally adequate. It doesn't highlight common use cases or important parameters, but combined with schema it is acceptable for a straightforward prompting tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so baseline is 3. The description adds no extra meaning beyond the input schema; it does not explain parameters like model, rules, or raw_output.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb 'Ask', the resource 'Grok', and the context 'new headless CLI session'. It effectively distinguishes from sibling tools like grok_continue (which implies continuation) and grok_code_review.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No explicit guidance on when to use this tool vs alternatives like grok_continue or grok_code_review. The phrase 'new headless CLI session' hints at one-shot usage, but lacks clear when-to-use or when-not-to-use instructions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

grok_code_reviewA

Ask Grok for a strict second-opinion code review.

This tool is intended to run after CodeHelper or manual analysis. It sends strict run-scoped review rules, disables web search, and passes large prompts via --prompt-file.

ParametersJSON Schema
NameRequiredDescriptionDefault
modelNoOptional Grok model id passed to `--model`.grok-4.5
questionNoReview focus.Find concrete correctness, security, and regression risks.
timeout_sNoMaximum seconds to wait. Default 300, capped at 600.
workspaceNoWorking directory for Grok. Defaults to this server's cwd.
raw_outputNoReturn text plus raw stdout/stderr when true.
self_checkNoPass `--check` for an extra verification loop. Costs more time/quota.
code_or_diffYesCode, diff, or focused snippets to review.
max_findingsNoMaximum findings to request. Must be 1-10.
primary_analysisNoOptional CodeHelper/manual findings to challenge.
reasoning_effortNoOptional reasoning effort string passed through.high

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Without annotations, the description discloses key behaviors: sends strict rules, disables web search, uses `--prompt-file` for large prompts. This adds value beyond a simple verb definition and helps the agent understand the tool's operation.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences with no wasted words. Front-loaded with purpose and context, every sentence serves a purpose.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given 10 parameters (1 required) and an output schema, the description covers core purpose, usage order, and behavioral quirks. It could mention error handling or quotas, but the schema and output schema compensate well.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so baseline is 3. Description adds some context (e.g., 'passes large prompts via `--prompt-file`'), but does not significantly enhance understanding beyond the schema's detailed parameter descriptions.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Description clearly states it is a strict second-opinion code review tool, distinguishing it from siblings like general Q&A (grok_ask) or continuation (grok_continue). It specifies verb 'Ask Grok for... code review' and resource 'code_or_diff'.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly says 'intended to run after CodeHelper or manual analysis', providing clear context for when to use it. Does not explicitly state when not to use, but sibling tools imply alternatives (e.g., grok_ask for general questions).

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

grok_continueC

Continue a Grok headless session.

If resume is provided, resumes that session id. Otherwise passes --continue, which continues the most recent session in the workspace.

ParametersJSON Schema
NameRequiredDescriptionDefault
modelNogrok-4.5
rulesNo
promptYes
resumeNo
max_turnsNo
timeout_sNo
workspaceNo
raw_outputNo
reasoning_effortNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

C2.7/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries full burden. It explains the two continuation modes but does not disclose behavioral traits like session state mutation, rate limits, or data persistence. It lacks details on side effects of continuing a session.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is extremely concise with two sentences. The first sentence states the purpose, and the second explains two modes. Zero wasted words, and it is well-structured for quick parsing.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the complexity (9 parameters, no annotations) and presence of an output schema, the description lacks essential context. It does not define what a 'headless session' is, how to obtain a session ID, or what the output contains. It assumes prior knowledge, leaving the agent underinformed.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters1/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must compensate. It only explains the 'resume' parameter and implies a '--continue' behavior, but fails to describe the other 8 parameters including the required 'prompt'. This is insufficient for a 9-parameter tool.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's purpose: continuing a Grok headless session. It specifies two modes (resume or --continue), providing a specific verb and resource. However, it does not explicitly distinguish from siblings like grok_ask, but the purpose is clear enough.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explains two usage scenarios (resume a specific session or continue the most recent) but offers no guidance on when to use this tool compared to alternatives like grok_ask. There is no mention of prerequisites or when not to use it.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

grok_versionA

Return the installed Grok CLI version.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.7/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Description fully discloses the tool's behavior: it returns the installed version. No annotations are present, but the description covers all relevant aspects (read-only, no side effects). For a tool of this simplicity, transparency is complete.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single, clear sentence that is front-loaded and avoids any unnecessary words. Every part of the description is meaningful and concise.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool has an output schema (not shown but indicated) and zero parameters, the description is complete. It suffices for an agent to understand the tool's purpose and usage without ambiguity.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Input schema has zero parameters with 100% coverage, so no parameter descriptions are needed. Description does not add anything beyond the schema, but baseline for 0 params is 4.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Tool name 'grok_version' and description 'Return the installed Grok CLI version' clearly identify the verb (Return) and resource (Grok CLI version). It is distinct from sibling tools like grok_ask, grok_code_review, and grok_continue.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

While no explicit when-to-use or when-not-to-use guidance is provided, the simple nature of a version check and the sibling tools' different purposes make usage obvious. Could be improved by mentioning that it requires no arguments and is safe to call anytime.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.

  1. 4 tool updatesv0.1.0
    • First observedgrok_ask
    • First observedgrok_code_review
    • First observedgrok_continue
    • First observedgrok_version

TDQS

A3.7/5.0
Disambiguation5/5

Each tool has a distinct purpose: general prompting, code review, session continuation, and version checking. No overlap in functionality.

Naming Consistency5/5

All tools follow a consistent pattern: 'grok_' prefix with snake_case verb or noun suffixes (ask, code_review, continue, version).

Tool Count4/5

4 tools is on the lower end but still appropriate for a focused bridge to a CLI tool. Could be expanded slightly but not under-scoped.

Completeness4/5

Core operations are covered: prompting, code review, session continuation, and version info. Missing session management or configuration tools but minimal for the domain.

Maintenance

ActivitySlowing
ResponsivenessSyncing

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Connectors

Related MCP Servers

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/segalz/XAIMsp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server