Loading languages...
AW

awslabs.nova-canvas-mcp-server

@awslabs8007

MCP server for generating images using Amazon Nova Canvas

image generation
aws
nova canvas
ai

Markdown Content: mcp/src/nova-canvas-mcp-server at main · awslabs/mcp · GitHub

===============

Skip to content Navigation Menu

Toggle navigation

Sign in

Appearance settings

  • Product
*   [GitHub Copilot Write better code with AI](https://github.com/features/copilot)
*   [GitHub Spark New Build and deploy intelligent apps](https://github.com/features/spark)
*   [GitHub Models New Manage and compare prompts](https://github.com/features/models)
*   [GitHub Advanced Security Find and fix vulnerabilities](https://github.com/security/advanced-security)
*   [Actions Automate any workflow](https://github.com/features/actions)

*   [Codespaces Instant dev environments](https://github.com/features/codespaces)
*   [Issues Plan and track work](https://github.com/features/issues)
*   [Code Review Manage code changes](https://github.com/features/code-review)
*   [Discussions Collaborate outside of code](https://github.com/features/discussions)
*   [Code Search Find more, search less](https://github.com/features/code-search)

Explore * Why GitHub * All features * Documentation * GitHub Skills * Blog

  • Solutions

By company size * Enterprises * Small and medium teams * Startups * Nonprofits

By use case * DevSecOps * DevOps * CI/CD * View all use cases

By industry * Healthcare * Financial services * Manufacturing * Government * View all industries

View all solutions

  • Resources

Topics * AI * DevOps * Security * Software Development * View all

Explore * Learning Pathways * Events & Webinars * Ebooks & Whitepapers * Customer Stories * Partners * Executive Insights

  • Open Source
*   [GitHub Sponsors Fund open source developers](https://github.com/sponsors)

*   [The ReadME Project GitHub community articles](https://github.com/readme)

Repositories * Topics * Trending * Collections

  • Enterprise
*   [Enterprise platform AI-powered developer platform](https://github.com/enterprise)

Available add-ons * GitHub Advanced Security Enterprise-grade security features * Copilot for business Enterprise-grade AI features * Premium Support Enterprise-grade 24/7 support

Search or jump to...

Search code, repositories, users, issues, pull requests...

Search

Clear

Search syntax tips

Provide feedback

We read every piece of feedback, and take your input very seriously.

  • [x] Include my email address so I can be contacted

Cancel Submit feedback

Saved searches

Use saved searches to filter your results more quickly

Name

Query

To see all available qualifiers, see our documentation.

Cancel Create saved search

Sign in

Sign up

Appearance settings

Resetting focus

You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert

{{ message }}

awslabs/**mcp**Public

Additional navigation options

Collapse file tree

Files

main

Search this repository

  •     .devcontainer  
    
  •     .github  
    
  •     docs  
    
  •     docusaurus  
    
  •     samples  
    
  •     src  
    
    •      amazon-kendra-index-mcp-server  
      
    •      amazon-keyspaces-mcp-server  
      
    •      amazon-mq-mcp-server  
      
    •      amazon-neptune-mcp-server  
      
    •      amazon-qbusiness-anonymous-mcp-server  
      
    •      amazon-qindex-mcp-server  
      
    •      amazon-rekognition-mcp-server  
      
    •      amazon-sns-sqs-mcp-server  
      
    •      aurora-dsql-mcp-server  
      
    •      aws-api-mcp-server  
      
    •      aws-bedrock-data-automation-mcp-server  
      
    •      aws-dataprocessing-mcp-server  
      
    •      aws-diagram-mcp-server  
      
    •      aws-documentation-mcp-server  
      
    •      aws-healthomics-mcp-server  
      
    •      aws-knowledge-mcp-server  
      
    •      aws-location-mcp-server  
      
    •      aws-msk-mcp-server  
      
    •      aws-pricing-mcp-server  
      
    •      aws-serverless-mcp-server  
      
    •      aws-support-mcp-server  
      
    •      bedrock-kb-retrieval-mcp-server  
      
    •      cdk-mcp-server  
      
    •      cfn-mcp-server  
      
    •      cloudwatch-appsignals-mcp-server  
      
    •      cloudwatch-logs-mcp-server  
      
    •      cloudwatch-mcp-server  
      
    •      code-doc-gen-mcp-server  
      
    •      core-mcp-server  
      
    •      cost-explorer-mcp-server  
      
    •      documentdb-mcp-server  
      
    •      dynamodb-mcp-server  
      
    •      ecs-mcp-server  
      
    •      eks-mcp-server  
      
    •      elasticache-mcp-server  
      
    •      finch-mcp-server  
      
    •      frontend-mcp-server  
      
    •      git-repo-research-mcp-server  
      
    •      iam-mcp-server  
      
    •      lambda-tool-mcp-server  
      
    •      mcp-lambda-handler  
      
    •      memcached-mcp-server  
      
    •      mysql-mcp-server  
      
    •      nova-canvas-mcp-server  
      
      •       awslabs  
        
      •       tests  
        
      •     .gitignore  
        
      •     .python-version  
        
      •     CHANGELOG.md  
        
      •     Dockerfile  
        
      •     LICENSE  
        
      •     NOTICE  
        
      •     README.md  
        
      •     docker-healthcheck.sh  
        
      •     pyproject.toml  
        
      •     uv-requirements.txt  
        
      •     uv.lock  
        
    •      openapi-mcp-server  
      
    •      postgres-mcp-server  
      
    •      prometheus-mcp-server  
      
    •      redshift-mcp-server  
      
    •      s3-tables-mcp-server  
      
    •      stepfunctions-tool-mcp-server  
      
    •      syntheticdata-mcp-server  
      
    •      terraform-mcp-server  
      
    •      timestream-for-influxdb-mcp-server  
      
    •      valkey-mcp-server  
      
  •   .gitignore  
    
  •   .pre-commit-config.yaml  
    
  •   .python-version  
    
  •   .ruff.toml  
    
  •   .secrets.baseline  
    
  •   CODE_OF_CONDUCT.md  
    
  •   CONTRIBUTING.md  
    
  •   DESIGN_GUIDELINES.md  
    
  •   DEVELOPER_GUIDE.md  
    
  •   LICENSE  
    
  •   NOTICE  
    
  •   README.md  
    
  •   VIBE_CODING_TIPS_TRICKS.md  
    

Breadcrumbs

  1. mcp
  2. /src

/ nova-canvas-mcp-server

/

Copy path

Directory actions

More options

More options

Directory actions

More options

More options

Latest commit

Image 4: awslabs-mcpawslabs-mcp

Automatic update of packages

success

Jul 18, 2025

cebabf7·Jul 18, 2025

History

History

Open commit details

Breadcrumbs

  1. mcp
  2. /src

/ nova-canvas-mcp-server

/

Top

Folders and files

Name Name Last commit message Last commit date
### parent directory ..
awslabs awslabs [feat: fix and check license header automation (](https://github.com/awslabs/mcp/commit/6827ea31fbdef08e648b0c422e4158f913001f59 "feat: fix and check license header automation (#510) * feat: check license header Signed-off-by: Scott Schreckengaust [email protected] * fix: add line break Signed-off-by: Scott Schreckengaust [email protected] * fix: lots of files Signed-off-by: Scott Schreckengaust [email protected] * fix: even more Signed-off-by: Scott Schreckengaust [email protected] * Revert \"fix: add line break\" This reverts commit 122fc210da47b9db4ecf382cd271921f5929cbb8. * feat: check license header configuration Signed-off-by: Scott Schreckengaust [email protected] * fix: cover excluded files from licenses Signed-off-by: Scott Schreckengaust [email protected] * fix: all files to match header Signed-off-by: Scott Schreckengaust [email protected] * fix: add a pre-commit local for npm to run too Signed-off-by: Scott Schreckengaust [email protected] * fix: typo Signed-off-by: Scott Schreckengaust [email protected] * fix: pre-commit issues Signed-off-by: Scott Schreckengaust [email protected] * fix: double copyright Signed-off-by: Scott Schreckengaust [email protected] * fix: double license Signed-off-by: Scott Schreckengaust [email protected] --------- Signed-off-by: Scott Schreckengaust [email protected] Co-authored-by: Alain Krok [email protected]")#510[)](https://github.com/awslabs/mcp/commit/6827ea31fbdef08e648b0c422e4158f913001f59 "feat: fix and check license header automation (#510) * feat: check license header Signed-off-by: Scott Schreckengaust [email protected] * fix: add line break Signed-off-by: Scott Schreckengaust [email protected] * fix: lots of files Signed-off-by: Scott Schreckengaust [email protected] * fix: even more Signed-off-by: Scott Schreckengaust [email protected] * Revert \"fix: add line break\" This reverts commit 122fc210da47b9db4ecf382cd271921f5929cbb8. * feat: check license header configuration Signed-off-by: Scott Schreckengaust [email protected] * fix: cover excluded files from licenses Signed-off-by: Scott Schreckengaust [email protected] * fix: all files to match header Signed-off-by: Scott Schreckengaust [email protected] * fix: add a pre-commit local for npm to run too Signed-off-by: Scott Schreckengaust [email protected] * fix: typo Signed-off-by: Scott Schreckengaust [email protected] * fix: pre-commit issues Signed-off-by: Scott Schreckengaust [email protected] * fix: double copyright Signed-off-by: Scott Schreckengaust [email protected] * fix: double license Signed-off-by: Scott Schreckengaust [email protected] --------- Signed-off-by: Scott Schreckengaust [email protected] Co-authored-by: Alain Krok [email protected]") Jun 4, 2025
tests tests [feat: fix and check license header automation (](https://github.com/awslabs/mcp/commit/6827ea31fbdef08e648b0c422e4158f913001f59 "feat: fix and check license header automation (#510) * feat: check license header Signed-off-by: Scott Schreckengaust [email protected] * fix: add line break Signed-off-by: Scott Schreckengaust [email protected] * fix: lots of files Signed-off-by: Scott Schreckengaust [email protected] * fix: even more Signed-off-by: Scott Schreckengaust [email protected] * Revert \"fix: add line break\" This reverts commit 122fc210da47b9db4ecf382cd271921f5929cbb8. * feat: check license header configuration Signed-off-by: Scott Schreckengaust [email protected] * fix: cover excluded files from licenses Signed-off-by: Scott Schreckengaust [email protected] * fix: all files to match header Signed-off-by: Scott Schreckengaust [email protected] * fix: add a pre-commit local for npm to run too Signed-off-by: Scott Schreckengaust [email protected] * fix: typo Signed-off-by: Scott Schreckengaust [email protected] * fix: pre-commit issues Signed-off-by: Scott Schreckengaust [email protected] * fix: double copyright Signed-off-by: Scott Schreckengaust [email protected] * fix: double license Signed-off-by: Scott Schreckengaust [email protected] --------- Signed-off-by: Scott Schreckengaust [email protected] Co-authored-by: Alain Krok [email protected]")#510[)](https://github.com/awslabs/mcp/commit/6827ea31fbdef08e648b0c422e4158f913001f59 "feat: fix and check license header automation (#510) * feat: check license header Signed-off-by: Scott Schreckengaust [email protected] * fix: add line break Signed-off-by: Scott Schreckengaust [email protected] * fix: lots of files Signed-off-by: Scott Schreckengaust [email protected] * fix: even more Signed-off-by: Scott Schreckengaust [email protected] * Revert \"fix: add line break\" This reverts commit 122fc210da47b9db4ecf382cd271921f5929cbb8. * feat: check license header configuration Signed-off-by: Scott Schreckengaust [email protected] * fix: cover excluded files from licenses Signed-off-by: Scott Schreckengaust [email protected] * fix: all files to match header Signed-off-by: Scott Schreckengaust [email protected] * fix: add a pre-commit local for npm to run too Signed-off-by: Scott Schreckengaust [email protected] * fix: typo Signed-off-by: Scott Schreckengaust [email protected] * fix: pre-commit issues Signed-off-by: Scott Schreckengaust [email protected] * fix: double copyright Signed-off-by: Scott Schreckengaust [email protected] * fix: double license Signed-off-by: Scott Schreckengaust [email protected] --------- Signed-off-by: Scott Schreckengaust [email protected] Co-authored-by: Alain Krok [email protected]") Jun 4, 2025
.gitignore .gitignore feat: new naming convention (#32) Apr 1, 2025
.python-version .python-version [Update project to support Python 3.10 and above (](https://github.com/awslabs/mcp/commit/f979d1f832fabcacd83166a292a09a547287735e "Update project to support Python 3.10 and above (#57) * Update project to support Python 3.10 and above - Tested functionality on Python 3.10 and newer version - Aligned project with MCP Python SDK requirements Quality assurance steps: - Ran 'ruff check .' to identify and fix linting issues - Applied 'ruff format .' to ensure consistent code formatting - Executed 'uv run --frozen pyright' for type checking * feat(.ruff.toml): adds shared ruff at the root of the repo\" --------- Co-authored-by: laithalsaadoon [email protected]")#57[)](https://github.com/awslabs/mcp/commit/f979d1f832fabcacd83166a292a09a547287735e "Update project to support Python 3.10 and above (#57) * Update project to support Python 3.10 and above - Tested functionality on Python 3.10 and newer version - Aligned project with MCP Python SDK requirements Quality assurance steps: - Ran 'ruff check .' to identify and fix linting issues - Applied 'ruff format .' to ensure consistent code formatting - Executed 'uv run --frozen pyright' for type checking * feat(.ruff.toml): adds shared ruff at the root of the repo\" --------- Co-authored-by: laithalsaadoon [email protected]") Apr 2, 2025
CHANGELOG.md CHANGELOG.md fix: remove sse from multiple mcp servers (#421) May 27, 2025
Dockerfile Dockerfile feat: shrink dockerfile (#833) Jul 18, 2025
LICENSE LICENSE feat: update project meta data (#121) Apr 13, 2025
NOTICE NOTICE feat: update project meta data (#121) Apr 13, 2025
README.md README.md chore: Adding VS code link to the readme (#823) Jul 16, 2025
docker-healthcheck.sh docker-healthcheck.sh feat: shrink dockerfile (#833) Jul 18, 2025
pyproject.toml pyproject.toml Automatic update of packages Jul 18, 2025
uv-requirements.txt uv-requirements.txt fix: pin pip via hashes in Dockerfile (#642) Jun 24, 2025
uv.lock uv.lock chore(deps): upgrade mcp dep (#851) Jul 17, 2025
View all files

README.md

Outline

Amazon Nova Canvas MCP Server

Image 5: smithery badge

MCP server for generating images using Amazon Nova Canvas

Features

Text-based image generation

  • Create images from text prompts with generate_image
  • Customizable 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_colors
  • Define 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

Prerequisites

  1. Install uv from Astral or the GitHub README
  2. Install Python using uv python install 3.10
  3. Set 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 configure or environment variables * Ensure your IAM role/user has permissions to use Amazon Bedrock and Nova Canvas

Installation

Cursor VS Code
Image 6: Install MCP Server Image 7: Install on VS Code

Configure the MCP server in your MCP client configuration (e.g., for Amazon Q Developer CLI, edit ~/.aws/amazonq/mcp.json):

undefinedjson { "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": [] } } } undefined

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

undefinedjson { "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": [] } } } undefined

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:

undefinedshell npx -y @smithery/cli install @awslabs/nova-canvas-mcp-server --client claude undefined

AWS 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.

undefinedjson "env": { "AWS_PROFILE": "your-aws-profile", "AWS_REGION": "us-east-1" } undefined

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.

Footer

© 2025 GitHub,Inc.

Footer navigation

You can’t perform that action at this time.

# mcpServer Config

{
  "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": []
    }
  }
}

# stdio

uvx awslabs.nova-canvas-mcp-server@latest
Transport:
stdio
Language:
python
Created: 3/21/2025
Updated: 2/1/2026