mcp-server-grok-image
MCP server for generating and editing images using xAI's Grok API. Provides tools for image generation, editing, and style listing with configurable models and output options.
README
mcp-server-grok-image
An MCP (Model Context Protocol) server for xAI's Grok image generation API. Built in Rust, exposes image generation and editing as MCP tools.
Communicates via stdio using JSON-RPC 2.0, like all MCP servers.
Tools
| Tool | Description |
|---|---|
generate_image |
Generate an image from a text prompt |
edit_image |
Edit an existing image using natural language instructions |
list_styles |
List available image styles for use with generate_image |
generate_image
Generate an image from a text description.
Parameters:
| Name | Type | Required | Description |
|---|---|---|---|
prompt |
string | yes | Text description of the desired image |
model |
string | no | Model to use (default: grok-imagine-image) |
n |
integer | no | Number of images to generate (1-10, default 1) |
aspect_ratio |
string | no | Aspect ratio: 1:1, 16:9, 9:16, 4:3, 3:4, 3:2, 2:3, 2:1, 1:2, auto, etc. |
resolution |
string | no | Output resolution: 1k (~1024px, default) or 2k (~2048px) |
response_format |
string | no | Output format: url (default, temporary) or b64_json |
style |
string | no | Style name to apply (use list_styles to see options) |
When a style is set, the prompt is wrapped in the style's template. For example, with style: "watercolor" and prompt: "a cat on a roof", the API receives "a cat on a roof, as a watercolor painting". Avoid including style language in the prompt itself when using this parameter.
The response includes the resolved prompt so you can see exactly what was sent to the API.
edit_image
Edit an existing image using natural language instructions.
Parameters:
| Name | Type | Required | Description |
|---|---|---|---|
image_url |
string | yes | URL, base64 data URI, or local file path of the source image |
prompt |
string | yes | Natural language edit instructions |
model |
string | no | Model to use (default: grok-imagine-image) |
n |
integer | no | Number of variations to generate (1-10, default 1) |
resolution |
string | no | Output resolution: 1k (~1024px, default) or 2k (~2048px) |
response_format |
string | no | Output format: url (default, temporary) or b64_json |
Note: The style parameter is intentionally not available on edit_image -- edit prompts are instructions (e.g. "remove the background"), not descriptions, so wrapping them in style templates would produce nonsense.
list_styles
Returns all available image styles with their name, description, and prompt template. No parameters.
Built-in Styles
| Style | Description |
|---|---|
watercolor |
Watercolor painting style |
oil-painting |
Oil painting with visible brushstrokes |
pencil-sketch |
Detailed pencil sketch |
pixel-art |
Retro pixel art |
anime |
Anime style illustration |
pop-art |
Bold pop art style |
art-nouveau |
Art nouveau with flowing organic lines |
cinematic |
Cinematic photography with dramatic lighting |
portrait |
Professional portrait photography |
macro |
Extreme macro photography |
aerial |
Aerial drone photography |
studio |
Studio photography on clean background |
noir |
Dark film noir style |
vintage |
Faded vintage photograph |
Available Models
| Model | Resolution | Cost | Rate Limit |
|---|---|---|---|
grok-imagine-image (default) |
1k/2k | $0.02/image | 300 RPM |
Prerequisites
- Rust (edition 2024)
- An xAI API key from console.x.ai
Setup
Create the config file:
mkdir -p ~/.config/mcp-server-grok-image
Create ~/.config/mcp-server-grok-image/config.toml:
api_key = "xai-..."
Custom Styles
Add custom styles to your config file. Custom styles with the same name as a built-in will override it.
api_key = "xai-..."
[[styles]]
name = "my-style"
description = "My custom look"
template = "{prompt}, in my custom style"
[[styles]]
name = "watercolor"
description = "My watercolor variant"
template = "{prompt}, as a loose expressive watercolor with ink outlines"
Templates must contain the {prompt} placeholder. Any custom style missing it will be skipped with a warning at startup.
Build
cargo build --release
This produces target/release/mcp-server-grok-image.
For development:
cargo build # debug build
cargo run # run in dev mode
RUST_LOG=debug cargo run # run with debug logging
MCP Configuration
Add to your Claude Desktop config (~/.config/Claude/claude_desktop_config.json):
{
"mcpServers": {
"grok-image": {
"command": "/path/to/mcp-server-grok-image"
}
}
}
Project Structure
src/
main.rs - everything: config, styles, API types, MCP server, tool definitions
License
MIT
Recommended Servers
playwright-mcp
A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.
Magic Component Platform (MCP)
An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.
Audiense Insights MCP Server
Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.
VeyraX MCP
Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.
graphlit-mcp-server
The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.
Kagi MCP Server
An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.
Neon Database
MCP server for interacting with Neon Management API and databases
E2B
Using MCP to run code via e2b.
Exa Search
A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.
Qdrant Server
This repository is an example of how to create a MCP server for Qdrant, a vector search engine.