PL
OfficialAI & MLMedia

Plainly Videos MCP Server for LLM Video Rendering

Use the official Plainly Videos MCP server to browse designs, projects, and render videos with LLM clients.

Quick Install
npx -y @plainly-videos/mcp-server

Overview

Plainly Videos MCP Server is an implementation of a Model Context Protocol (MCP) server designed to let LLM clients discover designs, inspect projects, and trigger video renders programmatically. It exposes a small REST surface and a manifest that LLMs or other automation agents can call as “tools”, enabling video production workflows to be driven from conversational and programmatic AI clients.

For developers, this server acts as the bridge between a Plainly Videos account (assets, templates, projects) and language models that orchestrate rendering tasks. Instead of manually opening an editor, an LLM can list available designs, apply data to templates, and queue renders—useful for automated content pipelines, chat-driven video creation, or integrating video generation into larger AI applications.

Features

  • Exposes an MCP-compatible manifest and HTTP endpoints for tool discovery by LLMs.
  • Browse designs and projects programmatically.
  • Create or patch project parameters (data, timing, assets).
  • Trigger synchronous or asynchronous video render jobs.
  • Returns render status and downloadable artifacts once complete.
  • Simple configuration via environment variables; supports local and containerized deployment.

Installation / Configuration

Clone the repository and install dependencies:

git clone https://github.com/plainly-videos/mcp-server.git
cd mcp-server
npm install

Example environment file (.env):

# Server
PORT=3000

# Plainly Videos API / account keys
PLAINLY_API_KEY=sk_...

# Optional storage backend (S3 or compatible)
S3_BUCKET=my-bucket
AWS_ACCESS_KEY_ID=AKIA...
AWS_SECRET_ACCESS_KEY=...
AWS_REGION=us-east-1

# Other optional settings
LOG_LEVEL=info

Run locally:

# development
npm run dev

# production
npm run start

Docker (example Dockerfile + run):

# Dockerfile
FROM node:20-alpine
WORKDIR /app
COPY package*.json ./
RUN npm ci --only=production
COPY . .
ENV NODE_ENV=production
CMD ["node", "index.js"]

Build and run:

docker build -t plainly-mcp-server .
docker run -p 3000:3000 --env-file .env plainly-mcp-server

Tip: When deploying behind HTTPS or to cloud platforms, ensure the base URL used in the MCP manifest matches your public endpoint so LLMs can reach the tool endpoints.

Available Resources

The server exposes a minimal set of REST endpoints that LLMs and clients use. The exact paths can be configured in the repo; below is a representative table of the common endpoints you will see.

MethodPathPurpose
GET/mcp/manifestReturns MCP tool manifest (tool metadata) for discovery
GET/designsList available designs/templates
GET/projectsList or inspect projects
GET/projects/:idGet project details and variables
POST/projectsCreate a new project instance
PATCH/projects/:idUpdate project data/variables
POST/rendersStart a render job (returns job id)
GET/renders/:idGet render job status and results

Example: fetch manifest

curl https://api.example.com/mcp/manifest

Example: start a render (JSON body is illustrative)

curl -X POST https://api.example.com/renders \
  -H "Authorization: Bearer $PLAINLY_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "projectId": "proj_abc123",
    "designId": "design_hero",
    "variables": {"headline": "Quarterly Results", "cta": "Learn more"},
    "format": {"width": 1920, "height": 1080},
    "callbackUrl": "https://hooks.example.com/plainly-callback"
  }'

The server will respond with a job id and, depending on configuration, may invoke callbacks or provide an S3 URL for the finished MP4.

Use Cases

  • Chat-driven video generation: Integrate with an LLM assistant so a user can request “Make a 30s product teaser with our Q2 numbers.” The assistant queries designs, populates variables, and calls the render endpoint.
  • Automated content pipelines: A marketing automation system generates weekly social clips. A scheduler triggers project creation and render jobs using plain HTTP calls to the MCP server.
  • Programmatic A/B testing: Create variants of a design by changing template variables, render multiple outputs, and store results for analytics or human review.
  • Editor augmentation: Use an LLM tool to search available templates and suggest edits or fill-in text, then hand off to designers to finalize or approve renders.

Available Tools / Integration Notes

  • MCP manifest: Place the manifest URL in your LLM tool registry so the model can call the endpoints as tools. The manifest includes name, description, and per-endpoint schemas.
  • Call patterns: The server supports synchronous polling (check /renders/:id) and asynchronous callbacks (callbackUrl) — pick the pattern that matches your orchestration needs.
  • Authentication: Use API keys or standard HTTP auth headers. For production, put the server behind an API gateway and enforce TLS.

Troubleshooting & Tips

  • 401/403: Verify PLAINLY_API_KEY and any upstream Plainly account credentials.
  • Timeouts: Large renders may take time; prefer asynchronous flow with callback or long-polling.
  • Debugging: Enable LOG_LEVEL=debug to surface upstream Plainly API calls and job lifecycle events.

For source, issues, and the full server code, see the GitHub repository: https://github.com/plainly-videos/mcp-server.