mcp-drawthings
MCP server for Draw Things - local AI image generation on Mac
MCP 服务配置
复制以下 JSON 到 OPClaw 或其他 MCP 客户端的配置文件中即可使用
{
"mcpServers": {
"mcp-drawthings": {
"args": [
"mcp-drawthings@1.1.2"
],
"command": "npx"
}
}
}
可用工具 (5 个)
该服务在 MCP 协议中暴露的工具,AI 可按需调用
tavily_search 14 个参数 需填 1 项
Search the web for current information on any topic. Use for news, facts, or data beyond your knowledge cutoff. Returns snippets and source URLs.
必填参数:query
tavily_extract 6 个参数 需填 1 项
Extract content from URLs. Returns raw page content in markdown or text format.
必填参数:urls
tavily_crawl 11 个参数 需填 1 项
Crawl a website starting from a URL. Extracts content from pages with configurable depth and breadth.
必填参数:url
tavily_map 8 个参数 需填 1 项
Map a website's structure. Returns a list of URLs found starting from the base URL.
必填参数:url
tavily_research 2 个参数 需填 1 项
Perform comprehensive research on a given topic or question. Use this tool when you need to gather information from multiple sources to answer a question or complete a task. Returns a detailed response based on the research findings.
必填参数:input
服务介绍
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