graphics-mcp
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., "@graphics-mcpresize image.jpg to 800x600"
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.
Graphics MCP Server
Unified MCP server for raster image inspection, conversion, and manipulation.
Version: 0.1.2 Status: Internal Bodai integration component
Quick Links
Related MCP server: mcp-screenshot
Quality & CI
Crackerjack is the standard quality-control and CI/CD gate for Graphics MCP changes. Local verification should mirror the Crackerjack workflow used across the Bodai ecosystem.
Overview
Graphics MCP exposes common image operations through a FastMCP server. It gives agents a bounded way to inspect image metadata, convert formats, resize, crop, rotate, flip, thumbnail, and apply filters while keeping filesystem access constrained to configured directories.
The current implementation uses the Pillow backend. The settings model already reserves flags for ImageMagick and GIMP backends, but those should be treated as future or optional surfaces unless validated for the target deployment.
Capabilities
Implemented tool surface:
Image inspection: read dimensions, format, mode, and file metadata
Format conversion: convert among JPEG, PNG, GIF, BMP, WEBP, and TIFF
Resize and crop: fit, fill, exact, and crop-oriented raster transformations
Filter operations: blur, sharpen, grayscale, sepia, invert, contrast, brightness, and related effects
Orientation operations: rotate and flip images
Thumbnail generation: create bounded thumbnails from source images
Filesystem guardrails: list and enforce configured allowed directories and maximum file size
HTTP health routes:
/healthand/healthzfor MCP client and process supervision checks
Quick Start
Prerequisites
Python 3.13+
UV package manager
Local image files under an allowed directory
Local Setup
git clone https://github.com/lesleslie/graphics-mcp.git
cd graphics-mcp
uv sync --group devRun The Server
uv run graphics-mcp start
uv run graphics-mcp healthThe default HTTP bind is 127.0.0.1:3040.
Allow A Working Directory
export GRAPHICS_ALLOWED_DIRECTORIES="/tmp,/Users/les/Pictures,/Users/les/Downloads"
uv run graphics-mcp startCLI Commands
The CLI is built with mcp-common and provides the standard lifecycle command surface used by Bodai MCP servers.
uv run graphics-mcp start # Start the HTTP MCP server
uv run graphics-mcp stop # Stop the managed server process
uv run graphics-mcp restart # Restart the managed server process
uv run graphics-mcp status # Show process status
uv run graphics-mcp health # Run the local health probeMCP Server Configuration
Claude / Codex Style Configuration
Add the server to an MCP client configuration:
{
"mcpServers": {
"graphics": {
"command": "uv",
"args": ["run", "graphics-mcp", "start"],
"cwd": "/Users/les/Projects/graphics-mcp",
"env": {
"GRAPHICS_ALLOWED_DIRECTORIES": "/tmp,/Users/les/Pictures,/Users/les/Downloads"
}
}
}
}Health Checks
curl http://127.0.0.1:3040/health
curl http://127.0.0.1:3040/healthzTool Reference
Tool | Purpose | Required Inputs |
| Inspect image metadata |
|
| Convert an image to another format |
|
| Resize an image by width, height, and mode |
|
| Crop an image to pixel boundaries |
|
| Apply a raster filter effect |
|
| Rotate an image by degrees |
|
| Flip horizontally or vertically |
|
| Create a thumbnail within max dimensions |
|
| List supported filter names | none |
| Show configured filesystem guardrails | none |
| Show supported image formats | none |
Tool responses follow a consistent ToolResponse shape:
{
"success": true,
"message": "Image converted successfully",
"data": {},
"error": null,
"next_steps": []
}Configuration
Committed defaults live in settings/graphics.yaml. Runtime overrides should come from environment variables or a local .env file that is not committed.
Setting | Environment Variable | Default |
Default backend |
|
|
Enable Pillow |
|
|
Enable ImageMagick |
|
|
Enable GIMP |
|
|
Allowed directories |
|
|
Max file size |
|
|
Allowed formats |
|
|
HTTP host |
|
|
HTTP port |
|
|
Log level |
|
|
JSON logs |
|
|
Project Structure
graphics_mcp/
backends/ # Backend interface and Pillow implementation
cli.py # mcp-common lifecycle CLI
config.py # Pydantic settings and logging
models.py # Typed image operation models
server.py # FastMCP application factory
tools/ # Universal and raster MCP tools
settings/
graphics.yaml # Committed defaults
tests/Development
uv sync --group dev
uv run pytest
uv run ruff check graphics_mcp tests
uv run ruff format graphics_mcp tests
uv run mypy graphics_mcpUse targeted tests when isolating a backend or tool behavior:
uv run pytest tests -k resize -vSecurity Notes
Keep image file access constrained with
GRAPHICS_ALLOWED_DIRECTORIES.Do not add tools that write outside configured paths.
Treat user-provided image paths as untrusted input.
Avoid logging full sensitive local paths when examples are shared outside local development.
This server cannot be installed
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 Servers
- AlicenseCqualityCmaintenanceMCP server for local compression of various image formatsLast updated15233MIT
- FlicenseAqualityDmaintenanceMCP server for taking Linux / Wayland screenshots via grim and slurp.Last updated2
- AlicenseBqualityCmaintenanceMCP server exposing KiCad PCB Editor functionality via IPC API.Last updated41MIT
- Alicense-qualityCmaintenanceProduction-grade MCP server for universal reverse engineering automation.Last updated69GPL 3.0
Related MCP Connectors
MCP server for Wan AI video generation
MCP server for Flux AI image generation
Official remote MCP server for Color Me Shop.
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/lesleslie/graphics-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server