Skip to main content
Glama

Grok Web MCP

Generate Grok Imagine images and videos from Claude, Cursor, VS Code or any MCP client, using the grok.com account you are already logged into. No xAI API key. No per-image billing.

CI License: MIT Python MCP Chrome MV3


Why

Every other Grok Imagine MCP server calls the paid xAI API. If you already pay for a Grok plan, you are paying twice.

Grok Web MCP drives the Grok Imagine page in your own Chrome, through a small companion extension, and hands the finished files back to your AI assistant. Ask Claude for "a 9:16 cover for my podcast, two options", and two JPGs land in a folder a few seconds later.

Grok Web MCP

API-based Grok MCPs

xAI API key

not needed

required

Cost

your existing Grok plan

billed per image / per video

Setup

one command + load the extension

API key + billing

Quota protection

built-in daily limits and batch pre-check

usually none

Several AI sessions at once

shared queue

separate

Related MCP server: Grok Image Generation MCP Server

Features

  • 🖼️ Images: aspect ratio (16:9, 9:16, 1:1, 2:3, 3:2), Speed / Quality mode, 1 to 4 images per call.

  • 🎬 Video (experimental): text-to-video or animate a local image.

  • 📦 Batches: run up to a dozen prompts in one call; the whole batch is priced and validated before anything is submitted.

  • 📐 Exact output sizes: size="1344x768" cover-crops to exact pixels (ready for video models), or max_side to shrink.

  • 🛡️ Quota guard: a per-day ledger with limits you control, so an over-eager agent cannot burn your daily Grok allowance.

  • 🔁 Multi-session: open five Claude Code windows; the first becomes the hub and the rest queue through it.

  • 🔒 Local and locked down: loopback only, web pages refused, only your pinned extension id may run jobs.

  • ⚙️ Configurable: default aspect, mode, image count, timeouts and every protection, via config.json or env vars.

  • 💾 Never overwrites: files are saved as name_1.jpg, name_2.jpg, name_1_2.jpg…

Quick start

You need Python 3.10+, uv, Google Chrome (or any Chromium browser) and a grok.com account.

1. Add the MCP server to your client

claude mcp add -s user grok-web -- uvx --from git+https://github.com/h4775346/grok-web-mcp grok-web-mcp

Edit claude_desktop_config.json (Settings → Developer → Edit config):

{
  "mcpServers": {
    "grok-web": {
      "command": "uvx",
      "args": ["--from", "git+https://github.com/h4775346/grok-web-mcp", "grok-web-mcp"]
    }
  }
}

~/.cursor/mcp.json:

{
  "mcpServers": {
    "grok-web": {
      "command": "uvx",
      "args": ["--from", "git+https://github.com/h4775346/grok-web-mcp", "grok-web-mcp"]
    }
  }
}

.vscode/mcp.json:

{
  "servers": {
    "grok-web": {
      "type": "stdio",
      "command": "uvx",
      "args": ["--from", "git+https://github.com/h4775346/grok-web-mcp", "grok-web-mcp"]
    }
  }
}

Any client that runs stdio MCP servers works. The command is:

uvx --from git+https://github.com/h4775346/grok-web-mcp grok-web-mcp

2. Load the Chrome extension

  1. Download grok-web-mcp-extension.zip from the latest release and unzip it, or use the extension/ folder of a clone.

  2. Open chrome://extensions, switch on Developer mode, click Load unpacked and pick the folder.

  3. Pin the extension. Its badge turns green on as soon as your MCP client is running.

3. Log in to grok.com

Use the same Chrome profile. That's it. Ask your assistant:

Make two 9:16 images of a neon-lit Cairo rooftop at night with Grok, quality mode, and save them in rooftop/.

Tools

Tool

What it does

grok_generate_image

prompt, aspect, n (1–4), mode (speed/quality), size or max_side, out_dir, name. Returns the saved file paths.

grok_batch

A list of image jobs run in order. Refused up front if it does not fit today's budget; jobs over confirm_over submissions need confirm=true.

grok_generate_video

Experimental. prompt, optional image_path to animate, aspect. Returns the mp4 path.

grok_status

Is the extension connected, is a grok tab open, are you logged in.

grok_usage

Today's submissions, images and videos against your limits.

grok_set_limits

Change the daily limits (the agent is told to ask you first).

grok_settings

The settings in effect, where each one came from, and what each does.

grok_generate_image(
    prompt="Cinematic night rooftop in Cairo, warm neon, 35mm",
    aspect="16:9",
    n=2,
    mode="quality",
    out_dir="rooftop",
    size="1344x768",
)

grok_batch(
    out_dir="covers",
    jobs=[
        {"prompt": "minimal album cover, orange sun over the Nile", "name": "cover_a", "aspect": "1:1", "n": 2},
        {"prompt": "retro 80s synthwave album cover", "name": "cover_b", "aspect": "1:1"},
    ],
)

grok_generate_video(
    prompt="slow push-in, hair moving in the wind", image_path="rooftop/grok_1.jpg", aspect="16:9", out_dir="clips"
)

Quota guard

Every Grok submission counts against your plan's Imagine allowance (one image submission returns 2 images; a video costs much more). The server keeps a ledger in ~/.grok-web-mcp/usage.json and refuses work beyond ~/.grok-web-mcp/limits.json:

{"max_image_submissions_per_day": 30, "max_videos_per_day": 5, "max_jobs_per_batch": 12, "confirm_over": 10}

A refusal tells the agent exactly where it stands, for example Grok budget: this needs 2 image submission(s) but 29/30 are already used today, so nothing was submitted. A job that fails after it was submitted (moderation, timeout) still counts, because Grok still charged it.

Settings

Everything works out of the box; nothing below needs to be set. To change a default, either:

  • edit ~/.grok-web-mcp/config.json (run grok-web-mcp --init once to create it with every key), or

  • set an environment variable GROK_WEB_MCP_<KEY> (for example GROK_WEB_MCP_DEFAULT_ASPECT=9:16), which wins over the file.

Check what is in effect with grok-web-mcp --config or the grok_settings tool. Settings are read when the server starts, so restart your MCP client after a change.

Key

Default

What it does

output_dir

~/grok-web-mcp

Folder that relative out_dir / image_path values resolve against.

default_aspect

16:9

Aspect ratio when a call does not give one (16:9, 9:16, 1:1, 2:3, 3:2).

default_mode

""

speed or quality when a call does not give one; "" leaves the page as it is.

default_n

1

Images to keep per call when a call does not give n (1–4).

image_timeout_s

180

Seconds to wait for an image submission.

video_timeout_s

420

Seconds to wait for a video.

quota_guard

true

Refuse jobs over the daily limits in limits.json. Usage is still recorded when off.

pin_extension

true

Trust only the first Chrome extension id that connects.

extension_ids

[]

Extension ids always allowed (env: comma-separated).

require_peer_token

true

Require the local peer token (see below).

port

8799

Local WebSocket port; set the same port in the extension popup.

GROK_WEB_MCP_HOME (default ~/.grok-web-mcp) moves the whole settings folder. Example for Claude Code:

claude mcp add -s user grok-web -e GROK_WEB_MCP_DEFAULT_ASPECT=9:16 -e GROK_WEB_MCP_DEFAULT_MODE=quality \
  -- uvx --from git+https://github.com/h4775346/grok-web-mcp grok-web-mcp

In JSON configs, put the same variables in an "env": { ... } block.

Do I need to do anything with a token?

No. You never copy, paste or type a token, and the Chrome extension does not use one.

Here is why it exists. Each MCP client window starts its own copy of the server. Only the first copy can listen on the port and talk to Chrome; the others send their jobs to it over the local socket, so all your windows share one queue and one daily budget. Something has to prove that such a connection really comes from another copy of grok-web-mcp and not from some other program on your computer trying to spend your Grok quota. That proof is a random token that the first copy writes to ~/.grok-web-mcp/token.txt and every copy reads by itself.

It is optional. If you only ever run one MCP client, or you trust every program on your computer, set require_peer_token to false and no token file is created or checked. Web pages stay blocked and the extension pin still applies either way.

Security

  • The WebSocket listens on 127.0.0.1 only (not configurable).

  • Connections from web pages are always refused (any http(s):// Origin), so a site you visit cannot drive your Grok account.

  • Only a real chrome-extension:// origin can act as the extension, and by default only the first extension id that connects (pinned in ~/.grok-web-mcp/extensions.json). Reinstalled from a different folder? Edit that file, add the id to extension_ids, or turn pin_extension off.

  • A second MCP session proves itself with the local peer token (automatic; optional, see above).

  • The extension only has access to https://grok.com/*. It does not read or send your password or cookies anywhere; it works inside the page you are already logged into, and results go only to the local server.

See SECURITY.md to report a vulnerability.

Troubleshooting

Message

Fix

no extension connected

Chrome is closed, or the extension is not loaded. Open Chrome; the badge should say on.

Badge says off

Your MCP client is not running the server, or the ports differ. Check grok_status and the popup's port.

Badge says not allowed

Another extension id was pinned first. Edit ~/.grok-web-mcp/extensions.json or set pin_extension to false.

bad token from a second session

Two sessions use different GROK_WEB_MCP_HOME folders. Point them at the same one, or set require_peer_token to false.

invalid setting: ... at start

A value in config.json or a GROK_WEB_MCP_* variable is wrong; grok-web-mcp --config shows which.

not_logged_in

Log in at grok.com in that Chrome profile.

timeout: no images appeared

The prompt was moderated, you hit Grok's rate limit, or Grok changed its page.

Jobs are slow when the tab is hidden

Keep Bring the grok tab to front on in the popup (Chrome throttles hidden tabs).

Grok's web UI changes from time to time. The selectors live in extension/content/main.js; if something breaks, please open an issue or send a PR.

Development

git clone https://github.com/h4775346/grok-web-mcp && cd grok-web-mcp
uv sync --extra dev
uv run pytest        # end-to-end test with a fake extension: no Chrome, no grok.com, no quota used
uv run ruff check .

See CONTRIBUTING.md.

Disclaimer

This is an independent open-source project. It is not affiliated with, endorsed by or sponsored by xAI. "Grok" and "Grok Imagine" are trademarks of their owners. The extension automates the grok.com page in your own browser session on your behalf; you are responsible for using it within grok.com's terms of service and your plan's limits.

License

MIT


Available Tools

7 tools
grok_batchA

Run several image jobs one after another. Each job: {"prompt", "name", "aspect"?, "n"? (1..4, default 1), "mode"?, "max_side"?, "size"?, "keep_original"?, "timeout_s"?, "out_dir"?}. The whole batch is checked first (job count, total submissions vs today's budget); nothing runs if it does not fit. Batches needing more than confirm_over submissions need confirm=true (ask the user first). Returns {"results": [...], "submissions_planned", "usage"}; a failed job gets an "error" and the batch goes on, except budget/no-extension errors, which stop it and mark the rest "skipped".

NameRequiredDescriptionDefault
jobsYes
confirmNo
out_dirNo

TDQS

A3.9/5.0
Behavior5/5

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

With no annotations, the description carries the full burden and does so unusually well: all-or-nothing pre-validation against today's budget, per-job error isolation with batch continuation, and the exception class (budget/no-extension) that halts the run and marks remaining jobs 'skipped'. That is exactly the failure-mode detail an agent needs before spending budget.

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?

Front-loaded with the core action, then preconditions, then return/failure semantics — a sensible ordering with no filler. The inline job-object spec is dense and hurts readability slightly, but every line carries information.

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?

No output schema exists, and the description compensates by describing the return shape and skipped/error semantics. But several documented job fields (mode, size, max_side, keep_original, name) are named without any meaning, and `confirm_over` is never sourced — significant gaps for a zero-coverage nested schema on a costly generation tool.

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?

Schema coverage is 0% and `jobs` is an untyped array of free-form objects, so the description does the schema's job by enumerating job keys (prompt, name, aspect, n 1..4 default 1, mode, max_side, size, keep_original, timeout_s, out_dir). It loses a point for leaving `confirm_over` as a dangling reference not defined here, and for not distinguishing top-level `out_dir` from the per-job `out_dir`.

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?

States a specific verb and resource: running several image jobs sequentially as a single batch. It is clearly distinguishable in intent from grok_generate_image (single job), though it never names the sibling or explicitly contrasts with looping the single-job tool.

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

Usage Guidelines3/5

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

Usage is implied by the batch framing and the description gives real operational preconditions (whole batch validated first, confirm=true required above `confirm_over` submissions, ask the user first). However, it never states when to prefer this over calling grok_generate_image repeatedly, nor any exclusions.

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

grok_generate_imageA

Generate images with Grok Imagine in the user's logged-in Chrome (no API key; uses the user's own Grok plan and daily quota: see grok_usage(); jobs over the limits are refused).

Omitted aspect / n / mode / timeout_s use the configured defaults (see grok_settings). aspect: 16:9 | 9:16 | 1:1 | 2:3 | 3:2. n: images to keep, 1..4 (one submission gives 2; n=3/4 = 2 submissions). mode: "speed" | "quality" (a warning, not a failure, if the page control is not found). max_side: shrink saved files so the long side <= max_side (e.g. 1344). size: exact "WxH" (e.g. "1344x768"), scale to cover + center crop (overrides max_side). keep_original: also keep _orig.. out_dir: absolute, or relative to the output root (GROK_WEB_MCP_OUTPUT_DIR, default ~/grok-web-mcp). Files are _1.jpg, _2.jpg ... (never overwritten). Returns {"files", "kept", "generated", "submissions", "aspect_ok", "secs", "sizes"?, "warning"?}.

NameRequiredDescriptionDefault
nNo
modeNo
nameNo
sizeNo
aspectNo
promptYes
out_dirNo
max_sideNo
timeout_sNo
keep_originalNo

TDQS

A4.3/5.0
Behavior5/5

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

With no annotations, the description carries the full burden and does so: it discloses that a missing page control in quality mode yields a warning rather than a failure, that files are never overwritten, that n=3/4 costs two submissions, and where files land. It also enumerates the return keys, so the agent knows what success and partial success look like.

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?

Purpose and quota constraint are front-loaded, then parameters are covered in a terse, scannable per-parameter list. For a 10-parameter tool with no schema descriptions, every line carries information; nothing is padding.

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?

No output schema exists, and the description compensates by listing the return keys and the optional sizes/warning fields. Combined with the quota, overwrite, and default-behavior notes, an agent can call this correctly; only timeout_s semantics and explicit error (as opposed to warning) behavior are left unaddressed.

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?

Schema coverage is 0% for 10 parameters, so the description must compensate, and it explains most of them: aspect enum values, n range and its submission cost, mode values and failure semantics, max_side, size (with an explicit precedence rule over max_side), keep_original, and out_dir resolution. Gaps remain for timeout_s (only covered by the generic "configured defaults" remark) and name, which is explained only obliquely through the file-naming pattern.

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 first sentence names a specific verb and resource ("Generate images with Grok Imagine") plus the execution mechanism (user's logged-in Chrome, no API key), which is far more than a restatement of the name. It implicitly separates itself from grok_generate_video by naming the medium, but never explicitly routes the agent away from siblings such as grok_batch.

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?

It gives concrete prerequisites and guardrails: quota is drawn from the user's own Grok plan, over-limit jobs are refused, and the agent is pointed at grok_usage() and grok_settings for limits and defaults. It stops short of stating when to prefer grok_batch or what to do on refusal (retry later vs. reduce n).

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

grok_generate_videoA

EXPERIMENTAL: make a Grok Imagine video (about 6 s) from a prompt, optionally animating a local image (image_path: jpg/png/webp). Videos cost much more quota than images and are capped by max_videos_per_day (see grok_usage). Relies on Grok's current web UI, which changes often. Returns {"files": [mp4 path]}.

NameRequiredDescriptionDefault
nameNo
aspectNo
promptYes
out_dirNo
timeout_sNo
image_pathNo

TDQS

A3.9/5.0
Behavior4/5

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

With no annotations, the description carries the full burden and does well: it discloses the experimental/fragile nature (Grok's web UI changes often), the quota cost and daily cap, and the return shape. It omits whether the call blocks, how timeout_s behaves, or failure modes, keeping it below a 5.

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?

Dense and front-loaded: the EXPERIMENTAL warning leads, then capability, then cost/cap caveats, then return format. Nearly every sentence earns its place; minor length comes from the parenthetical file-format note.

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?

Return shape is given despite no output schema, and the cost fragility is covered. However, four of six parameters remain unexplained, which for a tool with this much quota risk is a meaningful gap in what an agent needs before calling.

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

Parameters2/5

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

Schema description coverage is 0% across 6 parameters, so the description must compensate — yet it only explains prompt and image_path (with accepted formats). name, aspect, out_dir, and timeout_s are left entirely undocumented in both schema and description.

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?

States a specific verb and resource ('make a Grok Imagine video ... from a prompt'), gives the output duration (~6 s), and describes an optional image-animation mode. An agent can distinguish this from grok_generate_image without opening either schema.

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 flags the tool as EXPERIMENTAL, warns that videos cost much more quota than images, and points to grok_usage / max_videos_per_day for caps. It doesn't say 'prefer grok_generate_image for stills', but the cost comparison effectively routes the agent.

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

grok_set_limitsB

Change the daily Grok quota guard (only when the user asked for it). Omitted values stay as they are.

NameRequiredDescriptionDefault
confirm_overNo
max_jobs_per_batchNo
max_videos_per_dayNo
max_image_submissions_per_dayNo

TDQS

B3.3/5.0
Behavior3/5

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

With no annotations, the description carries the full burden. It usefully discloses partial-update semantics ('Omitted values stay as they are'), which is real behavioral value for a mutation tool. It says nothing about permissions, reversibility, validation ranges, or how an explicit null differs from omission — a meaningful ambiguity given every parameter is nullable.

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?

Two short clauses, front-loaded with the action and its guard condition; every sentence earns its place. Minor loss for the undefined 'quota guard' term occupying the prime position.

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?

For a mutation tool with no annotations, four entirely undocumented parameters, and no output schema, the description is far too thin. An agent cannot infer valid ranges, the meaning of confirm_over, or the result of the call.

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

Parameters2/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 and it does not: confirm_over, max_jobs_per_batch, max_videos_per_day, and max_image_submissions_per_day are never explained. The one semantic hint it gives ('Omitted values stay as they are') actually leaves the null-vs-omitted distinction unresolved rather than clarifying it.

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?

States a specific verb ('Change') and resource ('daily Grok quota guard'), which distinguishes it from read-only siblings like grok_status, grok_usage, and grok_settings. However, 'quota guard' is vague and never maps to the four concrete limit fields the schema exposes.

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 constrains invocation with '(only when the user asked for it)', which is a clear when-to-use gate. It does not name an alternative tool, but no sibling performs the same mutation, so the routing risk is low.

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

grok_settingsA

The settings in effect (defaults < config.json < GROK_WEB_MCP_* env vars), where each came from, and what each one does. Settings are read when the server starts; restart the MCP client after changing them.

NameRequiredDescriptionDefault

No parameters

TDQS

A3.9/5.0
Behavior4/5

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

With no annotations, the description carries the full burden and discloses important behavior: precedence order (defaults < config.json < environment variables), provenance reporting, and that settings are read only at server startup. It does not explicitly state that the tool is read-only, but the introspection framing makes that clear enough.

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, front-loaded with what the tool reports and followed by the key lifecycle caveat. Every sentence earns its place with no redundant or filler text.

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?

For a simple, parameterless introspection tool with no output schema, the description explains both the returned content and the startup/restart behavior. It could be more complete by explicitly routing the agent away from grok_set_limits or grok_status, but the core information is present.

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?

The tool takes zero parameters, which establishes a baseline of 4. The description correctly does not invent parameter semantics where none exist.

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 identifies the resource and returned content: current settings, their precedence sources, and what each setting does. It lacks an explicit verb like 'returns' and does not name or distinguish itself from related siblings such as grok_set_limits or grok_status.

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

Usage Guidelines3/5

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

Usage is implied by the purpose: inspect current settings and their provenance. The note that settings are read at server startup and require an MCP client restart after changes adds operational context, but there is no explicit when-to-use guidance or comparison to alternatives like grok_set_limits.

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

grok_statusA

Bridge health: is the Chrome extension connected, is a grok.com/imagine tab open, is the user logged in.

NameRequiredDescriptionDefault

No parameters

TDQS

A3.7/5.0
Behavior3/5

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

No annotations are provided, so the description carries the burden; it does disclose what is inspected (extension, tab, auth state), implying a read-only probe, but says nothing about cost, latency, or whether it can have side effects such as opening a tab.

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 front-loaded sentence naming the subject and then the three checks; no filler or repetition.

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?

With no output schema, the description must convey what comes back, and it does by listing the three status questions. What's missing is the return shape (booleans vs. messages) and any recommended follow-up on failure.

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?

Zero parameters and 100% schema coverage, so there is nothing for the description to disambiguate; baseline 4 applies.

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?

States a specific resource (bridge health) and enumerates the concrete conditions it checks: Chrome extension connection, grok.com/imagine tab, and login state. This distinguishes it from generation/settings siblings, though it never explicitly frames itself as a diagnostic/preflight check.

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

Usage Guidelines3/5

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

Usage is only implied — an agent can infer this is a preflight diagnostic to run before grok_generate_image or grok_batch, but no when-to-use or when-not-to-use guidance is stated, nor is any sibling named.

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

grok_usageA

Today's Grok Imagine usage (image submissions, images generated/kept, videos) against the daily limits.

NameRequiredDescriptionDefault

No parameters

TDQS

A3.6/5.0
Behavior3/5

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

No annotations are provided, so the description must carry the behavioral burden. 'Today's ... usage ... against the daily limits' establishes a read-only, day-scoped snapshot with no mutation, but it does not explicitly state that nothing is modified, does not mention rate limits, permissions, or whether the window resets at a specific time.

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 compact sentence, front-loaded with the resource and followed by the exact metric list, with zero filler. The parenthetical enumeration is dense but readable.

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?

For a zero-parameter query with no output schema, the description does the work the schema cannot: it enumerates the returned fields (image submissions, images generated/kept, videos) and the comparison basis (daily limits). Only the exact return shape and reset semantics remain unspecified, which is minor here.

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?

The tool takes zero parameters, so there is nothing to document; the schema is empty and the description correctly adds no parameter claims. Baseline 4 applies for a parameterless 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 names the specific resource (Grok Imagine usage) and enumerates the metrics reported: image submissions, images generated/kept, and videos, all measured against daily limits. It is clearly a read-only quota-report tool, distinguishable in substance from grok_set_limits, though it never names that sibling explicitly.

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

Usage Guidelines3/5

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

Usage is only implied – the 'against the daily limits' framing suggests checking quota before calling grok_generate_image or grok_generate_video, but the description never says when to use this versus grok_status or grok_settings, and offers no exclusions.

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.

  1. 7 tool updatesv0.1.0
    • First observedgrok_batch
    • First observedgrok_generate_image
    • First observedgrok_generate_video
    • First observedgrok_set_limits
    • First observedgrok_settings
    • First observedgrok_status
    • First observedgrok_usage

TDQS

A4/5.0

Scored across 7 tools

Disambiguation5/5

Each tool has a clearly distinct purpose: status (health), settings (configuration), usage (today's quota), set_limits (quota changes), and three separate generation entry points (single image, batch, video). The descriptions make the boundaries explicit, including read-vs-write and single-vs-batch distinctions.

Naming Consistency5/5

All tools use a consistent `grok_` prefix with snake_case suffixes. Action tools use verb phrases (`generate_image`, `set_limits`) while state/query tools use nouns (`status`, `settings`, `usage`), which is predictable and readable.

Tool Count5/5

Seven tools is well-scoped for a Grok web bridge: generation, batch generation, video generation, quota inspection, quota modification, health status, and configuration. No tool feels redundant or missing at the surface level.

Completeness4/5

The surface covers the core lifecycle: generate images/videos, batch jobs, inspect usage, adjust quota, and check bridge health/settings. Minor gaps exist around job cancellation, output file listing/cleanup, or history beyond today, but core workflows are covered.

Maintenance

ActivityMaintained
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers