Placid.app MCP Server: Generate Template Image and Video
Generate image and video creatives with the Placid.app MCP server using customizable templates for fast, automated media production.
npx -y @felores/placid-mcp-serverOverview
This MCP (Model Context Protocol) server adapts Placid.app template rendering into an MCP-compatible endpoint so you can programmatically generate images and videos from templates. It acts as a small HTTP service that accepts structured MCP-like requests, maps them to Placid templates and attributes, calls the Placid rendering API, and returns generated assets or delivery metadata. The server removes the need to implement Placid API logic in every application and centralizes template rendering behavior.
For developers building marketing automation, dynamic creative optimization, or content pipelines, the server simplifies creating templated visuals at scale. You can run it locally, in containers, or as part of a microservices stack, and configure output formats, storage targets, and callbacks to fit production workflows.
Features
- Generate both image and video creatives from Placid templates
- Template-driven rendering: pass a template ID and attributes to produce assets
- Simple MCP-style HTTP API for request/response integration
- Support for synchronous retrieval or asynchronous callbacks/webhooks
- Configurable storage targets (local filesystem or cloud storage) and response modes
- Docker-ready: containerize and deploy quickly
- Example request payloads and client snippets for common languages
Installation / Configuration
Prerequisites: Node.js (recommended 16+), npm or yarn, and a Placid API key.
Clone and install:
Create a .env file (example):
PORT=3000
PLACID_API_KEY=your_placid_api_key_here
DEFAULT_OUTPUT=image/png
STORAGE=localLOCAL_OUTPUT_DIR=./out
WEBHOOK_URL=
Start the server:
# or in development:
Run with Docker:
Configuration table
| Variable | Description | Example |
|---|---|---|
| PORT | HTTP port to listen on | 3000 |
| PLACID_API_KEY | API key for Placid rendering | sk_xxx |
| DEFAULT_OUTPUT | Default MIME or format | image/png |
| STORAGE | Output storage backend | local, s3 |
| LOCAL_OUTPUT_DIR | Directory for local output | ./out |
| WEBHOOK_URL | Optional callback URL for async results | https://example.com/callback |
Available Resources
- GitHub repository: https://github.com/felores/placid-mcp-server
- Placid.app (official site and API docs): https://placid.app
- Sample templates and example payloads are included in the repo (look in the examples/ directory)
- Dockerfile and npm scripts for containerized deployment
API: Example Requests
Typical endpoint: POST /generate (or /mcp/generate depending on configuration). The body includes templateId, output format, and attributes.
Curl example:
Node (fetch) example:
;
;
payload; // may contain direct URL to asset or job id for async processing
Response modes:
- Synchronous: returns direct URL or binary (configurable) when the render is fast.
- Asynchronous: returns job id; server triggers provided callbackUrl when ready.
Use Cases
- Automated social post graphics: generate daily social images populated with headlines, user avatars, and CTAs for scheduled posts.
- Dynamic ad creatives: produce multiple size variants and video snippets from a common template using campaign data in bulk.
- Personalized thumbnail generation: create video thumbnails with dynamic text and user-specific imagery for content platforms.
- Email campaign assets: produce tailored header images for segmented recipient lists with different messaging and offers.
Example concrete flow: a marketing platform sends a batch of JSON payloads to /generate with different attributes and templateId. The MCP server queues requests, calls the Placid API, stores results in LOCAL_OUTPUT_DIR (or uploads to S3), and returns a list of URLs for inclusion in downstream campaigns.
Getting Help
If you encounter issues, check:
- The repo issues page on GitHub (link above)
- Server logs for request mapping errors or API authentication failures
- Placid API limits and quota, since rendering is performed through their service
This server is intended to be a lightweight integration layer; customize or extend it to match retry policies, storage backends, or authentication schemes used in your environment.