Draw Things MCP
This server allows you to generate images using text prompts with the following capabilities:
Create Custom Images: Generate images based on text descriptions
Customize Generation Parameters: Adjust settings like:
Width and height for image dimensions
Steps for generation quality
Seed for reproducible results
Guidance scale for prompt adherence
Negative prompts to exclude unwanted elements
Random string for additional variation
Integration: Seamlessly works with Cursor for development workflows
Output Format: Receive generated images as Base64 encoded data
Error Handling: Get informative messages and status codes for troubleshooting
Provides a Node.js runtime environment for the MCP server, with version 14.0.0 or higher required.
Enables installation and package management for the Draw Things MCP server.
Used for type definitions in the MCP tool integration, providing structured parameter typing for the generateImage function.
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., "@Draw Things MCPgenerate a cute cat playing with yarn"
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.
Draw Things MCP
Draw Things API integration for Cursor using Model Context Protocol (MCP).
Prerequisites
Node.js >= 14.0.0
Draw Things API running on http://127.0.0.1:7888
Related MCP server: Jira Context MCP Server
Installation
# Install globally
npm install -g draw-things-mcp-cursor
# Or run directly
npx draw-things-mcp-cursorCursor Integration
To set up this tool in Cursor, see the detailed guide in cursor-setup.md.
Quick setup:
Create or edit
~/.cursor/claude_desktop_config.json:
{
"mcpServers": {
"draw-things": {
"command": "draw-things-mcp-cursor",
"args": []
}
}
}Restart Cursor
Use in Cursor:
generateImage({"prompt": "a cute cat"})
CLI Usage
Generate Image
echo '{"prompt": "your prompt here"}' | npx draw-things-mcp-cursorParameters
prompt: The text prompt for image generation (required)negative_prompt: The negative prompt for image generationwidth: 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-cursorMCP 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/logsif using with CursorMake sure src/index.js has execution permissions:
chmod +x src/index.js
License
MIT
Available Tools
1 toolgenerateImageC
Generate an image based on a prompt
| Name | Required | Description | Default |
|---|---|---|---|
| prompt | No | ||
| negative_prompt | No | ||
| width | No | ||
| height | No | ||
| steps | No | ||
| seed | No | ||
| guidance_scale | No | ||
| random_string | No |
TDQS
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.
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.
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.
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.
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.
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
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.
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.
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.
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
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
Generate AI images, video, speech, music and presentations from Claude, ChatGPT and Cursor.
Generate images with your own ChatGPT subscription (Plus, Pro or Team), without spending API credits
Let Claude, Cursor, or ChatGPT author Mermaid diagrams your team can read and share.
Generate reproducible image, video, and audio assets with leading models and your own provider keys.
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceA MCP server that integrates with Cursor IDE to generate images based on text descriptions using JiMeng AI, allowing users to create and save custom images directly within their development environment.229MIT
- AlicenseNot gradedqualityDmaintenanceIntegrates Jira with Cursor IDE for AI-powered issue management, sprint tracking, library vulnerability analysis, and MySQL database queries through natural language.MIT
- AlicenseAqualityFmaintenanceEnables LLMs to generate and transform images locally on Mac using Stable Diffusion through the Draw Things app, supporting text-to-image and image-to-image generation with Apple Silicon acceleration.413623MIT
- AlicenseNot gradedqualityDmaintenanceBridges Cursor AI to Figma for chat-driven design creation and editing directly on the Figma canvas. It provides over 45 tools to manage layers, layouts, components, and variables through natural language commands.1973MIT
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/jaokuohsuan/draw-things-mcp-cursor'
If you have feedback or need assistance with the MCP directory API, please join our Discord server