Skip to main content
Glama

Draw Things MCP

Draw Things API integration for Cursor using Model Context Protocol (MCP).

Prerequisites

Related MCP server: Jira Context MCP Server

Installation

# Install globally
npm install -g draw-things-mcp-cursor

# Or run directly
npx draw-things-mcp-cursor

Cursor Integration

To set up this tool in Cursor, see the detailed guide in cursor-setup.md.

Quick setup:

  1. Create or edit ~/.cursor/claude_desktop_config.json:

{
  "mcpServers": {
    "draw-things": {
      "command": "draw-things-mcp-cursor",
      "args": []
    }
  }
}
  1. Restart Cursor

  2. Use in Cursor: generateImage({"prompt": "a cute cat"})

CLI Usage

Generate Image

echo '{"prompt": "your prompt here"}' | npx draw-things-mcp-cursor

Parameters

  • prompt: The text prompt for image generation (required)

  • negative_prompt: The negative prompt for image generation

  • width: Image width (default: 360)

  • height: Image height (default: 360)

  • steps: Number of steps for generation (default: 8)

  • model: Model to use for generation (default: "flux_1_schnell_q5p.ckpt")

  • sampler: Sampling method (default: "DPM++ 2M AYS")

Example:

echo '{
  "prompt": "a happy smiling dog, professional photography",
  "negative_prompt": "ugly, deformed, blurry",
  "width": 360,
  "height": 360,
  "steps": 4
}' | npx draw-things-mcp-cursor

MCP Tool Integration

When used as an MCP tool in Cursor, the tool will be registered as generateImage with the following parameters:

{
  prompt: string;       // Required - The prompt to generate the image from
  negative_prompt?: string;  // Optional - The negative prompt
  width?: number;       // Optional - Image width (default: 360)
  height?: number;      // Optional - Image height (default: 360)
  model?: string;       // Optional - Model name
  steps?: number;       // Optional - Number of steps (default: 8)
}

The generated images will be saved in the images directory with a filename format of: <sanitized_prompt>_<timestamp>.png

Response Format

Success:

{
  "type": "success",
  "content": [{
    "type": "image",
    "data": "base64 encoded image data",
    "mimeType": "image/png"
  }],
  "metadata": {
    "parameters": { ... }
  }
}

Error:

{
  "type": "error",
  "error": "error message",
  "code": 500
}

Troubleshooting

If you encounter issues:

  • Ensure Draw Things API is running at http://127.0.0.1:7888

  • Check log files in ~/.cursor/logs if using with Cursor

  • Make sure src/index.js has execution permissions: chmod +x src/index.js

License

MIT

Available Tools

1 tool
generateImageC

Generate an image based on a prompt

ParametersJSON Schema
NameRequiredDescriptionDefault
promptNo
negative_promptNo
widthNo
heightNo
stepsNo
seedNo
guidance_scaleNo
random_stringNo

TDQS

C2.4/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full burden of behavioral disclosure. It only states the action ('Generate an image') without mentioning any behavioral traits like rate limits, authentication needs, output format, or potential side effects (e.g., resource usage). For a tool with 8 parameters and no annotation coverage, this is inadequate, as it leaves critical operational details unspecified.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is extremely concise with a single sentence, 'Generate an image based on a prompt', which is front-loaded and wastes no words. It efficiently communicates the core function without unnecessary elaboration, making it easy to parse quickly. This is optimal for brevity, though it may sacrifice detail.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the complexity (8 parameters, no annotations, no output schema), the description is incomplete. It doesn't explain the return values, error conditions, or how parameters interact, leaving significant gaps for the agent to operate effectively. While conciseness is high, it lacks the necessary context to handle the tool's full scope, making it insufficient for robust use.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters1/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The description adds no meaning beyond the input schema, which has 8 parameters and 0% schema description coverage. Parameters like 'negative_prompt', 'steps', and 'guidance_scale' are undocumented in both the schema and description, leaving their purposes unclear. This fails to compensate for the low coverage, resulting in poor parameter understanding for the agent.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description 'Generate an image based on a prompt' clearly states the verb ('Generate') and resource ('image'), making the purpose understandable. However, it's somewhat vague about the specific method or technology (e.g., AI model type), and with no siblings, it doesn't need differentiation but lacks depth. This meets the minimum viable standard without being tautological or misleading.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides no guidance on when to use this tool, such as scenarios for image generation, alternatives, or prerequisites. It merely states the basic function without context, leaving the agent to infer usage. This is a clear gap, as it doesn't help distinguish from potential implicit alternatives or set expectations.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

TDQS

C2.7/5.0
Disambiguation5/5

With only one tool, there is no possibility of confusion or overlap between tools. The single tool 'generateImage' has a distinct and clear purpose, so disambiguation is perfect.

Naming Consistency5/5

Since there is only one tool, naming consistency is inherently perfect. The tool name 'generateImage' follows a clear verb_noun pattern, and there are no other tools to compare it against for inconsistency.

Tool Count2/5

A single tool for an image generation server feels thin and limited in scope. While it covers the core function, it lacks supporting operations like editing, listing, or managing images, making it borderline too few for a typical domain.

Completeness2/5

The server's purpose appears to be image generation, but with only a generate tool, there are significant gaps. There is no way to retrieve, update, delete, or manage generated images, which will likely cause agent failures in workflows requiring more than one-off generation.

Maintenance

ActivityInactive
ResponsivenessSyncing

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Connectors

Related MCP Servers

Latest Blog Posts

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/jaokuohsuan/draw-things-mcp-cursor'

If you have feedback or need assistance with the MCP directory API, please join our Discord server