View as Markdown

Canva Integration

List and create Canva designs, manage folders, and export assets

The Canva integration provides access to list and create Canva designs, manage folders, and export assets through the Integrate MCP server.

Installation

The Canva integration is included with the SDK:

import { canvaIntegration } from "integrate-sdk/server";

Setup

1. Create a Canva OAuth App

  1. Create an OAuth application for Canva
  2. Configure your redirect URI
  3. Note your Client ID and Client Secret

2. Configure the Integration on Your Server

Add the Canva integration to your server configuration. The integration automatically reads CANVA_CLIENT_ID and CANVA_CLIENT_SECRET from your environment variables:

import { createMCPServer, canvaIntegration } from "integrate-sdk/server";
 
export const { client: serverClient } = createMCPServer({
  apiKey: process.env.INTEGRATE_API_KEY,
  integrations: [
    canvaIntegration({
    }),
  ],
});

You can override the environment variables by passing explicit values:

canvaIntegration({
  clientId: process.env.CUSTOM_CANVA_ID,
  clientSecret: process.env.CUSTOM_CANVA_SECRET,
});

3. Client-Side Usage

The default client automatically includes all integrations. You can use it directly:

import { client } from "integrate-sdk";
 
await client.authorize("canva");
const result = await client.canva.getMe({});
 
console.log(result);

If you're using a custom client, add the integration to the integrations array:

import { createMCPClient, canvaIntegration } from "integrate-sdk";
 
const customClient = createMCPClient({
  integrations: [canvaIntegration()],
});

Configuration Options

export interface CanvaIntegrationConfig {
  /** Canva OAuth client ID (defaults to CANVA_CLIENT_ID env var) */
  clientId?: string;

Tools

canva_get_me

Get me

No parameters.

canva_get_profile

Get profile

No parameters.

canva_list_designs

List designs

export interface CanvaListDesignsParams {
    query?: string;

canva_get_design

Get design

export interface CanvaGetDesignParams { design_id: string }

canva_get_design_export_formats

Get design export formats

export interface CanvaGetDesignExportFormatsParams { design_id: string }

canva_create_design

Create design

export interface CanvaCreateDesignParams {
    title: string;

canva_get_folder

Get folder

export interface CanvaGetFolderParams { folder_id: string }

canva_list_folder_items

List folder items

export interface CanvaListFolderItemsParams {
    folder_id: string;

canva_create_folder

Create folder

export interface CanvaCreateFolderParams { name: string;

canva_update_folder

Update folder

export interface CanvaUpdateFolderParams { folder_id: string;

canva_delete_folder

Delete folder

export interface CanvaDeleteFolderParams { folder_id: string }

canva_list_brand_templates

List brand templates

export interface CanvaListBrandTemplatesParams {
    query?: string;

canva_get_brand_template

Get brand template

export interface CanvaGetBrandTemplateParams { brand_template_id: string }

canva_create_export_job

Create export job

export interface CanvaCreateExportJobParams { design_id: string;

canva_get_export_job

Get export job

export interface CanvaGetExportJobParams { job_id: string }

Notes

  • Category: Productivity
  • Authentication mode: OAuth