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
- Create an OAuth application for Canva
- Configure your redirect URI
- 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