# DemoStudio

**Category:** 🌐 Social Media  
**Repository:** https://github.com/32bitsret/demostudio-mcp-server  
**Views:** 0  
**Installs:** 0  
**Upvotes:** 0  
**Directory Page:** https://allmcps.com/mcp/demostudio

## Description
Generate short-form video ads for Instagram Reels and TikTok from any AI assistant.

## Claude Desktop Quick Installation
Heuristic fallback — verify the package name and runner against the repository README before running it. Uses `npx` (confidence: low):

```json
"mcpServers": {
  "demostudio": {
    "command": "npx",
    "args": ["-y","demostudio"]
  }
}
```

## Documentation & README

# @demostudio/mcp-server

MCP server for [DemoStudio](https://demostudio.xyz) — lets any MCP-compatible AI assistant (Claude Code, Cursor, Windsurf, etc.) generate short-form video ads directly from a conversation.

## What it does

- **`generate_video`** — Turn a text brief into a rendered Instagram Reel / TikTok / YouTube Short
- **`get_video_status`** — Check build progress and get the exported video URL
- **`list_capabilities`** — Show all 5 scene types and 17 Remotion templates
- **`create_schedule`** — Set up the Agent to auto-generate videos on a recurring schedule

## Requirements

- Node.js 18+
- A DemoStudio API key — get one at [demostudio.xyz/settings](https://demostudio.xyz/settings)

## Installation

### Claude Code

```bash
claude mcp add --transport stdio \
  --env DEMOSTUDIO_API_KEY=your_api_key_here \
  demostudio \
  -- npx -y @demostudio/mcp-server
```

### Cursor / Windsurf

Add to your MCP config file (`~/.cursor/mcp.json` or `~/.codeium/windsurf/mcp_config.json`):

```json
{
  "mcpServers": {
    "demostudio": {
      "command": "npx",
      "args": ["-y", "@demostudio/mcp-server"],
      "env": {
        "DEMOSTUDIO_API_KEY": "your_api_key_here"
      }
    }
  }
}
```

### Claude Desktop

Add to `~/Library/Application Support/Claude/claude_desktop_config.json`:

```json
{
  "mcpServers": {
    "demostudio": {
      "command": "npx",
      "args": ["-y", "@demostudio/mcp-server"],
      "env": {
        "DEMOSTUDIO_API_KEY": "your_api_key_here"
      }
    }
  }
}
```

## Usage examples

Once installed, just talk to your AI assistant naturally:

```
Generate a 30-second Instagram Reel for my SaaS product.
It's an AI inbox tool called Clearbox. Target: busy founders.
Tone: confident, direct. End with "Try it free at getclearbox.com".
Music: uplifting. Add subtitles.
```

```
What Remotion templates does DemoStudio support?
```

```
Check the status of project abc-123.
```

```
Set up a weekly automated video for my brand.
Product: Kova — project management for remote teams.
URL: https://getkova.com. Calm music. Run every Monday.
```

## Tools reference

### `generate_video`

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `prompt` | string | ✓ | Full creative brief — product, audience, tone, scenes, CTA |
| `product_url` | string | | URL to crawl for brand colors, logo, description |
| `music_mood` | `hype` \| `uplifting` \| `calm` | | Background music mood |
| `subtitles` | boolean | | Burn subtitles onto voiceover scenes (default: true) |
| `voice_gender` | `male` \| `female` | | Preferred voiceover gender |

Returns a project URL to preview and export the video.

### `get_video_status`

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `project_id` | string | ✓ | Project UUID from `generate_video` |

### `list_capabilities`

No parameters. Returns all 17 Remotion templates with descriptions.

### `create_schedule`

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `frequency` | `daily` \| `weekly` \| `biweekly` \| `monthly` | ✓ | How often to generate |
| `run_day_of_week` | number (0–6) | | Day of week (0=Sun). Applies to weekly/biweekly/monthly |
| `brand_description` | string | | Text brief added to the Knowledge Base |
| `product_url` | string | | URL to crawl and add to the Knowledge Base |
| `music_mood` | `hype` \| `uplifting` \| `calm` | | Default music for automated runs |

## Pricing

DemoStudio is credit-based. New accounts get **500 free credits** (enough for ~1 full video).
Active accounts receive up to **500 bonus credits** every month.

- Scene generation: 10 credits
- Video export: 400 credits
- Automated run: ~700 credits

[View pricing →](https://demostudio.xyz/pricing)

## License

MIT

---

## Maintainer guide — publishing updates

### 1. Make code changes in `src/index.ts`

### 2. Bump the version
```bash
npm version patch   # 0.1.2 → 0.1.3  (bug fix / small change)
npm version minor   # 0.1.2 → 0.2.0  (new tool or renamed tool)
npm version major   # 0.1.2 → 1.0.0  (breaking change)
```

### 3. Publish to npm
```bash
npm publish --access public
```
The `prepublishOnly` script runs `tsc` automatically before publishing.

### 4. Update `server.json` — bump both version fields
```json
{
  "version": "0.1.3",          ← top-level version
  "packages": [{
    "version": "0.1.3"         ← must match npm version
  }]
}
```

### 5. Re-authenticate and publish to MCP registry
The registry JWT expires after ~1 hour. Always re-login before publishing.
```bash
# Download the publisher binary (if not already on PATH)
curl -L "https://github.com/modelcontextprotocol/registry/releases/latest/download/mcp-publisher_$(uname -s | tr '[:upper:]' '[:lower:]')_$(uname -m | sed 's/x86_64/amd64/;s/aarch64/arm64/').tar.gz" | tar xz mcp-publisher

# Login via GitHub device flow
./mcp-publisher login github
# → go to https://github.com/login/device and enter the printed code

# Publish
./mcp-publisher publish server.json
```

### 6. Push to GitHub
```bash
git add -A
git commit -m "chore: bump to vX.Y.Z — <what changed>"
git push origin main
```

### Notes
- `server.json` `$schema` URL is versioned — only update it if the registry publishes a new schema version (check https://github.com/modelcontextprotocol/registry/blob/main/docs/reference/server-json/CHANGELOG.md)
- `.mcpregistry_*` files are gitignored — they contain auth tokens and must never be committed
- The npm token is stored in `~/.npmrc` — re-run `npm set //registry.npmjs.org/:_authToken <token>` if it expires

