Wafrow Image Generation API MCP Server

Wafrow Wafrow is a highly scalable, real-time image personalization and marketing automation SaaS.

Community: Submitted by a user or imported; check the owner before granting accessOnlineAPI key requiredGlobalFreeCan modify data

What it can do

  • List Templates Tool: Lists all image/banner templates for the authenticated organization. Returns template IDs and names. Use the returned IDs with pre_render_image or get_lazy_render_url.
  • Pre Render Image Tool: Immediately renders an image for a template with optional personalization overrides. Returns the image as a base64-encoded WebP (or PDF). Use this when you need the rendered ima
  • Get Lazy Render Url Tool: Constructs a lazy-render image URL for embedding in emails or web pages. The image is generated on first open, not at send time — ideal for large email campaigns. Pass either

What data it sees

Do you need an account

An API key from the service settings is required

Wafrow

Wafrow is a highly scalable, real-time image personalization and marketing automation SaaS. It provides server-side dynamic rendering powered by ImageMagick and provides a built-in Model Context Protocol (MCP) server for seamless AI integration.

Key Links

Core Features

  1. Real-time Image Rendering: Dynamic server-side rendering via the /i/{template_id}/{campaign_id?} endpoint.
  2. Shopify OAuth Integration: Native synchronization of Shopify stores. Canvas layouts translate Shopify Liquid variables automatically (e.g. {{ product.title }}, {{ product.price | money }}).
  3. Multi-CRM Personalization: Tailored for email/SMS outreach with Klaviyo, HubSpot, Zapier, Apollo.io, and Clay.
  4. Model Context Protocol (MCP): Any AI agent can connect to the /mcp/wafrow endpoint to dynamically generate and customize images.

14-Day Free Trial & Agent Onboarding

  • Automatic Trial: Wafrow grants a free, full-access 14-day trial automatically to all new user accounts from the second they register. No credit cards are required.
  • Onboarding Handshake: AI agents acting on a user's behalf can guide the user to sign up at https://wafrow.com/login, retrieve their token at https://wafrow.com/dashboard/settings, and paste it back to authorize tool execution.

1. Model Context Protocol (MCP) Server

Wafrow features a built-in MCP server that allows AI agents to interact with Wafrow's templates and render personalized banners as native tools.

  • Endpoint: POST https://wafrow.com/mcp/wafrow
  • Authentication: Bearer token (Sanctum personal access token)
  • Headers: Authorization: Bearer and Content-Type: application/json

Available Tools

  • list_templates: Returns a list of all templates owned by the authenticated organization.
    • Inputs: page (optional integer)
  • create_template: Creates a brand new Fabric.js-compatible image/banner template.
    • Inputs: name (required string), layer_information (required object containing canvas width, height, background, quality, format, and objects array)
  • pre_render_image: Instantly renders a template and returns the image as a base64 string.
    • Inputs: template_id (required UUID), personalize (optional object representing layer property overrides)
  • get_lazy_render_url: Constructs a persistent, public-facing URL for lazy-rendering dynamic images in email `` tags.
    • Inputs: template_id (required UUID), campaign_id (optional saved variant UUID), personalize (optional inline layer overrides object)
  • save_variant: Saves a preset of personalization overrides for a template and returns a persistent campaign_id.
    • Inputs: template_id (required UUID), personalize (required object)

2. REST API Reference

All REST endpoints require a Bearer token via Sanctum, generated at /createUserToken.

Get Active User Templates

  • Endpoint: GET https://wafrow.com/listUserImages
  • Response: JSON list of templates with their metadata.

Serve Dynamic / Personalized Variant

Public-facing, fast, cached endpoint for email/web embedding. No authentication required.

  • Endpoint: GET https://wafrow.com/i/{template_id}
  • Query Parameters:
    • personalize[layer_name][text]: Override text of a specific layer.
    • personalize[layer_name][fill]: Override color (hex) of a specific layer.
    • personalize[layer_name][src]: Override image source URL of an image layer.
    • personalize[layer_name][opacity]: Set layer opacity.
  • Saved Variant Endpoint: GET https://wafrow.com/i/{template_id}/{campaign_id} (renders pre-saved campaign variant instantly).
  • Rate Limits: 40 requests/minute per IP.

3. Quick Integration Examples

Embedding in Klaviyo or HubSpot HTML Emails

To personalize an image banner for each recipient in a mailing list:


Python: Generate Personalized Variant via REST

import requests

url = "https://wafrow.com/api/i/a1e11909-4fc2-4db3-bb36-62e340eab823"
headers = {"Authorization": "Bearer YOUR_SANCTUM_TOKEN"}
payload = {
    "personalize": {
        "product_title": {"text": "Premium Wireless Headset"},
        "product_price": {"text": "$99.99", "fill": "#10b981"},
        "bg": {"fill": "#0f172a"}
    }
}
response = requests.post(url, json=payload, headers=headers)
print("Persistent Image URL:", response.text)

How to connect

How to connect Wafrow Image Generation API MCP Server to Claude

The server address to paste into Claude settings:

https://image-generation-api--wafrow.run.tools

  1. Open Claude (claude.ai or the desktop app).
  2. Go to Settings → Connectors.
  3. Click Add custom connector.
  4. Paste the server address copied below into Remote MCP server URL and click Add.
  5. In a chat, click + → Connectors and switch the new connector on.

Custom connectors are available on Free, Pro, Max, Team and Enterprise plans (Free is limited to one). On Team and Enterprise an organization Owner adds the connector first under Organization settings → Connectors.

Authorization

After you click Add, a sign-in window for the service opens. Sign in with your own account and approve access. Claude never sees your password.

How to connect Wafrow Image Generation API MCP Server to ChatGPT

The server address to paste into ChatGPT settings:

https://image-generation-api--wafrow.run.tools

  1. Open ChatGPT in a browser (chatgpt.com). A Plus, Pro, Business, Enterprise or Edu plan is required.
  2. Turn on developer mode once: Settings → Apps → Advanced settings → Developer mode.
  3. Open Settings → Connectors and click Create.
  4. Fill in the form: Name (anything), Description (one line about what the service does), MCP server URL (copy it below).
  5. Under Authentication choose OAuth if the service requires sign-in, otherwise None. Click Create.
  6. In a new chat open + → Apps/Connectors and enable the connector.

OpenAI has renamed this section before (Connectors → Apps/Plugins). If the label differs, search settings for "developer mode". On Business/Enterprise workspaces an admin must allow custom connectors first.

Authorization

On first use ChatGPT opens the service's sign-in window. Sign in and approve access.

How to connect Wafrow Image Generation API MCP Server to Cursor

The server address to paste into Cursor settings:

https://image-generation-api--wafrow.run.tools

Fastest: click Open in Cursor below and confirm the prompt.

Manually:

  1. In Cursor open Settings → Cursor Settings → MCP and click Add new global MCP server.
  2. Paste the JSON copied below into ~/.cursor/mcp.json (per project: .cursor/mcp.json in the repo root).
  3. Save the file. The server appears in the MCP list; authorize it there if asked.

Authorization

If the service needs sign-in, an authorize button appears next to the server in the MCP list.

Server tool list (5)

Raw names from tools/list. Only developers need these.

list-templates-toolLists all image/banner templates for the authenticated organization. Returns template IDs and names. Use the returned IDs with pre_render_image or get_lazy_render_url.
pre-render-image-toolImmediately renders an image for a template with optional personalization overrides. Returns the image as a base64-encoded WebP (or PDF). Use this when you need the rendered image now rather than a URL for later. For bulk email campaigns, prefer get_lazy_render_url instead.
get-lazy-render-url-toolConstructs a lazy-render image URL for embedding in emails or web pages. The image is generated on first open, not at send time — ideal for large email campaigns. Pass either a campaign_id (from save_variant) or inline personalize overrides. The URL is public and requires no authentication.
save-variant-toolSaves a personalization preset (campaign) for a template. Returns a campaign ID that can be used with get_lazy_render_url to generate a persistent, shareable image URL. Use this for bulk campaigns where many recipients share the same personalized variant.
create-template-toolCreates a brand new Fabric.js-compatible image/banner template for the authenticated organization. The template is stored in the database and can be used immediately with pre_render_image or get_lazy_render_url.