AWS Nova Canvas
OfficialAWS Nova Canvas MCP Server enables AI-powered image generation with comprehensive customization options:
• Text-based generation: Create images from text prompts using the generate_image tool
• Color-guided generation: Generate images with specific color palettes using the generate_image_with_colors tool (supports up to 10 hex color values)
• Flexible parameters: Customize dimensions (320-4096 pixels), quality (standard/premium), cfg_scale for prompt adherence, negative prompts to exclude elements, and reproducible seeds
• Batch generation: Create 1-5 images per request
• Workspace integration: Automatically save images to specified directories with folder creation
• Secure access: AWS profile-based authentication for Amazon Bedrock and Nova Canvas services
Click on "Deploy 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., "@AWS Nova Canvasgenerate a modern dashboard UI with blue and white color palette"
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.
Amazon Nova Canvas MCP Server
MCP server for generating images using Amazon Nova Canvas
Features
Text-based image generation
Create images from text prompts with
generate_imageCustomizable dimensions (320-4096px), quality options, and negative prompting
Supports multiple image generation (1-5) in single request
Adjustable parameters like cfg_scale (1.1-10.0) and seeded generation
Color-guided image generation
Generate images with specific color palettes using
generate_image_with_colorsDefine up to 10 hex color values to influence the image style and mood
Same customization options as text-based generation
Workspace integration
Images saved to user-specified workspace directories with automatic folder creation
AWS authentication
Uses AWS profiles for secure access to Amazon Nova Canvas services
Related MCP server: MCP Media Generator
Prerequisites
Install
uvfrom Astral or the GitHub READMEInstall Python using
uv python install 3.10Set up AWS credentials with access to Amazon Bedrock and Nova Canvas
You need an AWS account with Amazon Bedrock and Amazon Nova Canvas enabled
Configure AWS credentials with
aws configureor environment variablesEnsure your IAM role/user has permissions to use Amazon Bedrock and Nova Canvas
Installation
Kiro | Cursor | VS Code |
Configure the MCP server in your MCP client configuration (e.g., for Kiro, edit ~/.kiro/settings/mcp.json):
{
"mcpServers": {
"awslabs.nova-canvas-mcp-server": {
"command": "uvx",
"args": ["awslabs.nova-canvas-mcp-server@latest"],
"env": {
"AWS_PROFILE": "your-aws-profile",
"AWS_REGION": "us-east-1",
"FASTMCP_LOG_LEVEL": "ERROR"
},
"disabled": false,
"autoApprove": []
}
}
}Windows Installation
For Windows users, the MCP server configuration format is slightly different:
{
"mcpServers": {
"awslabs.nova-canvas-mcp-server": {
"disabled": false,
"timeout": 60,
"type": "stdio",
"command": "uv",
"args": [
"tool",
"run",
"--from",
"awslabs.nova-canvas-mcp-server@latest",
"awslabs.nova-canvas-mcp-server.exe"
],
"env": {
"FASTMCP_LOG_LEVEL": "ERROR",
"AWS_PROFILE": "your-aws-profile",
"AWS_REGION": "us-east-1"
}
}
}
}or docker after a successful docker build -t awslabs/nova-canvas-mcp-server .:
# fictitious `.env` file with AWS temporary credentials
AWS_ACCESS_KEY_ID=ASIAIOSFODNN7EXAMPLE
AWS_SECRET_ACCESS_KEY=wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY
AWS_SESSION_TOKEN=AQoEXAMPLEH4aoAH0gNCAPy...truncated...zrkuWJOgQs8IZZaIv2BXIa2R4Olgk {
"mcpServers": {
"awslabs.nova-canvas-mcp-server": {
"command": "docker",
"args": [
"run",
"--rm",
"--interactive",
"--env",
"AWS_REGION=us-east-1",
"--env",
"FASTMCP_LOG_LEVEL=ERROR",
"--env-file",
"/full/path/to/file/above/.env",
"awslabs/nova-canvas-mcp-server:latest"
],
"env": {},
"disabled": false,
"autoApprove": []
}
}
}NOTE: Your credentials will need to be kept refreshed from your host
Installing via Smithery
To install Amazon Nova Canvas MCP Server for Claude Desktop automatically via Smithery:
npx -y @smithery/cli install @awslabs/nova-canvas-mcp-server --client claudeAWS Authentication
The MCP server uses the AWS profile specified in the AWS_PROFILE environment variable. If not provided, it defaults to the "default" profile in your AWS configuration file.
"env": {
"AWS_PROFILE": "your-aws-profile",
"AWS_REGION": "us-east-1"
}Make sure the AWS profile has permissions to access Amazon Bedrock and Amazon Nova Canvas. The MCP server creates a boto3 session using the specified profile to authenticate with AWS services. Your AWS IAM credentials remain on your local machine and are strictly used for using the Amazon Bedrock model APIs.
Available Tools
2 toolsgenerate_imageA
Generate an image using Amazon Nova Canvas with text prompt.
This tool uses Amazon Nova Canvas to generate images based on a text prompt.
The generated image will be saved to a file and the path will be returned.
IMPORTANT FOR ASSISTANT: Always send the current workspace directory when calling this tool!
The workspace_dir parameter should be set to the directory where the user is currently working
so that images are saved to a location accessible to the user.
## Prompt Best Practices
An effective prompt often includes short descriptions of:
1. The subject
2. The environment
3. (optional) The position or pose of the subject
4. (optional) Lighting description
5. (optional) Camera position/framing
6. (optional) The visual style or medium ("photo", "illustration", "painting", etc.)
Do not use negation words like "no", "not", "without" in your prompt. Instead, use the
negative_prompt parameter to specify what you don't want in the image.
You should always include "people, anatomy, hands, low quality, low resolution, low detail" in your negative_prompt
## Example Prompts
- "realistic editorial photo of female teacher standing at a blackboard with a warm smile"
- "whimsical and ethereal soft-shaded story illustration: A woman in a large hat stands at the ship's railing looking out across the ocean"
- "drone view of a dark river winding through a stark Iceland landscape, cinematic quality"
Returns:
McpImageGenerationResponse: A response containing the generated image paths.
| Name | Required | Description | Default |
|---|---|---|---|
| prompt | Yes | The text description of the image to generate (1-1024 characters) | |
| negative_prompt | No | Text to define what not to include in the image (1-1024 characters) | |
| filename | No | The name of the file to save the image to (without extension) | |
| width | No | The width of the generated image (320-4096, divisible by 16) | |
| height | No | The height of the generated image (320-4096, divisible by 16) | |
| quality | No | The quality of the generated image ("standard" or "premium") | standard |
| cfg_scale | No | How strongly the image adheres to the prompt (1.1-10.0) | |
| seed | No | Seed for generation (0-858,993,459) | |
| number_of_images | No | The number of images to generate (1-5) | |
| workspace_dir | No | The current workspace directory where the image should be saved. CRITICAL: Assistant must always provide the current IDE workspace directory parameter to save images to the user's current project. |
Output Schema
| Name | Required | Description |
|---|---|---|
| paths | Yes | |
| status | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden and does well: it discloses that images are saved to files with paths returned, emphasizes the critical workspace_dir requirement, and provides detailed prompt best practices and negative prompt guidance. It doesn't mention rate limits, authentication needs, or error conditions, but covers core behavioral aspects adequately for a generation tool.
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 well-structured with clear sections: purpose statement, important note, prompt best practices, examples, and return type. It's appropriately sized for a complex tool with 10 parameters. Some redundancy exists (e.g., repeating that it uses Amazon Nova Canvas), but overall it's efficient and front-loaded with critical information.
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 tool's complexity (10 parameters, generation operation) and the presence of an output schema (McpImageGenerationResponse), the description is complete. It covers purpose, critical usage requirements, detailed prompt guidance, examples, and return information. With no annotations, it adequately compensates by explaining behavioral aspects and best practices for effective 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?
Schema description coverage is 100%, so the schema already documents all 10 parameters thoroughly. The description adds some value by explaining prompt best practices and negative prompt usage, which helps understand the 'prompt' and 'negative_prompt' parameters beyond their schema descriptions. However, it doesn't add significant semantic context for other parameters like width, height, or seed beyond what the schema provides.
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 clearly states the tool's purpose: 'Generate an image using Amazon Nova Canvas with text prompt' and 'The generated image will be saved to a file and the path will be returned.' This specifies the verb (generate), resource (image), technology (Amazon Nova Canvas), and outcome (saved file with returned path). It distinguishes from the sibling tool 'generate_image_with_colors' by not mentioning color parameters.
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 clear context for when to use this tool: for image generation based on text prompts using Amazon Nova Canvas. It includes an 'IMPORTANT FOR ASSISTANT' section about always providing workspace_dir. However, it doesn't explicitly contrast when to use this vs. the sibling 'generate_image_with_colors' tool, which would be needed for a perfect score.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
generate_image_with_colorsA
Generate an image using Amazon Nova Canvas with color guidance.
This tool uses Amazon Nova Canvas to generate images based on a text prompt and color palette.
The generated image will be saved to a file and the path will be returned.
IMPORTANT FOR Assistant: Always send the current workspace directory when calling this tool!
The workspace_dir parameter should be set to the directory where the user is currently working
so that images are saved to a location accessible to the user.
## Prompt Best Practices
An effective prompt often includes short descriptions of:
1. The subject
2. The environment
3. (optional) The position or pose of the subject
4. (optional) Lighting description
5. (optional) Camera position/framing
6. (optional) The visual style or medium ("photo", "illustration", "painting", etc.)
Do not use negation words like "no", "not", "without" in your prompt. Instead, use the
negative_prompt parameter to specify what you don't want in the image.
## Example Colors
- ["#FF5733", "#33FF57", "#3357FF"] - A vibrant color scheme with red, green, and blue
- ["#000000", "#FFFFFF"] - A high contrast black and white scheme
- ["#FFD700", "#B87333"] - A gold and bronze color scheme
Returns:
McpImageGenerationResponse: A response containing the generated image paths.
| Name | Required | Description | Default |
|---|---|---|---|
| prompt | Yes | The text description of the image to generate (1-1024 characters) | |
| colors | Yes | List of up to 10 hexadecimal color values (e.g., "#FF9800") | |
| negative_prompt | No | Text to define what not to include in the image (1-1024 characters) | |
| filename | No | The name of the file to save the image to (without extension) | |
| width | No | The width of the generated image (320-4096, divisible by 16) | |
| height | No | The height of the generated image (320-4096, divisible by 16) | |
| quality | No | The quality of the generated image ("standard" or "premium") | standard |
| cfg_scale | No | How strongly the image adheres to the prompt (1.1-10.0) | |
| seed | No | Seed for generation (0-858,993,459) | |
| number_of_images | No | The number of images to generate (1-5) | |
| workspace_dir | No | The current workspace directory where the image should be saved. CRITICAL: Assistant must always provide this parameter to save images to the user's current project. |
Output Schema
| Name | Required | Description |
|---|---|---|
| paths | Yes | |
| status | Yes |
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 effectively describes key behaviors: the tool generates and saves images, returns file paths, and requires workspace_dir for accessibility. It also mentions prompt best practices and example color schemes. However, it doesn't cover potential limitations like rate limits, error conditions, or performance characteristics, which would be helpful for a complex tool with 11 parameters.
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 well-structured with clear sections (purpose, important note, best practices, examples, returns) and is appropriately sized for a complex tool. However, it includes some redundancy (e.g., repeating the importance of workspace_dir) and could be more front-loaded by moving critical usage instructions earlier. Every sentence adds value, but minor trimming could improve efficiency.
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 tool's complexity (11 parameters, no annotations, but with output schema), the description is complete enough. It covers purpose, usage, behavioral context, and examples, and the output schema handles return values. The description compensates for the lack of annotations by providing practical guidance and warnings, making it sufficient for an agent to use the tool effectively.
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 schema description coverage is 100%, so the schema already documents all 11 parameters thoroughly. The description adds minimal parameter-specific semantics beyond the schema—it emphasizes the importance of workspace_dir and provides example color values, but doesn't explain the meaning or interaction of parameters like cfg_scale, seed, or quality. Given the high schema coverage, a baseline score of 3 is appropriate as the description adds some value but relies heavily on the schema.
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 clearly states the tool's purpose: 'Generate an image using Amazon Nova Canvas with color guidance.' It specifies the verb ('generate'), resource ('image'), and technology ('Amazon Nova Canvas'), and distinguishes it from the sibling tool 'generate_image' by emphasizing color guidance. The description goes beyond the name to explain the core functionality.
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 explicit usage guidelines, including when to use this tool (for image generation with color guidance) and critical instructions like 'Always send the current workspace directory when calling this tool!' It also offers prompt best practices and distinguishes from alternatives by noting the sibling tool 'generate_image' exists, though it doesn't explicitly say when to choose one over the other. The guidance is comprehensive and actionable.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
2 tool updates
- First observed
generate_image - First observed
generate_image_with_colors
TDQS
Scored across 2 tools
The two tools have significant overlap in purpose and functionality. Both generate images using Amazon Nova Canvas with text prompts, and both require workspace directory parameters. The only distinction is that 'generate_image_with_colors' adds color palette guidance, which could be handled as an optional parameter in a single tool. This overlap creates ambiguity about when to use each tool.
The tool names follow a consistent snake_case pattern with clear verb_noun structure. Both tools start with 'generate_image' and use descriptive suffixes ('with_colors') to indicate variations. This consistency makes the tools easy to identify and understand at a glance.
With only 2 tools, the server feels thin for an image generation domain. While the tools cover basic generation with and without color guidance, there are no tools for editing, upscaling, batch processing, or other common image generation operations. The count is borderline minimal for the apparent scope.
The tool surface is severely incomplete for image generation. There are no tools for modifying generated images (e.g., resize, crop, filter), managing generation parameters beyond colors, handling multiple images, or accessing generation history. The server provides only basic creation functionality without supporting common workflows like iterative refinement or batch processing.
Maintenance
Related MCP Connectors
Generate logos, social posts, app screenshots, comic panels & visual-novel assets from prompts.
Generate images, videos, voiceovers, and captions from a chat prompt.
LLM chat, text tools, image generation, editing, batch image jobs, and asynchronous video generation
Generate images, video, music and voice from your CLI or AI agent. On-brand AI media toolkit.
Related MCP Servers
- AlicenseBqualityCmaintenanceProvides access to Amazon Bedrock's Nova Canvas model for AI image generation.121 npm24MIT
- FlicenseNot gradedqualityNot gradedmaintenanceA Model Context Protocol server that enables AI assistants to create images and videos using Amazon Nova Canvas and Nova Reel models.4-
- AlicenseAqualityDmaintenanceAn MCP server that allows you to generate and edit images using Amazon Bedrock's Nova Canvas model, supporting features like text-to-image generation, inpainting, outpainting, image variation, and background removal.84MIT
- AlicenseNot gradedqualityDmaintenanceAn MCP server for generating videos through Amazon Nova Reel 1.1 using AWS Bedrock, providing asynchronous video generation with comprehensive prompting guidelines and multiple transport methods.1MIT