m

mcp-drawthings

@james-see/mcp-drawthings
Hosted
0 Stars 62 次浏览 james-see 更新于 2026-08-23

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

  1. Open Draw Things
  2. Click the gear icon (⚙️) to open Settings
  3. Enable API Server / HTTP Server
  4. 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"

  1. Make sure Draw Things is running
  2. Check that the API Server is enabled in Draw Things settings
  3. Verify the server is accessible: curl http://localhost:7860
  4. Check if a different port is configured in Draw Things

# # Images not generating

  1. Make sure a model is loaded in Draw Things
  2. Check Draw Things for any error messages
  3. 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

相关 MCP 服务