Skip to main content
Glama
Canva API MCP Server

Canva API MCP Server

Canva API MCP Server

A comprehensive Model Context Protocol (MCP) server for interacting with Canva's API. This server provides tools and resources for managing designs, brands, assets, and users in Canva.

Features

  • Complete coverage of Canva API endpoints

  • Tools for all major API operations

  • Resources for documentation and entity details

  • Mock data support for testing without API credentials

Related MCP server: Anytype MCP Server

Getting Started

  1. Clone this repository

  2. Install dependencies:

    npm install
  3. Copy .env.example to .env and add your Canva API credentials:

    CANVA_APP_ID=your_app_id
    CANVA_API_KEY=your_api_key
  4. Start the server:

    npm run dev

Testing with MCP Inspector

To test the server with the MCP Inspector:

npm run inspect

This will open a web interface where you can:

  • Browse and test all available tools

  • Access resources

  • View server logs

Available Tools

Design Management

  • get_design - Get information about a specific design

  • list_designs - List designs with optional pagination

Brand Management

  • get_brand - Get information about a specific brand

  • list_brands - List brands with optional pagination

Asset Management

  • get_asset - Get information about a specific asset

  • list_assets - List assets with optional filtering and pagination

  • upload_image - Upload an image to Canva from a URL

User Management

  • get_user - Get information about a specific user

  • list_users - List users with optional pagination

Available Resources

Documentation

  • canva://overview - General API overview

  • canva://getting-started - Getting started guide

  • canva://authentication - Authentication information

  • canva://designs - Designs API documentation

  • canva://brands - Brands API documentation

  • canva://assets - Assets API documentation

  • canva://users - Users API documentation

Entity Resources

  • canva://design/{designId} - Information about a specific design

  • canva://brand/{brandId} - Information about a specific brand

  • canva://asset/{assetId} - Information about a specific asset

Mock Data

If no API credentials are provided, the server will use mock data for all responses. This is useful for testing and development.

License

MIT

Available Tools

9 tools
get_assetD

Inputs: assetId (required).

get_brandD

Inputs: brandId (required).

get_designD

Inputs: designId (required).

get_userD

Inputs: userId (required).

list_assetsD

Inputs: type, limit, startAfter.

list_brandsD

Inputs: limit, startAfter.

list_designsD

Inputs: limit, startAfter.

list_usersD

Inputs: limit, startAfter.

upload_imageD

Inputs: url (required), title, brandId.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

Loading tool schema changelog…

    TDQS

    D1.8/5.0

    Scored across 9 tools

    Disambiguation4/5

    The get/list pairs for each resource are distinct and easy to differentiate. The only potential confusion is 'upload_image' versus 'get_asset'/'list_assets', but the verb 'upload' clearly indicates a different action. Without descriptions, the boundaries between asset, design, user, and brand are clear from the names.

    Naming Consistency4/5

    Most tools follow a consistent verb_noun pattern with 'get_' for singular resources and 'list_' for plural collections (e.g., get_user, list_users). The exception is 'upload_image', which uses a different verb and breaks the otherwise predictable pattern. The mix is minor but noticeable.

    Tool Count4/5

    With 9 tools, the count is within the typical well-scoped range. Each resource has a get and list tool, which is reasonable for a read-focused server. The count feels appropriate for the apparent scope, though the lack of mutating tools may make the set feel slightly thin for a full API server.

    Completeness2/5

    The tool surface is severely incomplete for a Canva API. Only get and list operations are present for assets, users, designs, and brands, with no create, update, or delete functionality. 'upload_image' provides some creation capability for assets, but the rest of the resources have no way to create or modify them, leaving significant gaps for agents.

    Maintenance

    ActivityInactive
    ResponsivenessNo recent community issues

    Related MCP Connectors

    Related MCP Servers