Connect your AI
Use Cursor, Claude, or ChatGPT to write scripts, render videos, and publish to YouTube — without leaving the chat. You only need an API key and a few minutes to set it up.
What you can do
MCP is the bridge between your AI and oDarkly. Instead of clicking through the dashboard, you describe what you want and the assistant runs it: create a project, generate a script, render the MP4, queue YouTube uploads, or create and track automations. Everything runs in the cloud — nothing to install locally.
Works in Cursor, Claude Desktop, ChatGPT (MCP connectors), and any client that supports remote HTTPS servers.
1. Create your API key
The key identifies your account when the AI connects to oDarkly. It is shown only once — copy it and store it somewhere safe.
- Sign in to your dashboard.
- Go to Settings → Connect your AI.
- Create the key and copy the odk_live_… value right away.
- Want full video + YouTube automation? Also enable the generate and youtube:write scopes.
2. Connect your assistant
Paste the URL below into the app you use. No Node install or local script — the server is already live.
https://odarkly.com/api/mcp
Authorization: Bearer odk_live_YOUR_KEY_HERE
Client without remote support?
If the app only accepts local (stdio) MCP, use the mcp-remote package as a bridge — it connects to the oDarkly remote server for you:
{
"mcpServers": {
"odarkly": {
"command": "npx",
"args": [
"-y",
"mcp-remote",
"https://odarkly.com/api/mcp",
"--header",
"Authorization: Bearer odk_live_YOUR_KEY_HERE"
]
}
}
}
Test connection
With your odk_live_… key from the dashboard, this command should return protocolVersion and odarkly serverInfo:
curl -X POST https://odarkly.com/api/mcp \
-H "Authorization: Bearer odk_live_YOUR_KEY_HERE" \
-H "Content-Type: application/json" \
-d '{"jsonrpc":"2.0","id":1,"method":"initialize","params":{"protocolVersion":"2024-11-05","capabilities":{},"clientInfo":{"name":"test","version":"1.0"}}}'
Security
Remote MCP uses the same authentication as API v1. Each user can only access their own account — there is no shared login.
- Keys are personal: create them in Settings → Connect your AI and revoke if leaked.
- You choose what each key can do: read-only, create projects, generate videos, or publish to YouTube.
- All requests must use HTTPS. Never expose your key on public sites or repositories.
- Per-key and per-IP rate limits help prevent abuse.
- During dashboard maintenance, MCP is unavailable for regular users (admins retain access).
Cursor configuration
Add to .cursor/mcp.json or Cursor Settings → MCP. Paste the remote URL and Authorization header with your odk_live_… key.
{
"mcpServers": {
"odarkly": {
"url": "https://odarkly.com/api/mcp",
"headers": {
"Authorization": "Bearer odk_live_YOUR_KEY_HERE"
}
}
}
}
Claude configuration
In Claude Desktop: Settings → Connectors → Add custom connector. URL: https://odarkly.com/api/mcp with Bearer auth and your API key. In Claude Code, use the JSON block below.
{
"mcpServers": {
"odarkly": {
"url": "https://odarkly.com/api/mcp",
"headers": {
"Authorization": "Bearer odk_live_YOUR_KEY_HERE"
}
}
}
}
ChatGPT configuration
ChatGPT only connects to remote MCP servers over HTTPS (no local stdio).
- Open ChatGPT → Settings → Connectors (or Developer / Apps).
- Add a custom MCP connector.
- Server URL: https://odarkly.com/api/mcp — auth: Bearer odk_live_…
https://odarkly.com/api/mcp
From script to YouTube
With the right scopes on your key, you can ask for all of this in one conversation. The AI calls the tools in order — you do not need to memorize the names.
-
Create the project and generate script, images, and narration.
create_project · generate_script · generate_scene_images · generate_audio -
Render the video and wait until it is ready.
start_render · get_render_job -
Check your channels and queue the video for publishing.
list_youtube_channels · queue_youtube_video -
Set up a funnel to publish on a fixed schedule if you want the channel on autopilot.
create_funnel · update_funnel -
Create and track dashboard Automations: which are ready, which ran, and which already posted.
create_automation · list_automations · list_automation_runs -
Create influencer, carousel, UGC, cinema, or GUM Animator from chat — the same tools as the dashboard.
create_influencer · create_gum_character · create_carousel · create_ugc_video · create_cinema_video · prepare_gum_animator · create_gum_animator
To publish on YouTube, connect your channel once under Channels in the dashboard — the AI uses the connection you already set up.
Example prompts
Copy, tweak, and send these in your assistant after connecting MCP:
-
Create a horror Short about an abandoned lighthouse, generate everything, and render the video.
-
List my ready projects and queue the latest one on my main channel.
-
Create a funnel on channel X posting Mon–Fri at 6pm with review before upload.
-
List my automations, tell me which are ready and whether the last run posted to YouTube. Then create a horror Short automation through publish.
-
Create a female influencer, 25, curly hair, casual look. Then a 7-slide Instagram carousel about a skincare routine with her.
-
List my GUM Creator sheets. Prepare this MP4 in GUM Animator and recast the main person as the latest sheet.
Tool reference
These are the commands your AI can run for you. Each one needs the scope shown on the right — without it, the tool will not appear in the list.
| Tool | Description | API endpoint | Scope |
|---|---|---|---|
| Account & projects | |||
list_projects |
See your video projects | GET /api/v1/projects.php |
read |
get_project |
Open one project with scenes and status | GET /api/v1/projects.php?id= |
read |
create_project |
Start a SHORT, LONG, or MUSIC_VIDEO | POST /api/v1/projects.php |
projects:write |
get_credits |
Check credit balance and plan | GET /api/v1/credits.php |
read |
get_me |
See your profile (name, email, credits) | GET /api/v1/me.php |
read |
| Retention videos | |||
create_retention_video |
Create a retention video job (OpenAI script uses credits; B-roll and render are unlimited on the plan) | MCP only |
generate |
get_retention_job |
Get status and MP4 URL of a retention job | MCP only |
read | generate |
list_retention_jobs |
List your recent retention video jobs | MCP only |
read |
| Video production | |||
generate_script |
Generate script and scenes (uses script credits) | MCP only |
generate |
generate_scene_images |
Generate scene images (uses image credits) | MCP only |
generate |
generate_audio |
Generate narration and captions (uses audio credits) | MCP only |
generate |
start_render |
Render the MP4 on the server | MCP only |
generate |
get_render_job |
Track render progress | MCP only |
read | generate |
| YouTube & funnels | |||
list_youtube_channels |
See connected channels, funnels, and publish queue | MCP only |
read | youtube:write |
queue_youtube_video |
Queue a finished video for YouTube | MCP only |
youtube:write |
bulk_queue_youtube |
Fill the queue with multiple projects at once | MCP only |
youtube:write |
youtube_post_action |
Approve, cancel, retry, or edit a queued post | MCP only |
youtube:write |
create_funnel |
Create a publishing funnel on a channel | MCP only |
youtube:write |
update_funnel |
Change schedule, metadata, or review settings | MCP only |
youtube:write |
delete_funnel |
Remove a funnel (blocked if active posts remain) | MCP only |
youtube:write |
| Automations | |||
list_automations |
See automations: ready, on, running, and the next topic | MCP only |
read |
get_automation |
Open one automation with status and whether videos posted | MCP only |
read |
list_automation_runs |
Run history: success, errors, and YouTube posted status | MCP only |
read |
create_automation |
Create an automation (same flow as the dashboard) | MCP only |
projects:write |
update_automation |
Change topics, pipeline, voice, or style of an automation | MCP only |
projects:write |
toggle_automation |
Turn an automation on or pause it | MCP only |
projects:write |
delete_automation |
Delete an automation (videos already created are kept) | MCP only |
projects:write |
| Influencer & GUM Creator | |||
list_influencers |
List UGC library influencers | GET /api/ugc/influencers.php |
read |
get_influencer |
Open one influencer with photos | GET /api/ugc/influencers.php?id= |
read |
create_influencer |
Create an influencer from a look description (uses credits) | POST /api/ugc/influencers.php |
generate |
list_gum_characters |
List GUM Creator character sheets | GET /api/ai-influencer/sheets.php |
read |
get_gum_character |
See a GUM Creator sheet and generation status | GET /api/ai-influencer/status.php |
read | generate |
create_gum_character |
Generate a GUM Creator character | POST /api/ai-influencer/generate.php |
generate |
save_gum_character |
Save a finished sheet into the influencer library | POST /api/ai-influencer/sheets.php |
generate |
| Carousel | |||
list_carousels |
List carousels | GET /api/carousel/list.php |
read |
get_carousel |
See carousel slides, status, and download | GET /api/carousel/status.php |
read | generate |
create_carousel |
Create a viral carousel (uses credits) | POST /api/carousel/generate.php |
generate |
| UGC & Cinema | |||
list_ugc_jobs |
List UGC studio clips | MCP only |
read |
get_ugc_job |
See UGC or Cinema clip status and URL | GET /api/ugc/status.php |
read | generate |
create_ugc_video |
Generate a UGC clip (livre or product) | POST /api/ugc/generate.php |
generate |
list_cinema_jobs |
List Cinema Studio jobs | MCP only |
read |
create_cinema_video |
Generate a Cinema video (Wan, Kling, motion, Genjutsu) | POST /api/ugc/generate.php |
generate |
| GUM Animator | |||
list_gum_animator_jobs |
List GUM Animator jobs | GET /api/gum-animator/jobs.php |
read |
get_gum_animator |
See recast video status and URL | GET /api/gum-animator/status.php |
read | generate |
prepare_gum_animator |
Prepare an HTTPS video and detect people | POST /api/gum-animator/prepare.php |
generate |
create_gum_animator |
Swap the detected person with a GUM Creator character | POST /api/gum-animator/generate.php |
generate |
REST API v1
All endpoints live under /api/v1/. Send JSON for POST requests with Content-Type: application/json. Authenticate with a Bearer token.
Authentication
Include your API key in every request:
Authorization: Bearer odk_live_YOUR_KEY_HERE
| Method | Path | Description | Scope |
|---|---|---|---|
| GET | /api/v1/projects.php |
List projects (optional ?limit=1–100) | read |
| GET | /api/v1/projects.php?id={id} |
Get one project by ID (?id=) | read |
| POST | /api/v1/projects.php |
Create a new project (JSON body: type, topic, niche, …) | projects:write |
| GET | /api/v1/credits.php |
Credit balance and plan | read |
| GET | /api/v1/me.php |
Authenticated user profile | read |
API key scopes
Enable only what you need. Default keys can read and create projects. To produce and publish videos through your AI, turn on the two extra scopes below.
-
readView projects, automations, credits, profile, and render progress -
projects:writeCreate projects and manage automations -
generateGenerate script, images, audio, and render the MP4 -
youtube:writePublish to YouTube and manage channel funnels
Rate limits
Limits apply per API key. When exceeded, the API returns HTTP 429.
- 300 read requests per minute per API key
- 30 write requests (POST) per minute per API key
Example requests
Replace odk_live_YOUR_KEY_HERE with your actual key. Never commit keys to version control.
Get profile
curl -H "Authorization: Bearer odk_live_YOUR_KEY_HERE" \
https://odarkly.com/api/v1/me.php
Get credits
curl -H "Authorization: Bearer odk_live_YOUR_KEY_HERE" \
https://odarkly.com/api/v1/credits.php
List projects
curl -H "Authorization: Bearer odk_live_YOUR_KEY_HERE" \
"https://odarkly.com/api/v1/projects.php?limit=10"
Create a SHORT project
curl -X POST \
-H "Authorization: Bearer odk_live_YOUR_KEY_HERE" \
-H "Content-Type: application/json" \
-d '{"type":"SHORT","topic":"A haunted lighthouse","niche":"TERROR"}' \
https://odarkly.com/api/v1/projects.php
Want to try it now?
Create your account, generate a key in Settings, and paste it into Cursor or Claude. In a few minutes you can ask for your first video in chat.
Start free →