Grok Image

io.github.codeChapPublished by GitHub account codeChapv0.1.0Updated Oct 24, 2026

MCP server for Grok image generation and editing

The publisher's own server: Surface

VerifiedSTDIODesktop onlyMedia & DesignAI & ML

Overview

AI-generated overview

A local MCP server that lets an assistant generate and edit images through xAI's Grok image API, including a corporate headshot helper.

What you can do
Generate images from text prompts, with model, count, aspect ratio, resolution, quality and style options, and see the resolved prompt that was sent to the API. Edit one or up to five existing images with natural-language instructions, referencing multiple sources by index. Produce a padded corporate headshot from a portrait, with optional clothing, notes, pronoun and sizing parameters. List the built-in and custom image styles and their prompt templates.
When to use it
Useful when you want an assistant to create or modify images inside a chat session without leaving it for a separate image tool, for example drafting illustrations, restyling a photo, or standardizing a portrait into a headshot.
Requirements
Runs as a local process built from source with Rust (edition 2024); no package is published. Needs an xAI API key from console.x.ai, placed in a config file at ~/.config/mcp-server-grok-image/config.toml, and network access to the Grok image API. Registered in the client config by the built binary's path.
Before you install
The API key is stored in plain text in the config file and should be protected. Image generation and editing call a paid third-party API, so usage may incur charges per image. Source images, including local file paths, are sent to xAI. The headshot tool writes intermediate and output image files to a save directory.

Installation

In SourceWeft

  1. Open Grok Image in the dashboard and add it to a workspace.
  2. Enable the server for the chats that should use its tools.

Desktop only via STDIO. STDIO servers start a local process, so they need the SourceWeft desktop host.

Other MCP clients

Follow the launch instructions in the repository.

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

ToolDescription
generate_imageGenerate an image from a text prompt
edit_imageEdit an existing image using natural language instructions
headshotCorporate headshot from a source portrait (pad to 3:2 + fixed edit prompt)
list_stylesList available image styles for use with generate_image

generate_image

Generate an image from a text description.

Parameters:

NameTypeRequiredDescription
promptstringyesText description of the desired image
modelstringnoModel to use (default: grok-imagine-image-2.0)
nintegernoNumber of images to generate (1-10, default 1)
aspect_ratiostringnoAspect ratio: 1:1, 16:9, 9:16, 4:3, 3:4, 3:2, 2:3, 2:1, 1:2, 19.5:9, 9:19.5, 20:9, 9:20, 21:9, 5:2, auto
resolutionstringnoOutput resolution: 1k (~1024px, default) or 2k (~2048px)
qualitystringnolow, medium, or auto (2.0 only; omitted = auto. Auto currently serves low for generation)
response_formatstringnoOutput format: url (default, temporary) or b64_json
stylestringnoStyle 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:

NameTypeRequiredDescription
image_urlstringno*URL, base64 data URI, or local file path of the source image. Mutually exclusive with images.
imagesstring[]no*Up to 5 source images for multi-image editing. Reference them in the prompt as <IMAGE_0>, <IMAGE_1>, …
promptstringyesNatural language edit instructions
modelstringnoModel to use (default: grok-imagine-image-2.0)
nintegernoNumber of variations to generate (1-10, default 1)
aspect_ratiostringnoSame set as generate_image, including 21:9 and 5:2
resolutionstringnoOutput resolution: 1k (~1024px, default) or 2k (~2048px)
qualitystringnolow, medium, or auto (2.0 only; omitted = auto. Auto currently serves medium for editing)
response_formatstringnoOutput format: url (default, temporary) or b64_json

* Provide either image_url or images.

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.

headshot

Expand-only portrait fix (Gemini pipeline equivalent on Imagine). Does not reframe pose, cut out hair, or redesign the person.

  1. Resize full source (default 550px wide) — never crop
  2. Letterbox with white gutters to canvas width (default 780)
  3. Call grok-imagine-image-2.0 at quality medium: complete cut-off shoulders if needed; clean solid white background; keep face/hair/pose/clothing/logos

No cutout / no rembg / no transparent alpha — same job as the original Gemini headshot skill.

Parameters:

NameTypeRequiredDescription
imagestringyesLocal path, http(s) URL, or data: URI
clothingstringnoFor missing-shoulder fill only
notesstringnoMust-preserve details (glasses, exact logo text, …)
pronounstringnohis / her / their (default their)
gravitystringnoLetterbox gravity (North default)
content_widthintegernoResize width before pad (default 550)
canvas_widthintegernoPadded width (default 780)
resolutionstringno1k or 2k (default 2k)
output_pathstringnoOptional final path (also under save_dir)
nintegernoVariations (1–10, default 1)
qualitystringnolow / medium / auto (default medium)
modelstringnoDefault grok-imagine-image-2.0

Padded intermediate: save_dir/headshot-padded_*.jpg.

list_styles

Returns all available image styles with their name, description, and prompt template. No parameters.

Built-in Styles

StyleDescription
watercolorWatercolor painting style
oil-paintingOil painting with visible brushstrokes
pencil-sketchDetailed pencil sketch
pixel-artRetro pixel art
animeAnime style illustration
pop-artBold pop art style
art-nouveauArt nouveau with flowing organic lines
cinematicCinematic photography with dramatic lighting
portraitProfessional portrait photography
macroExtreme macro photography
aerialAerial drone photography
studioStudio photography on clean background
noirDark film noir style
vintageFaded vintage photograph

Available Models

ModelNotes
grok-imagine-image-2.0 (default)Optional quality (low / medium / auto), up to 5 edit references, 21:9 and 5:2. Auto currently serves low for generation and medium for editing.
grok-imagine-image1.0. Still available; no quality param.
grok-imagine-image-qualityRetires 2026-11-02. After that the slug is served by grok-imagine-image-2.0 at quality: low ($0.01 less per image than the quality model).

Prerequisites

Setup

Create the config file:

bash
mkdir -p ~/.config/mcp-server-grok-image

Create ~/.config/mcp-server-grok-image/config.toml:

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.

toml
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

bash
cargo build --release

This produces target/release/mcp-server-grok-image.

For development:

bash
cargo build              # debug buildcargo run                # run in dev modeRUST_LOG=debug cargo run # run with debug logging

MCP Configuration

Add to your Claude Desktop config (~/.config/Claude/claude_desktop_config.json):

json
{  "mcpServers": {    "grok-image": {      "command": "/path/to/mcp-server-grok-image"    }  }}

Project Structure

src/  main.rs      process entry (stdio MCP)  config.rs    TOML / env config  styles.rs    built-in + custom styles  grok.rs      xAI request/response types  params.rs    MCP tool params + validation  image_io.rs  data URIs, local files, mime, fetch  headshot.rs  letterbox pad + expand prompt  server.rs    MCP tools and Grok HTTP

License

MIT

Source: README.md at commit 6382b52

Tools

0
SourceWeft has not started this package in its sandbox yet, so its tools are not known.

Version history

1
  1. v0.1.0LatestSep 16, 2026

Score

40% of the applicable checks met

How complete this listing is, computed from the registry entry, the endpoint and public sources. Not a rating of the server and not a statement that it is safe or working today: reachability is a dated check, and no installs or reviews go into the score.

  • Reached in the last 30 days25 pts

    Keep the endpoint answering the MCP handshake; SourceWeft probes it every 30 days.

  • Auth declared10 pts

    Declare the credential headers in the registry entry, or keep the endpoint answering the probe so its auth can be classified.

  • Tools listed15 pts

    Answer tools/list without a credential, or ship a package that starts in a sandbox without one.

  • DescriptionRequired15 pts
  • Logo10 pts
  • Documentation15 pts
  • License10 pts

    Declare a license in the repository or the registry entry.

Other Grok integrations