canva

Generate a typed Python SDK for calling Canva MCP tools directly.

7|2|Updated Mar 3, 2026
One-click install
npx skills add https://github.com/manojbajaj95/mcp-skill --skill canva
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: canva
Source: https://github.com/manojbajaj95/mcp-skill/tree/main/skills/canva
Command: npx skills add https://github.com/manojbajaj95/mcp-skill --skill canva

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve?

Agents and automation workflows often waste tokens and time by round-tripping to a model for each Canva tool call; this Skill compiles Canva's MCP tools into a typed Python interface so agents can call tools directly in code and reduce latency and token usage.

Core Features & Use Cases

  • Typed Async SDK: Exposes Canva MCP tools as a typed Python class with async methods for upload, search, get, merge, export, and folder management.
  • Authentication & Persistence: Uses OAuth with token persistence to ~/.mcp-skill/canva/oauth-tokens/ for seamless repeated runs.
  • Pagination and Safety Rules: Handles continuation tokens, enforces critical usage rules (e.g., template vs design searches), and requires explicit user confirmation for destructive operations like page deletion.
  • JSON Parsing & Error Tolerance: Attempts to parse tool outputs as JSON and falls back to structured text results for robust downstream handling.
  • Use Case: Automate importing assets, searching and exporting designs, merging pages into new presentations, and programmatically commenting or organizing assets in Canva.

Quick Start

Instantiate a CanvaApp with default OAuth and call upload_asset_from_url to upload an image from a public HTTPS URL.

Frequently Asked Questions about canva

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I automate Canva design exports and asset management without wasting LLM tokens?

Automate Canva design exports by using a typed Python SDK that calls MCP tools directly, eliminating model round-trips per tool invocation. This approach reduces latency and token usage while handling uploads, searches, and folder management programmatically.

Can I use Python async methods to search and merge Canva designs programmatically?

Yes, you can use Python async methods to search and merge Canva designs programmatically. The SDK exposes Canva MCP tools as a typed asynchronous Python class compatible with the fastmcp client for upload, search, get, merge, export, and folder management tasks.

Does the Canva MCP SDK handle OAuth authentication and pagination tokens automatically?

The Canva MCP SDK handles OAuth authentication with token persistence to a local directory and manages pagination continuation tokens automatically. It enforces safety rules like distinguishing template versus design searches and requires explicit confirmation for destructive operations like page deletion.

What's the best way to import assets and upload images to Canva from a public URL?

The best way to import assets and upload images to Canva from a public URL is instantiating a CanvaApp with default OAuth and calling the upload_asset_from_url method. This typed async function handles the HTTPS image upload directly within your agent workflow code.

How does the SDK handle JSON parsing errors when calling Canva MCP tools?

The SDK handles JSON parsing errors by attempting to parse tool outputs as JSON and falling back to structured text results for robust downstream handling. This error tolerance ensures your automation workflows continue functioning even when Canva tool outputs are not valid JSON.

Do I need the fastmcp client to use this typed Python SDK for Canva automation?

You need the fastmcp client because the typed asynchronous methods in the SDK are specifically designed to be compatible with it. This compatibility allows your agent workflows to call Canva MCP tools directly in Python code without round-tripping to a model for each invocation.