canva-mcp-server
Educational MCP server that connects AI agents to the Canva Connect API, enabling design search, creation, and export through natural language.
README
canva-mcp-server
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:
- Acesse o Canva Developer Portal e crie um app (tipo "Connect API integration").
- Anote o Client ID e o Client Secret.
- Configure um Redirect URI (para testes locais, algo como
http://127.0.0.1:3333/callback). - Defina os scopes necessários, no mínimo:
design:content:read,design:content:write,design:meta:read,asset:read. - Siga o fluxo OAuth do Canva (autorização no navegador → troca do
codeporaccess_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. - Guarde o
access_tokenobtido (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
Recommended Servers
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.
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.
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.
VeyraX MCP
Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.
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.
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.
E2B
Using MCP to run code via e2b.
Neon Database
MCP server for interacting with Neon Management API and databases
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.
Qdrant Server
This repository is an example of how to create a MCP server for Qdrant, a vector search engine.