canva-mcp-server

canva-mcp-server

Educational MCP server that connects AI agents to the Canva Connect API, enabling design search, creation, and export through natural language.

Category
Visit Server

README

canva-mcp-server

License: MIT Node

Servidor MCP (Model Context Protocol) educacional que conecta um agente de IA à Canva Connect API. Feito como material de aula sobre mídias criativas com IA — mostra na prática como um MCP server é estruturado.

O que ele faz

Expõe 3 ferramentas (tools) que um agente de IA (Claude, etc.) pode chamar:

Ferramenta O que faz
canva_search_designs Busca designs existentes na conta do Canva por título
canva_create_design Cria um design novo em branco (poster, apresentação, post de Instagram, etc.)
canva_export_design Exporta um design como PNG, JPG, PDF, PPTX, GIF ou MP4

Estrutura do projeto

canva-mcp-server/
├── package.json
├── tsconfig.json
├── src/
│   ├── index.ts              # ponto de entrada, registra as ferramentas
│   ├── constants.ts
│   ├── services/canva.ts     # cliente HTTP + tratamento de erros da API
│   └── tools/                # uma ferramenta por arquivo
│       ├── searchDesigns.ts
│       ├── createDesign.ts
│       └── exportDesign.ts

1. Instalar dependências

cd canva-mcp-server
npm install

2. Obter um Access Token do Canva

A Canva Connect API usa OAuth 2.0 (Authorization Code + PKCE). Passo a passo:

  1. Acesse o Canva Developer Portal e crie um app (tipo "Connect API integration").
  2. Anote o Client ID e o Client Secret.
  3. Configure um Redirect URI (para testes locais, algo como http://127.0.0.1:3333/callback).
  4. Defina os scopes necessários, no mínimo: design:content:read, design:content:write, design:meta:read, asset:read.
  5. Siga o fluxo OAuth do Canva (autorização no navegador → troca do code por access_token) — o guia oficial está em https://www.canva.dev/docs/connect/authentication/. Para uma aula, o mais simples é usar o Postman/Insomnia com o fluxo OAuth2 embutido, ou o script de exemplo do próprio Canva Developer Portal.
  6. Guarde o access_token obtido (ele expira — para reuso contínuo, seria necessário implementar o refresh token; fica como exercício avançado para a turma).

3. Configurar a variável de ambiente

export CANVA_ACCESS_TOKEN="seu_access_token_aqui"

(há um .env.example no repositório com o mesmo template, caso prefira usar um arquivo .env)

4. Build e execução

npm run build
npm start

Para desenvolvimento com reload automático:

npm run dev

5. Conectar ao Claude Code / Claude Desktop

Adicione ao seu mcp config (ex: .claude/settings.json do projeto, ou claude_desktop_config.json):

{
  "mcpServers": {
    "canva": {
      "command": "node",
      "args": ["/caminho/absoluto/para/canva-mcp-server/dist/index.js"],
      "env": {
        "CANVA_ACCESS_TOKEN": "seu_access_token_aqui"
      }
    }
  }
}

6. Testar com o MCP Inspector

npx @modelcontextprotocol/inspector node dist/index.js

Isso abre uma interface web para chamar as ferramentas manualmente e ver os resultados — ótimo para demonstrar em aula antes de conectar a um agente de verdade.

Ideias para exercícios da turma

  • Adicionar uma ferramenta canva_list_brand_templates (usar templates de marca).
  • Implementar refresh automático do access token.
  • Adicionar suporte a response_format (markdown vs JSON) como no guia de boas práticas de MCP.
  • Trocar o transporte de stdio para Streamable HTTP e rodar como serviço remoto.

Licença

MIT

Recommended Servers

playwright-mcp

playwright-mcp

A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.

Official
Featured
TypeScript
Audiense Insights MCP Server

Audiense Insights MCP Server

Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.

Official
Featured
Local
TypeScript
Magic Component Platform (MCP)

Magic Component Platform (MCP)

An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.

Official
Featured
Local
TypeScript
VeyraX MCP

VeyraX MCP

Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.

Official
Featured
Local
graphlit-mcp-server

graphlit-mcp-server

The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.

Official
Featured
TypeScript
Kagi MCP Server

Kagi MCP Server

An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.

Official
Featured
Python
E2B

E2B

Using MCP to run code via e2b.

Official
Featured
Neon Database

Neon Database

MCP server for interacting with Neon Management API and databases

Official
Featured
Exa Search

Exa Search

A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.

Official
Featured
Qdrant Server

Qdrant Server

This repository is an example of how to create a MCP server for Qdrant, a vector search engine.

Official
Featured