Skip to content
Merged
Show file tree
Hide file tree
Changes from 4 commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
15 changes: 11 additions & 4 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
name: Continuous integration
Comment thread
danixeee marked this conversation as resolved.
name: ci
Comment thread
danixeee marked this conversation as resolved.
Outdated

on:
push:
Expand All @@ -9,11 +9,18 @@ jobs:
build-mcp-server:
name: Build MCP Server
runs-on: ubuntu-latest

steps:
- uses: actions/checkout@v5
- uses: actions/setup-node@v5
- name: Checkout
uses: actions/checkout@v5

- name: Setup Node
uses: actions/setup-node@v5
with:
node-version: "22"
Comment thread
danixeee marked this conversation as resolved.
cache: "yarn"

- name: Install dependencies
- name: Install
run: yarn install --immutable

- name: Build
Expand Down
35 changes: 35 additions & 0 deletions .github/workflows/publish.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
name: Publish
on:
push:
tags:
- "v*"

jobs:
publish:
runs-on: ubuntu-latest

steps:
- name: Checkout
uses: actions/checkout@v5

- name: Setup Node (with npm auth)
uses: actions/setup-node@v5
with:
node-version: "22"
Comment thread
danixeee marked this conversation as resolved.
cache: "yarn"
registry-url: "https://registry.npmjs.org"
always-auth: true

- name: Enable Corepack
run: corepack enable

- name: Install
run: yarn install --immutable

- name: Build
run: yarn build

- name: Publish
env:
NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }}
run: npm publish --access public
81 changes: 75 additions & 6 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,20 +1,89 @@
# Plainly MCP server
# Plainly's Official MCP Server

## Local configuration
Implementation of MCP server for [Plainly](https://www.plainlyvideos.com/) in NodeJS. Enables LLM clients to connect and interact with Plainly APIs.

To configure MCP locally, add `.vscode/mcp.json` like following:
## 🎥 Demo

<p align="center">
<a href="https://storage.googleapis.com/plainly-static-data/plainly-mcp-server-demo.mp4">
<img src="https://storage.googleapis.com/plainly-static-data/plainly-mcp-server-demo-thumbnail.png" alt="Demo Video" width="500">
</a>
</p>

## 📋 Prerequisites

- [Node.js](https://docs.npmjs.com/downloading-and-installing-node-js-and-npm)
Comment thread
danixeee marked this conversation as resolved.
Outdated
- [NPM](https://docs.npmjs.com/downloading-and-installing-node-js-and-npm)
- [Plainly Account](https://app.plainlyvideos.com)

## ▶️ How to run (local installation)

1. **Get your Plainly API key**

- Go to [Settings page](https://app.plainlyvideos.com/dashboard/user/settings/general)
- Create a new API key
- Copy the new API key

2. **Add config to your editor**

```json
{
"servers": {
"Plainly": {
"plainly": {
"command": "npx",
"args": ["-y", "@plainly-videos/mcp-server@latest"],
"env": {
"PLAINLY_API_KEY": "<PLAINLY_API_KEY>"
}
}
}
}
```

## 🛠️ Available tools

- `list_renderable_items` - returns a list of all criteria matching designs and custom projects for authenticated user
- `get_renderable_items_details` - returns details of a single design or custom project, such as: required and optional parameters, preview links, aspect ratios, etc.
- `render_item` - submits a render with all needed parameters
- `check_render_status` - checks the render status and report error or preview links

## 🗣️ Prompts & Resources

This implementation **does not** include `prompts` or `resources` from the MCP specification. However, this may change in the future when there is broader support across popular MCP clients.

## 🚧 Development mode

If you want to run the server in development mode, you can install dependencies and run the server using the following command:

1. Clone, install, and build:

```shell
git clone git@github.com:plainly-videos/mcp-server.git
cd mcp-server

yarn install
yarn build
```

2. Add your API key in `.vscode/mcp.json`

```json
{
"servers": {
"plainly": {
"command": "node",
"args": ["<FULL PATH TO dist/index.js>"],
"env": {
"PLAINLY_API_URL": "https://api.test.plainlyvideos.com",
"PLAINLY_API_KEY": "<TEST API KEY>"
"PLAINLY_API_KEY": "<PLAINLY_API_KEY>"
}
}
}
}
```

3. Start MCP server from `.vscode/mcp.json`

## 📄 Plainly developer resources

- [Help center](https://help.plainlyvideos.com/)
- [API reference](https://app.plainlyvideos.com/api-reference.html)
15 changes: 9 additions & 6 deletions package.json
Original file line number Diff line number Diff line change
@@ -1,21 +1,24 @@
{
"name": "plainly-mcp-server",
"name": "@plainly-videos/mcp-server",
"version": "1.0.0",
"description": "MCP server for video generation platform",
"type": "module",
"main": "dist/index.js",
"description": "Plainly Videos MCP server for browsing designs/projects, and rendering videos.",
"bin": "dist/index.js",
"files": [
"dist"
],
"scripts": {
"dev": "vite build --watch",
"build": "tsc --noEmit && vite build",
"typecheck": "tsc --noEmit",
"start": "node dist/index.js"
},
"author": "Daniel Elero <danixeee@gmail.com>",
"author": "PlainlyVideos <contact@planlyvideos.com>",
"license": "MIT",
Comment thread
danixeee marked this conversation as resolved.
"packageManager": "yarn@4.9.2",
"dependencies": {
"@modelcontextprotocol/sdk": "^1.0.4",
"axios": "^1.12.2"
"axios": "^1.12.2",
"zod": "^3.25.76"
},
"devDependencies": {
"@types/node": "^22.10.6",
Expand Down
Loading