mcpField
C
canva

canva

github.com/abgohel设计与 UI342 次安装39 周前更新
代码仓库

关于 canva

通过 Canva Connect API 创建、导出和管理 Canva 设计的技能,涵盖模板填充、资产上传、设计查询及多种格式导出。

主要功能

  1. 01查询设计和品牌模板
  2. 02基于模板创建设计
  3. 03向 Canva 上传资产
  4. 04以多种格式导出设计
  5. 05自动刷新 OAuth 令牌

适用场景

  1. 01用品牌模板制作 Instagram 帖子
  2. 02根据要点制作轮播图
  3. 03将设计导出为 PNG 或 PDF
  4. 04向 Canva 上传图片

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/abgohel/canva-skill --skill canva

安装后在 Claude Code 中输入/canva确认已加载。

包含的文件

除 SKILL.md 外,安装时一起下载的参考资料和脚本。

.gitignore
README.md
package.json
scripts/
canva-auth.sh
canva.sh

详细介绍

Canva 技能

通过 Connect API 创建、导出和管理 Canva 设计。

适用场景

  • “创建一篇关于 [主题] 的 Instagram 帖子”
  • “将我的 Canva 设计导出为 PNG”
  • “列出我最近的设计”
  • “根据这些要点创建轮播图”
  • “将这张图片上传到 Canva”

前提条件

  1. 创建 Canva 集成:

  2. 设置环境变量:

    export CANVA_CLIENT_ID="your_client_id"
    export CANVA_CLIENT_SECRET="your_client_secret"
    
  3. 进行身份验证(首次使用时): 运行身份验证流程以获取访问令牌(存储在 ~/.canva/tokens.json 中)

API 基础 URL

https://api.canva.com/rest/v1

身份验证

Canva 使用 OAuth 2.0。该技能会自动处理令牌刷新。

# Get access token (stored in ~/.canva/tokens.json)
ACCESS_TOKEN=$(cat ~/.canva/tokens.json | jq -r '.access_token')

核心操作

列出设计
curl -s "https://api.canva.com/rest/v1/designs" \
  -H "Authorization: Bearer $ACCESS_TOKEN" | jq .
获取设计详情
curl -s "https://api.canva.com/rest/v1/designs/{designId}" \
  -H "Authorization: Bearer $ACCESS_TOKEN" | jq .
根据模板创建设计
curl -X POST "https://api.canva.com/rest/v1/autofills" \
  -H "Authorization: Bearer $ACCESS_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "brand_template_id": "TEMPLATE_ID",
    "data": {
      "title": {"type": "text", "text": "Your Title"},
      "body": {"type": "text", "text": "Your body text"}
    }
  }'
导出设计
# Start export job
curl -X POST "https://api.canva.com/rest/v1/exports" \
  -H "Authorization: Bearer $ACCESS_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "design_id": "DESIGN_ID",
    "format": {"type": "png", "width": 1080, "height": 1080}
  }'

# Check export status
curl -s "https://api.canva.com/rest/v1/exports/{jobId}" \
  -H "Authorization: Bearer $ACCESS_TOKEN" | jq .
上传素材
curl -X POST "https://api.canva.com/rest/v1/asset-uploads" \
  -H "Authorization: Bearer $ACCESS_TOKEN" \
  -H "Content-Type: application/octet-stream" \
  -H 'Asset-Upload-Metadata: {"name": "my-image.png"}' \
  --data-binary @image.png
列出品牌模板
curl -s "https://api.canva.com/rest/v1/brand-templates" \
  -H "Authorization: Bearer $ACCESS_TOKEN" | jq .

导出格式

格式选项
PNG宽度、高度、无损
JPG宽度、高度、质量(1-100)
PDF标准、打印
MP4(用于视频设计)
GIF(用于动画设计)

常见工作流

创建 Instagram 帖子
  1. 列出品牌模板:GET /brand-templates
  2. 找到 Instagram 帖子模板
  3. 使用内容自动填充:POST /autofills
  4. 导出为 1080x1080 PNG:POST /exports
  5. 下载导出的文件
创建轮播图
  1. 使用自动填充创建多个设计
  2. 将每个设计导出为 PNG
  3. 合并后发布
批量导出
  1. 列出设计:GET /designs
  2. 遍历并导出每个设计
  3. 下载所有文件

速率限制

  • 大多数端点:每分钟 100 次请求
  • 上传/导出:每分钟 30 次请求

错误处理

常见错误:

  • 401 - 令牌已过期,需要刷新
  • 403 - 缺少必需的权限范围
  • 429 - 超出速率限制
  • 404 - 未找到设计/模板

所需权限范围

  • design:content:read - 读取设计
  • design:content:write - 创建/修改设计
  • asset:read - 读取素材
  • asset:write - 上传素材
  • brandtemplate:content:read - 读取品牌模板

提示

  1. 使用品牌模板 - 预先设计好的模板比从头创建更快
  2. 批量操作 - 将导出任务分组,以避免触发速率限制
  3. 缓存模板 ID - 在本地保存常用的模板 ID
  4. 检查任务状态 - 导出是异步的;请轮询状态,直到任务完成

资源


由 Meow 😼 为 Moltbook 社区打造 🦞

评论

支持 Markdown