Skip to main content
Glama

Генератор постов из шаблонов Canva

Просишь «5 слов на китайском о спорте» — и в твоём аккаунте Canva появляется новая карусель из 5 слайдов: шаблон остаётся нетронутым, а недавние слова не повторяются.

Стоимость: 0 €. Canva Free + официальный MCP-сервер Canva + этот локальный сервер. Без ресайзинга, без Enterprise-autofill, без премиум-ресурсов.

Как это устроено

Два MCP-сервера делят работу между собой:

Сервер

Кто поддерживает

Что делает

canva

Canva (удалённый, OAuth)

Дублировать, читать, редактировать и экспортировать дизайны

catalogo-plantillas

Ты (локальный, stdio)

Каталог, лимиты, валидация и история

Сервер Canva разбирается в дизайнах, но ничего не знает о твоих шаблонах и о том, что ты уже публиковал. Этот пробел заполняет локальный сервер, и именно там живёт логика, которая делает это надёжным: жёсткие правила проверяет код, а не модель. Подсчёт символов — это как раз то, с чем LLM справляется посредственно.

Related MCP server: AI Carousel Generator

Установка

python3 -m venv .venv
./.venv/bin/pip install -r requirements.txt

Подключи Canva из Claude (Настройки → Коннекторы → Canva) или в Claude Code:

claude mcp add --transport http canva https://mcp.canva.com/mcp

В браузере открывается OAuth-авторизация Canva. Не нужно создавать никакого приложения или управлять API-ключами.

Локальный сервер уже объявлен в .mcp.json, так что Claude Code сам поднимает его при открытии проекта. Проверь через /mcp, что отображаются оба.

Настройка твоих шаблонов

Каждый шаблон должен быть многостраничным дизайном в Canva: несколько дублируемых страниц с одним и тем же layout (до числа, которое укажешь в max_paginas, например, 12). Пост из N слайдов создаётся копированием N таких страниц, поэтому в мастере нужно как минимум столько страниц, сколько слайдов ты вообще собираешься запрашивать в одном посте.

Отредактируй plantillas.json (или попроси ассистента использовать anadir_plantilla). Для каждого шаблона нужно:

  • canva_design_id — находится в URL мастер-дизайна: canva.com/design/DAFxxxxxxxx/edit — это и есть DAFxxxxxxxx.

  • max_paginas — сколько страниц в мастере (= максимальное число слайдов, которое может содержать пост с этим шаблоном).

  • huecos — по одному объекту на каждый блок, который ты хочешь менять на каждой странице. Поле texto_actual должно быть буквально тем текстом, который сейчас находится в этом блоке шаблона: именно так он находится при редактировании. Текстовые слоты имеют "tipo": "texto" и max_caracteres; слот изображения имеет "tipo": "imagen" (без max_caracteres) и заполняется поиском фотографии по свободной лицензии (CC0/общественное достояние) или, если ничего не найдено, вручную.

  • max_caracteres — измерь его, вводя текст на странице до тех пор, пока он не поедет, и вычти пару символов.

  • reglas_estilo — стиль твоего контента в повелительных фразах. Это сильнее всего влияет на качество результата; его стоит отточить.

Совет: давай шаблонам в Canva описательные имена (PLANTILLA_chino_5palabras_feed). Это помогает выбрать правильный.

Использование

В Claude Code, в папке проекта:

> hazme un post de 5 palabras en chino sobre deportes

Навык generar-post срабатывает сам. Процесс такой: выбрать шаблон и число слайдов → запросить контракт слотов → сгенерировать контент для каждого слайда → проверить → продублировать N страниц и отредактировать их в Canva → экспортировать всё одной ссылкой → записать готовый пост в историю целиком.

Если контент не проходит валидацию, его исправляют и проверяют снова, прежде чем трогать что-либо в Canva. Именно это помогает не получать сломанные дизайны.

Как избегает повторений

  • Темы (temas_publicados): предупреждает, если ты уже публиковал пост с той же темой (например, «спорт» полностью снова).

  • Слова (elementos_usados): слова, использованные в последних COOLDOWN_POSTS постах (по умолчанию 15, настраивается в servidor_catalogo.py) для этого шаблона, избегаются. Это не вечная блокировка — после такого количества постов слово снова становится доступным. Ровно столько, чтобы никто его не запомнил.

Что этот проект не делает

  • Не публикует в Instagram и TikTok. MCP Canva умеет только экспортировать в изображение или PDF. Публикация — это отдельная интеграция (API Meta и TikTok), и она не бесплатна по времени настройки.

  • Не генерирует изображения с помощью ИИ. Для слотов изображения он ищет уже существующие фото по свободной лицензии CC0/общественное достояние (Openverse); если ничего не находит — просит поставить вручную.

  • Не изменяет размеры между форматами. Здесь требуется Canva Pro. Держи отдельный шаблон на каждый формат: один для ленты, другой для вертикальных, каждый со своей записью в каталоге.

  • Не работает сам по себе. MCP отвечает, когда ты открываешь разговор. Ничего не запланировано для генерации постов ранним утром.

  • Не заменяет проверку. Изменение текста может сломать перенос строки, а автоматически найденное изображение может не совсем подойти. Открой дизайн перед публикацией.

Проверка работы локального сервера

./.venv/bin/python -c "
import servidor_catalogo as s
print(s.listar_plantillas())
print(s.preparar_encargo('texto-3', 'animales', 4))
print(s.elementos_usados('texto-3'))
"

Он должен вывести список твоих шаблонов и вернуть контракт для запроса из 4 слайдов для texto-3.

Related MCP Connectors

Related MCP Servers