GrokMCP
The GrokMCP server provides an MCP interface to xAI's Grok models for chat, reasoning, vision, and AI video generation (powered by AceDataCloud).
Chat & Reasoning
grok_chat_completions: Converse with Grok models (grok-4.5,grok-4,grok-3) with support for vision/image input, tool/function calling, and configurable parameters (temperature, top_p, max_tokens, etc.)
Video Generation
grok_text_to_video: Generate a video from a text description. Supports configurable duration (1–30s), resolution (480p/720p/1080p), aspect ratio (1:1, 16:9, 9:16, etc.), and optional webhook callback.grok_image_to_video: Animate a reference image into a video, with an optional motion prompt and additional style/reference images.
Task Management
grok_get_task: Poll the status and retrieve results (video URLs) for a single generation task.grok_get_tasks_batch: Check the status of multiple tasks in one request (up to 50).
Discovery & Reference
grok_list_models: View all available chat and video models with their capabilities.grok_list_actions: Browse all tools with example workflows.grok_get_prompt_guide: Get tips and best practices for writing effective video generation prompts.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@GrokMCPGenerate a 15-second video of a golden retriever running on a beach"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
GrokMCP
A Model Context Protocol (MCP) server for Grok (xAI) — chat/reasoning/vision and Grok Imagine video generation, powered by the AceDataCloud API.
Chat with Grok models, or generate short AI videos from a text prompt or a still image — directly from any MCP-compatible client (Claude Desktop, Claude Code, Cursor, etc.).
Features
Chat / Reasoning / Vision — Talk to Grok 4.5 / Grok 4 / Grok 3 models, with image input and tool calling
Text to Video — Generate a video clip from a text description
Image to Video — Animate a reference image into a video
Async task tracking — Submit a job, poll for the result, single or batch
stdio & HTTP transports — Local stdio for desktop clients, HTTP for remote hosting
Related MCP server: xbridge-mcp
Tools
Tool | Description |
| Chat completion (reasoning / vision / tool calling) with Grok chat models. |
| Generate a video from a text prompt (any model except |
| Generate a video from an input image (+ optional motion prompt). |
| Query the status/result of a single generation task. |
| Query the status/result of multiple tasks at once. |
| List available models and their capabilities. |
| List all tools and example workflows. |
| Tips for writing effective video prompts. |
Models
Chat (grok_chat_completions)
Model | Notes |
| Default — latest flagship reasoning model |
| Previous flagship reasoning model |
| Earlier-generation model |
Video
Model | Text→Video | Image→Video | Notes |
| ✅ | ✅ | Default. Fastest & cheapest. 6-30s, duration-banded billing. |
| ✅ | ✅ | Standard. 1-15s, billed per output second. |
| ✅ | ✅ | Official endpoint, higher fidelity. 1-15s, per second. |
| ❌ | ✅ | Official image-to-video only (requires |
Parameters
Parameter | Applies to | Values |
| both | Text description (required for text-to-video) |
| image-to-video | Input image URL (required for |
| image-to-video | Optional list of style/content reference images |
| both |
|
| both |
|
| both |
|
| both | Optional async webhook |
Installation
Via uvx (recommended)
uvx mcp-grokVia pip
pip install mcp-grok
mcp-grokConfiguration
Set your AceDataCloud API token (get one at https://platform.acedata.cloud):
export ACEDATACLOUD_API_TOKEN=your_api_token_hereClaude Desktop / Claude Code
Add to your MCP config (claude_desktop_config.json or .mcp.json):
{
"mcpServers": {
"grok": {
"command": "uvx",
"args": ["mcp-grok"],
"env": {
"ACEDATACLOUD_API_TOKEN": "your_api_token_here"
}
}
}
}Remote (HTTP)
A hosted Streamable HTTP endpoint is available at:
https://grok.mcp.acedata.cloud/mcpEnvironment Variables
Variable | Description | Default |
| API token (required) | — |
| API base URL |
|
| Default model |
|
| Request timeout (seconds) |
|
| MCP server name |
|
| Transport mode ( |
|
| Logging level |
|
Usage Notes
Generation is asynchronous: the generation tools return a
task_idquickly. Poll withgrok_get_task(task_id)until the state issucceededand thevideo_urlis available.Generation typically takes ~30 seconds to a few minutes.
Keep
resolutionat480panddurationshort for faster, cheaper iterations.
Development
pip install -e ".[dev,test]"
pytest --cov=core --cov=tools
ruff check .Documentation
License
MIT — see LICENSE.
Available Tools
8 toolsgrok_chat_completionsAInspect
Create a Grok (xAI) chat completion via the AceDataCloud Grok API.
Sends messages to a Grok chat model and returns the generated response in the
OpenAI-compatible chat completion format.
Use this when:
- You want to chat/reason with a Grok model (grok-4 / grok-3 family)
- You need vision/image understanding
- You need tool/function calling with Grok
For generating videos, use grok_text_to_video / grok_image_to_video instead.
Returns:
JSON response containing the chat completion result.
| Name | Required | Description | Default |
|---|---|---|---|
| n | No | How many chat completion choices to generate. Default 1. | |
| seed | No | Random seed for (best-effort) deterministic sampling. | |
| stop | No | Stop sequences where the API will stop generating tokens. | |
| user | No | End-user identifier for abuse monitoring. | |
| audio | No | Audio output configuration when requesting audio modality. | |
| model | No | The Grok chat model: grok-4.5 (default, latest flagship), grok-4 or grok-3. | grok-4 |
| store | No | Whether to store the output of this chat completion. Default false. | |
| tools | No | List of tools (functions) the model may call. | |
| top_p | No | Nucleus sampling probability mass. Default 1. | |
| stream | No | Whether to stream partial message deltas. Default False. | |
| logprobs | No | Whether to return log probabilities of output tokens. | |
| messages | Yes | Conversation messages. Each message is a dict with 'role' ('system'/'user'/'assistant'/'tool') and 'content' keys. Content may be a list of text/image_url parts for image input. Required. | |
| metadata | No | Developer-defined metadata attached to the request. | |
| logit_bias | No | Token logit bias map. | |
| max_tokens | No | Maximum number of tokens to generate. | |
| modalities | No | Output modalities requested for this response. | |
| prediction | No | Static predicted output content to improve latency. | |
| temperature | No | Sampling temperature between 0 and 2. Higher = more random. | |
| tool_choice | No | Controls tool calling. 'none', 'auto', 'required', or a dict. | |
| service_tier | No | Specifies the processing tier. Options: 'auto' (default), 'default', 'flex' (asynchronous batch-eligible), 'scale', or 'priority'. | |
| top_logprobs | No | Number of most likely tokens to return at each token position. | |
| stream_options | No | Options for streaming responses. | |
| response_format | No | Response format specification (e.g. {"type": "json_object"}). | |
| presence_penalty | No | Presence penalty between -2.0 and 2.0. Positive increases topic variety. | |
| reasoning_effort | No | Reasoning effort. Only applies to reasoning-capable models; ignored by non-reasoning models. | |
| frequency_penalty | No | Frequency penalty between -2.0 and 2.0. Positive decreases repetition. | |
| web_search_options | No | Web search configuration for search-capable models. | |
| parallel_tool_calls | No | Whether to enable parallel tool calls. Default true. | |
| max_completion_tokens | No | Upper bound for tokens generated for a completion. |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the behavioral burden, and it delivers the key traits: it sends messages to a remote Grok model and returns the response in the OpenAI-compatible chat completion format, with vision and function-calling capabilities called out. It does not mention cost, rate limits, or data-sharing implications of calling an external API, but those are inherent to the named API and less critical than the operation/response behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is front-loaded and well structured with a short definition, scoped usage bullets, an alternative, and a returns note. Minor redundancy exists between the opening sentence and the 'Returns:' line, but no sentence is wasted.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 29-parameter tool with a fully described schema and an output schema, the description covers purpose, use cases, exclusions, and response format. It is not a 5 because it omits an example of the required messages structure and model-specific caveats, though the schema compensates for most of this.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the input schema already documents all 29 parameters. The narrative mentions vision and tool calling, which aligns with messages/tools, but it does not add syntax or format details beyond what the schema provides; baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a specific action and resource: 'Create a Grok (xAI) chat completion via the AceDataCloud Grok API' and then clarifies it sends messages to a Grok model and returns an OpenAI-compatible response. It also separates itself from sibling generation tools by telling agents to use grok_text_to_video / grok_image_to_video for video.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It provides explicit 'Use this when' bullets for chat/reasoning, vision, and tool calling, and an explicit exclusion: 'For generating videos, use grok_text_to_video / grok_image_to_video instead.' This tells the agent both when to invoke this tool and when not to.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
grok_get_prompt_guideAInspect
Get guidance on writing effective prompts for Grok Imagine video generation.
Shows how to structure prompts for best video generation results.
Returns:
Complete guide with prompt structure, examples, and tips.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description fully bears the burden of behavioral disclosure. It accurately describes a read-only operation that returns a guide, which is non-destructive and safe. No contradictions or omissions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is brief and front-loaded with the core purpose, but the docstring format includes redundant backticks and a 'Returns:' section that could be integrated. Overall efficient with minimal waste.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a parameterless tool with an output schema, the description fully explains what the guide covers (structure, examples, tips). Given zero complexity and the output schema handling return details, it is complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
There are no parameters, and the schema coverage is 100% (empty). The description adds value by detailing the content of the returned guide (prompt structure, examples, tips), exceeding the baseline of 4 for zero-parameter tools.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool provides guidance on writing prompts for Grok Imagine video generation, using a specific verb ('Get') and resource ('prompt guide'). It distinguishes itself from sibling tools like grok_text_to_video, which perform actual generation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies use when needing help with prompt structuring for video generation, but does not explicitly state when not to use it or provide alternatives among siblings. The context from sibling names makes it fairly clear, but lacks explicit exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
grok_get_taskAInspect
Query the status and result of a video generation task.
Use this to check if a generation is complete and retrieve the resulting
video URLs and metadata.
Use this when:
- You want to check if a generation has completed
- You need to retrieve video URLs from a previous generation
- You want to get the full details of a generated video
Task states:
- 'pending'/'processing': Generation is still in progress
- 'succeeded': Generation finished successfully
- 'failed': Generation failed (check error message)
Returns:
Task status and generated video information including URLs and state.
| Name | Required | Description | Default |
|---|---|---|---|
| task_id | Yes | The task ID returned from a generation request. This is the 'task_id' field from any grok_text_to_video or grok_image_to_video tool response. |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden. It explains the query nature (read-only), what it returns (status, URLs, metadata), and task states including error handling. This provides sufficient behavioral context for safe invocation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is well-structured with bullet points and clear sections. It is front-loaded with purpose and usage guidelines. Minor duplication in 'Use this when' list could be trimmed, but overall efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity (1 parameter, output schema exists), the description covers purpose, input, states, and return info. Missing info like rate limits or prerequisites is not critical for this query tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with one parameter well-described. The description adds value by specifying that the task_id comes from generation tool responses, which helps the agent understand the parameter's origin beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool queries the status and result of a video generation task. The verb 'Query' and resource 'task' are specific, and the context distinguishes it from sibling grok_get_tasks_batch (plural) for multiple tasks.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides three explicit 'Use this when' scenarios covering completion check, URL retrieval, and full details. It also lists task states. However, it does not explicitly exclude usage when alternative tools like grok_get_tasks_batch are more appropriate, or mention prerequisites like authentication.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
grok_get_tasks_batchAInspect
Query multiple video generation tasks at once.
Efficiently check the status of multiple tasks in a single request.
More efficient than calling grok_get_task multiple times.
Use this when:
- You have multiple pending generations to check
- You want to get status of several videos at once
- You're tracking a batch of generations
Returns:
Status and video information for all queried tasks.
| Name | Required | Description | Default |
|---|---|---|---|
| task_ids | Yes | List of task IDs to query. Maximum recommended batch size is 50 tasks. |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description must cover behavioral traits. It states it returns status and video info, but does not disclose if it is read-only, side effects, rate limits, or error handling on missing task IDs. Basic coverage, not rich.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Extremely concise: one-line summary, efficiency note, bulleted usage list, and returns statement. Every sentence is necessary and well-structured.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity (one parameter, output schema exists), the description is reasonably complete. Mentions the return type and usage scenarios. Could briefly address error handling for partial batches, but acceptable.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% and already documents the parameter well. The description adds context about efficiency but does not significantly extend meaning beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it queries multiple video generation tasks at once, using a specific verb and resource. It explicitly differentiates from the sibling grok_get_task by noting it is more efficient.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides explicit 'Use this when:' scenarios and contrasts with calling grok_get_task multiple times. Lacks explicit when-not-to-use, but the positive guidance is clear and helpful.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
grok_image_to_videoAInspect
Generate AI video from a reference image using Grok Imagine.
This animates your input image into a video clip. Provide a prompt to
describe the motion you want, and optional reference images to guide style.
Use this when:
- You have a specific image you want to animate
- You want consistent visual style from a reference
- You want to turn a still photo into a short video
For video generation from text only, use grok_text_to_video instead.
Returns:
Task ID and generated video information including URLs and state.
| Name | Required | Description | Default |
|---|---|---|---|
| model | No | Grok Imagine model. All models support image-to-video. 'grok-imagine-video-1.5-fast:reverse' (default) is fastest and cheapest; 'grok-imagine-video-1.5:official' offers the highest fidelity (up to 1080p) and is image-to-video only; 'grok-imagine-video' provides standard quality image-to-video generation. | grok-imagine-video-1.5-fast:reverse |
| prompt | No | Optional description of the motion/action to apply to the image. Examples: 'The camera slowly zooms in as the character smiles', 'Gentle wind moves the trees and clouds drift across the sky'. Optional when an image_url is provided. | |
| duration | No | Video duration in seconds (default 6). 'grok-imagine-video-1.5-fast:reverse' supports 6-30; every other model supports 1-15. | |
| image_url | Yes | URL of the input image to animate into a video. Required for image-to-video generation. | |
| resolution | No | Output resolution. '480p' (default, cheaper), '720p', or '1080p'. Higher resolution costs more per second on the per-second-priced models. | 480p |
| aspect_ratio | No | Video aspect ratio. Should typically match your input image aspect ratio for best results. | 16:9 |
| callback_url | No | Optional URL to receive a POST callback when generation completes. | |
| reference_image_urls | No | Optional list of additional reference image URLs used to guide the style or content of the generated video. |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It discloses the operation (animating image into video) and the return shape (Task ID, video information, URLs, state). However, it does not explicitly state that generation is asynchronous, whether the response is immediate or requires polling via grok_get_task, or any limitations on input images. This ambiguity is a notable gap.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise and well-structured: a one-sentence purpose, a brief explanation, a bulleted 'Use this when' list, a sibling-tool pointer, and a return summary. Every sentence earns its place; no fluff.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For an 8-parameter tool with a rich schema and output schema, the description covers purpose, usage, and returns. The main gap is the lack of explicit guidance on the async task lifecycle (e.g., 'returns a task ID immediately; use grok_get_task to poll for completion'). Given the sibling tools include grok_get_task, this context would complete the picture.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the baseline is 3. The description adds only minimal context beyond the schema, such as mentioning prompt for motion and reference images for style. It does not explain parameter interactions or constraints beyond what the schema already provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description starts with a specific verb+resource: 'Generate AI video from a reference image using Grok Imagine.' It clearly states the tool animates an input image into a video clip. It distinguishes itself from the sibling tool grok_text_to_video by explicitly directing text-only generation there.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides a 'Use this when' bullet list with three concrete scenarios, and directly names the alternative tool ('For video generation from text only, use grok_text_to_video instead'). This gives clear when-to-use and when-not-to-use guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
grok_list_actionsAInspect
List all available Grok Imagine tools and workflows.
Reference guide for what each tool does and how they fit together.
Returns:
Categorized list of all tools and example workflows.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It discloses that it returns a categorized list of tools and example workflows, which is sufficient for a read-only listing tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise with three short sentences, no unnecessary words, and front-loaded purpose. Every sentence adds value.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple listing tool with no parameters and an output schema present, the description fully covers purpose, usage context, and return format.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With no parameters, schema coverage is 100%. The description does not need to add parameter details, meeting the baseline of 4 for zero-parameter tools.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool lists all available Grok Imagine tools and workflows, and serves as a reference guide. This distinguishes it from sibling tools that perform specific actions.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies use for discovery and understanding tool relationships but does not explicitly state when to use versus alternatives or when not to use.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
grok_list_modelsAInspect
List all available Grok models (chat + video) and their capabilities.
Shows the chat models and the Grok Imagine video models with their features
and input rules. Use this to understand which model to choose.
Returns:
Tables of all models with their capabilities.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden. It specifies that it returns tables with capabilities, which is transparent but could mention if it makes a network call or requires authentication. For a simple read operation, this is adequate.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is four sentences, well-structured with a summary, details on what it shows, and a return note. No fluff, every sentence adds value.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no parameters and an output schema, the description covers purpose, usage, and return format. It is complete for a list tool with siblings, and does not need to explain return values due to the output schema.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
There are no parameters, so schema coverage is 100% trivial. The description adds context about what the tool returns (chat + video models, capabilities), which is valuable beyond the empty schema. Baseline 4 for zero params is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it lists all available Grok models (chat + video) and their capabilities, using a specific verb ('list') and resource ('models'). It distinguishes from siblings like grok_chat_completions (which uses models) and the video generation tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly says 'Use this to understand which model to choose,' providing clear usage guidance. While it doesn't mention when not to use or alternatives, the context is sufficient for a list tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
grok_text_to_videoAInspect
Generate AI video from a text prompt using Grok Imagine.
This creates a video from scratch based on your text description. Grok
Imagine will interpret your prompt and generate a matching video clip.
Use this when:
- You want to create a video from a text description
- You don't have a reference image to use
- You want maximum creative freedom
Only the 'grok-imagine-video-1.5-fast:reverse', 'grok-imagine-video:reverse',
and 'grok-imagine-video:official' models support text-to-video. For generating
a video from a reference image, use grok_image_to_video instead.
Returns:
Task ID and generated video information including URLs and state.
| Name | Required | Description | Default |
|---|---|---|---|
| model | No | Grok Imagine model. Text-to-video is supported by 'grok-imagine-video-1.5-fast:reverse' (default, fast 6-30s), 'grok-imagine-video:reverse' (standard 1-15s), 'grok-imagine-video:official' (official, higher fidelity), and 'grok-imagine-video' (standard quality). Do NOT use 'grok-imagine-video-1.5:official' here — it is image-to-video only. | grok-imagine-video-1.5-fast:reverse |
| prompt | Yes | Description of the video to generate. Be descriptive about scene, subject, action, camera movement, lighting, and style. Examples: 'A cinematic shot of a kitten chasing a butterfly in a sunlit garden', 'Drone shot flying over a neon-lit cyberpunk city at night'. Required for text-to-video. | |
| duration | No | Video duration in seconds (default 6). 'grok-imagine-video-1.5-fast:reverse' supports 6-30; every other model supports 1-15. | |
| resolution | No | Output resolution. '480p' (default, cheaper), '720p', or '1080p'. Higher resolution costs more per second on the per-second-priced models. | 480p |
| aspect_ratio | No | Video aspect ratio. '16:9' for landscape/widescreen, '9:16' for portrait/vertical, '1:1' for square, plus '4:3', '3:4', '3:2', '2:3'. | 16:9 |
| callback_url | No | Optional URL to receive a POST callback when generation completes. The callback will include the task_id and video results. |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden. It discloses the async nature by stating 'Returns: Task ID and generated video information including URLs and state,' which implies polling. It also mentions model-specific durations, cost implications of resolution, and callback behavior. Minor gap: it doesn't explicitly state that generation is asynchronous or mention failure/error handling, but the return-type disclosure is strong.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is well-structured: purpose sentence, context, explicit use cases, sibling-tool reference, model compatibility note, and a concise returns section. Every sentence earns its place, and it is front-loaded with the primary action. No redundancy or filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given six parameters with complex model constraints, the description covers all necessary operational context: supported models, duration limits, resolution cost implications, aspect ratio usage, callback behavior, and return type. It is complete for a task-creation tool with rich schema and no need to explain return values beyond the stated task ID and URLs.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the baseline is 3. The description adds critical value beyond the schema by clarifying which models support text-to-video and explicitly warning against using 'grok-imagine-video-1.5:official' for this tool. This prevents a common mistake and adds semantic meaning not present in the schema enum alone.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a specific verb+resource statement: 'Generate AI video from a text prompt using Grok Imagine.' It clearly distinguishes the tool from its sibling grok_image_to_video by explicitly noting that image-to-video should use that sibling tool. The 'Use this when' bullets further narrow the purpose to text-only generation with creative freedom.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicit 'Use this when' bullets provide clear usage context, and the description directly names the alternative tool for reference-image inputs. It also lists the exact models that support text-to-video, warning against using an incompatible model. This gives unambiguous when-to-use and when-not-to-use guidance.
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 tool update
v0.1.6- Changed
grok_chat_completions14 fields changed- added
Input schema / properties / audioAdded value: +{ + "anyOf": [ + { + "additionalProperties": true, + "type": "object" + }, + { + "type": "null" + } + ], + "default": null, + "description": "Audio output configuration when requesting audio modality.", + "title": "Audio" +} - added
Input schema / properties / logit_biasAdded value: +{ + "anyOf": [ + { + "additionalProperties": { + "type": "integer" + }, + "type": "object" + }, + { + "type": "null" + } + ], + "default": null, + "description": "Token logit bias map.", + "title": "Logit Bias" +} - added
Input schema / properties / logprobsAdded value: +{ + "anyOf": [ + { + "type": "boolean" + }, + { + "type": "null" + } + ], + "default": null, + "description": "Whether to return log probabilities of output tokens.", + "title": "Logprobs" +} - added
Input schema / properties / max_completion_tokensAdded value: +{ + "anyOf": [ + { + "type": "integer" + }, + { + "type": "null" + } + ], + "default": null, + "description": "Upper bound for tokens generated for a completion.", + "title": "Max Completion Tokens" +} - added
Input schema / properties / metadataAdded value: +{ + "anyOf": [ + { + "additionalProperties": true, + "type": "object" + }, + { + "type": "null" + } + ], + "default": null, + "description": "Developer-defined metadata attached to the request.", + "title": "Metadata" +} - added
Input schema / properties / modalitiesAdded value: +{ + "anyOf": [ + { + "items": { + "type": "string" + }, + "type": "array" + }, + { + "type": "null" + } + ], + "default": null, + "description": "Output modalities requested for this response.", + "title": "Modalities" +} - added
Input schema / properties / nAdded value: +{ + "anyOf": [ + { + "type": "integer" + }, + { + "type": "null" + } + ], + "default": null, + "description": "How many chat completion choices to generate. Default 1.", + "title": "N" +} - added
Input schema / properties / parallel_tool_callsAdded value: +{ + "anyOf": [ + { + "type": "boolean" + }, + { + "type": "null" + } + ], + "default": null, + "description": "Whether to enable parallel tool calls. Default true.", + "title": "Parallel Tool Calls" +} - added
Input schema / properties / predictionAdded value: +{ + "anyOf": [ + { + "additionalProperties": true, + "type": "object" + }, + { + "type": "null" + } + ], + "default": null, + "description": "Static predicted output content to improve latency.", + "title": "Prediction" +} - added
Input schema / properties / service_tierAdded value: +{ + "anyOf": [ + { + "enum": [ + "auto", + "default", + "flex", + "scale", + "priority" + ], + "type": "string" + }, + { + "type": "null" + } + ], + "default": null, + "description": "Specifies the processing tier. Options: 'auto' (default), 'default', 'flex' (asynchronous batch-eligible), 'scale', or 'priority'.", + "title": "Service Tier" +} - added
Input schema / properties / storeAdded value: +{ + "anyOf": [ + { + "type": "boolean" + }, + { + "type": "null" + } + ], + "default": null, + "description": "Whether to store the output of this chat completion. Default false.", + "title": "Store" +} - added
Input schema / properties / stream_optionsAdded value: +{ + "anyOf": [ + { + "additionalProperties": true, + "type": "object" + }, + { + "type": "null" + } + ], + "default": null, + "description": "Options for streaming responses.", + "title": "Stream Options" +} - added
Input schema / properties / top_logprobsAdded value: +{ + "anyOf": [ + { + "type": "integer" + }, + { + "type": "null" + } + ], + "default": null, + "description": "Number of most likely tokens to return at each token position.", + "title": "Top Logprobs" +} - added
Input schema / properties / web_search_optionsAdded value: +{ + "anyOf": [ + { + "additionalProperties": true, + "type": "object" + }, + { + "type": "null" + } + ], + "default": null, + "description": "Web search configuration for search-capable models.", + "title": "Web Search Options" +}
2 tool updates
v0.1.5- Changed
grok_image_to_video2 fields changed- changed
Input schema / properties / model / descriptionPrevious value: -"Grok Imagine model. All models support image-to-video. 'grok-imagine-video-1.5-fast:reverse' (default) is fastest and cheapest; 'grok-imagine-video-1.5:official' offers the highest fidelity (up to 1080p) and is image-to-video only."New value: +"Grok Imagine model. All models support image-to-video. 'grok-imagine-video-1.5-fast:reverse' (default) is fastest and cheapest; 'grok-imagine-video-1.5:official' offers the highest fidelity (up to 1080p) and is image-to-video only; 'grok-imagine-video' provides standard quality image-to-video generation." - changed
Input schema / properties / model / enumPrevious value: -[ - "grok-imagine-video-1.5-fast:reverse", - "grok-imagine-video:reverse", - "grok-imagine-video:official", - "grok-imagine-video-1.5:official" -]New value: +[ + "grok-imagine-video-1.5-fast:reverse", + "grok-imagine-video:reverse", + "grok-imagine-video:official", + "grok-imagine-video-1.5:official", + "grok-imagine-video" +]
- Changed
grok_text_to_video2 fields changed- changed
Input schema / properties / model / descriptionPrevious value: -"Grok Imagine model. Text-to-video is supported by 'grok-imagine-video-1.5-fast:reverse' (default, fast 6-30s), 'grok-imagine-video:reverse' (standard 1-15s), and 'grok-imagine-video:official' (official, higher fidelity). Do NOT use 'grok-imagine-video-1.5:official' here — it is image-to-video only."New value: +"Grok Imagine model. Text-to-video is supported by 'grok-imagine-video-1.5-fast:reverse' (default, fast 6-30s), 'grok-imagine-video:reverse' (standard 1-15s), 'grok-imagine-video:official' (official, higher fidelity), and 'grok-imagine-video' (standard quality). Do NOT use 'grok-imagine-video-1.5:official' here — it is image-to-video only." - changed
Input schema / properties / model / enumPrevious value: -[ - "grok-imagine-video-1.5-fast:reverse", - "grok-imagine-video:reverse", - "grok-imagine-video:official", - "grok-imagine-video-1.5:official" -]New value: +[ + "grok-imagine-video-1.5-fast:reverse", + "grok-imagine-video:reverse", + "grok-imagine-video:official", + "grok-imagine-video-1.5:official", + "grok-imagine-video" +]
1 tool update
v0.1.4- Added
grok_get_tasks_batch
6 tool updates
v0.1.3- Changed
grok_chat_completions5 fields changed- changed
Input schema / properties / messages / descriptionPrevious value: -"Conversation messages. Each message is a dict with 'role' ('system'/'user'/'assistant'/'tool') and 'content' keys. For vision with grok-2-vision, content may be a list of text/image_url parts. Required."New value: +"Conversation messages. Each message is a dict with 'role' ('system'/'user'/'assistant'/'tool') and 'content' keys. Content may be a list of text/image_url parts for image input. Required." - changed
Input schema / properties / model / descriptionPrevious value: -"The Grok chat model. grok-4 (default, flagship) and grok-3 are the broadly available models. Also: grok-4-1-fast, grok-4-1-fast-non-reasoning, grok-3-mini, grok-2-vision (image input) — availability depends on upstream provisioning."New value: +"The Grok chat model: grok-4.5 (default, latest flagship), grok-4 or grok-3." - changed
Input schema / properties / model / enumPrevious value: -[ - "grok-4", - "grok-4-1-fast", - "grok-4-1-fast-non-reasoning", - "grok-3", - "grok-3-mini", - "grok-2-vision" -]New value: +[ + "grok-4.5", + "grok-4", + "grok-3" +] - changed
Input schema / properties / reasoning_effort / anyOfPrevious value: -[ - { - "enum": [ - "low", - "high" - ], - "type": "string" - }, - { - "type": "null" - } -]New value: +[ + { + "enum": [ + "minimal", + "low", + "medium", + "high" + ], + "type": "string" + }, + { + "type": "null" + } +] - changed
Input schema / properties / reasoning_effort / descriptionPrevious value: -"Reasoning effort: 'low' or 'high'. Only applies to reasoning-capable models (e.g. grok-3-mini). Ignored by non-reasoning models."New value: +"Reasoning effort. Only applies to reasoning-capable models; ignored by non-reasoning models."
- Added
grok_get_prompt_guide - Added
grok_image_to_video - Added
grok_list_actions - Added
grok_list_models - Added
grok_text_to_video
6 tool updates
v0.1.2- Removed
grok_get_prompt_guide - Removed
grok_get_tasks_batch - Removed
grok_image_to_video - Removed
grok_list_actions - Removed
grok_list_models - Removed
grok_text_to_video
8 tool updates
v0.1.0- First observed
grok_chat_completions - First observed
grok_get_prompt_guide - First observed
grok_get_task - First observed
grok_get_tasks_batch - First observed
grok_image_to_video - First observed
grok_list_actions - First observed
grok_list_models - First observed
grok_text_to_video
TDQS
Each tool targets a distinct operation: chat completion, model listing, task status polling, and the two video generation entry points are clearly separable. The single-task vs batch-task tools are explicitly differentiated, and text_to_video vs image_to_video cross-reference each other to prevent confusion.
All tools share a consistent grok_ prefix and snake_case convention, making the set predictable. Minor deviations exist: grok_chat_completions lacks an explicit verb, and text_to_video/image_to_video use a source_to_target pattern rather than verb_noun, but these are readable and do not break the overall style.
Eight tools is a well-scoped size for a Grok API server covering chat and video generation. Each tool serves a clear purpose without redundancy, and the inclusion of model listing, prompt guidance, and task polling makes the set self-contained.
The core workflows are covered: chat completion, model discovery, text-to-video, image-to-video, and task status retrieval in both single and batch forms. Minor gaps exist such as no cancellation or deletion of video generation tasks, but the primary create-and-poll lifecycle is fully supported.
Maintenance
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
MCP server for AI dialogue using various LLM models via AceDataCloud
MCP server for GLM chat completions using Zhipu AI models via AceDataCloud
Hosted MCP server connecting claude.ai, ChatGPT and other AI apps to your own computer
MCP server for Qwen Image 3 AI image generation
Related MCP Servers
- AlicenseAqualityAmaintenanceUse XAI's latest api functionalities with Grok MCP. It supports image understanding and generation, live search, latest models and more.2251MIT
- AlicenseNot gradedqualityAmaintenanceMCP server for xAI Grok API with 19 tools for chat, web and X search, session management, tool chaining, image and video generation, and documentation.2MIT
- AlicenseAqualityBmaintenanceMCP server for generating, editing, and batch processing videos using xAI's Grok Imagine Video API, with support for text-to-video, image-to-video, and video editing via natural language prompts.4831MIT
- AlicenseAqualityCmaintenanceMCP server for integrating xAI's Grok model into OpenAI Codex Desktop/GUI, enabling direct Grok calls via chat completions or responses with OAuth or API key authentication.9MIT
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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/AceDataCloud/GrokMCP'
If you have feedback or need assistance with the MCP directory API, please join our Discord server