io.github.james-see/mcp-drawthings MCP Server
io.github.james-see/mcp-drawthings
Generate images locally on Mac using Draw Things and Stable Diffusion via Claude or Cursor.
What is the io.github.james-see/mcp-drawthings MCP server?
The mcp-drawthings MCP server enables LLMs to generate and transform images locally on Mac using Draw Things, which runs Stable Diffusion and other AI models on Apple Silicon. It provides text-to-image and image-to-image capabilities without sending data to external services.
This server bridges Claude and Cursor with Draw Things, a local AI image generation app for Mac. You can generate images from text prompts, transform existing images, and query Draw Things configuration—all processing happens locally on your Mac's Apple Silicon chip.
How to install io.github.james-see/mcp-drawthings
Copy-paste configuration for popular MCP clients.
Tools & capabilities
Tools this server exposes to the agent.
check_status— Check if the Draw Things API server is running and accessible.get_config— Get the current Draw Things configuration including the loaded model and settings.generate_image— Generate an image from a text prompt with customizable parameters like dimensions, inference steps, guidance scale, and seed.transform_image— Transform an existing image using a text prompt (image-to-image) with control over denoising strength and other generation parameters.
Use cases
- Generate concept art and visual designs directly within Claude or Cursor without leaving your editor
- Transform and iterate on existing images using natural language descriptions
- Create illustrations and mockups locally while maintaining privacy and avoiding API costs
- Batch generate variations of images by adjusting prompts, seeds, and parameters
- Integrate AI image generation into creative workflows on Mac with full local processing
io.github.james-see/mcp-drawthings MCP server FAQ
It's an MCP server that connects Claude or Cursor to Draw Things, a local AI image generation app for Mac, enabling text-to-image and image-to-image generation using Stable Diffusion.
Yes, mcp-drawthings is open-source (MIT license). Draw Things is also free, though it requires macOS with Apple Silicon (M1/M2/M3/M4).
Add the server to ~/Library/Application Support/Claude/claude_desktop_config.json with the command 'npx -y mcp-drawthings', then restart Claude Desktop.
Add the server to .cursor/mcp.json in your project or global config with the command 'npx -y mcp-drawthings', then restart Cursor.
No API key required. You only need Draw Things installed and its API Server enabled in settings (runs on localhost:7860 by default).
macOS with Apple Silicon (M1/M2/M3/M4), Draw Things app installed, and Node.js 18 or later.
README (reference)
Source of truth, from the repository.
mcp-drawthings
An MCP (Model Context Protocol) server for Draw Things - enabling LLMs to generate images locally on Mac using Stable Diffusion and other AI models.
Features
- Text-to-Image Generation - Generate images from text prompts using the currently loaded model in Draw Things
- Image-to-Image Transformation - Transform existing images using text prompts
- Configuration Access - Query the current Draw Things settings and loaded model
- Local Processing - All image generation runs locally on your Mac using Apple Silicon (M1/M2/M3/M4)
Prerequisites
- macOS with Apple Silicon (M1/M2/M3/M4)
- Draw Things app installed
- Node.js 18 or later
Setup
1. Enable Draw Things API Server
- Open Draw Things
- Click the gear icon (⚙️) to open Settings
- Enable API Server / HTTP Server
- The server runs on port 7860 by default
Verify the server is running:
curl http://localhost:7860
2. Configure Your MCP Client
Claude Desktop
Add to ~/Library/Application Support/Claude/claude_desktop_config.json:
{
"mcpServers": {
"drawthings": {
"command": "npx",
"args": ["-y", "mcp-drawthings"]
}
}
}
Cursor
Add to .cursor/mcp.json in your project or global config:
{
"mcpServers": {
"drawthings": {
"command": "npx",
"args": ["-y", "mcp-drawthings"]
}
}
}
3. Restart Your MCP Client
Restart Claude Desktop or Cursor to load the new MCP server.
Available Tools
check_status
Check if the Draw Things API server is running and accessible.
get_config
Get the current Draw Things configuration including the loaded model and settings.
generate_image
Generate an image from a text prompt.
Parameters:
| Parameter | Type | Required | Description |
|---|---|---|---|
prompt | string | Yes | Text description of the image to generate |
negative_prompt | string | No | Elements to exclude from the generated image |
width | number | No | Image width in pixels (default: 512) |
height | number | No | Image height in pixels (default: 512) |
steps | number | No | Number of inference steps (default: 20) |
cfg_scale | number | No | Guidance scale (default: 7.5) |
seed | number | No | Random seed for reproducibility (-1 for random) |
output_path | string | No | Custom file path to save the image |
Example:
Generate an image of a futuristic city at sunset with flying cars
transform_image
Transform an existing image using a text prompt (img2img).
Parameters:
| Parameter | Type | Required | Description |
|---|---|---|---|
prompt | string | Yes | Text description of the desired transformation |
image_path | string | No* | Path to the source image file |
image_base64 | string | No* | Base64-encoded source image |
negative_prompt | string | No | Elements to exclude |
denoising_strength | number | No | Transformation strength 0.0-1.0 (default: 0.75) |
steps | number | No | Number of inference steps (default: 20) |
cfg_scale | number | No | Guidance scale (default: 7.5) |
seed | number | No | Random seed (-1 for random) |
output_path | string | No | Custom file path to save the result |
*Either image_path or image_base64 must be provided.
Configuration
Environment Variables
| Variable | Default | Description |
|---|---|---|
DRAWTHINGS_HOST | localhost | Draw Things API host |
DRAWTHINGS_PORT | 7860 | Draw Things API port |
DRAWTHINGS_OUTPUT_DIR | ~/Pictures/drawthings-mcp | Directory for generated images |
Architecture
┌─────────────────┐ stdio ┌──────────────────┐ HTTP ┌─────────────┐
│ MCP Client │◄──────────────►│ mcp-drawthings │◄────────────►│ Draw Things │
│ (Claude/Cursor) │ JSON-RPC │ │ localhost │ App │
└─────────────────┘ └──────────────────┘ :7860 └─────────────┘
│
▼
┌──────────────┐
│ File System │
│ (images) │
└──────────────┘
Development
# Clone the repository
git clone https://github.com/james-see/mcp-drawthings
cd mcp-drawthings
# Install dependencies
npm install
# Build
npm run build
# Run in development mode
npm run dev
Troubleshooting
"Cannot connect to Draw Things API"
- Make sure Draw Things is running
- Check that the API Server is enabled in Draw Things settings
- Verify the server is accessible:
curl http://localhost:7860 - Check if a different port is configured in Draw Things
Images not generating
- Make sure a model is loaded in Draw Things
- Check Draw Things for any error messages
- Try generating an image directly in Draw Things first
Permission errors saving images
Check that the output directory is writable. You can set a custom directory using the DRAWTHINGS_OUTPUT_DIR environment variable.
License
MIT
Related Projects
- Draw Things - The AI image generation app for Mac/iOS
- Model Context Protocol - The protocol specification
- @modelcontextprotocol/sdk - TypeScript SDK for MCP
Related MCP servers
Free lockfile malware check plus paid behavioral scan of packages, agent skills and MCP tools.
MCP server providing monkey data, journeys, and location services for various monkey species.

Oh My Posh Configurator
Design beautiful terminal prompts visually without editing JSON—drag, drop, customize, and export Oh My Posh configurations.

Wiggle
A coordination layer for autonomous agents: rooms, messaging, inbox, roles, and polls.
Make money with x402. See what's earning, find profitable gaps, and price your service right.
View repository →

