Create in the conversation
Infinite Studio is an MCP server: add it to Claude, ChatGPT, Cursor or any agent that speaks the Model Context Protocol, and the assistant can make short videos with sound, songs written and sung, pictures, presentations and voices on the person's own Infinite People account — and keep them in projects, assemble them on the bench, share them.
The endpoint — https://api.infinitepeople.ai/v1/mcp
Streamable HTTP, JSON-RPC 2.0, protocol revisions 2026-07-28 and 2025-11-25 (and earlier).
The card — /.well-known/mcp-server-card (also at studio.infinitepeople.ai/.well-known/mcp)
The tools, without signing in — /v1/mcp/tools
The REST API behind them — /api/ · in Markdown · OpenAPI
Add it
One address, to paste anywhere: https://api.infinitepeople.ai/v1/mcp. Signing in is Google, on the person's own Infinite People account — nothing else to configure.
The Claude button opens the Add custom connector dialog; paste the endpoint there. The other two carry it already.
Claude — claude.ai, desktop, mobile
- Settings › Connectors › Add custom connector.
- Paste
https://api.infinitepeople.ai/v1/mcp, and name it Infinite Studio. - Click Connect: our sign-in page opens, you sign in with Google, and the tools appear.
Claude Code
claude mcp add --transport http infinite-studio https://api.infinitepeople.ai/v1/mcp
The first call opens the same sign-in in the browser. With a key made in the app instead:
claude mcp add --transport http infinite-studio https://api.infinitepeople.ai/v1/mcp \
--header "Authorization: Bearer ip_xxxxxxxxxxxx"
ChatGPT
ChatGPT takes a third-party MCP server through its developer mode, which anyone can turn on:
- On the web, Settings › Apps › Advanced settings, and turn on Developer mode.
- Back in Settings › Apps, create a connector: name
Infinite Studio, URLhttps://api.infinitepeople.ai/v1/mcp, authentication OAuth. Sign in with Google when asked. - In a conversation, open the
+menu and turn Infinite Studio on for that chat, then ask for a video, a song, a picture.
Cursor, VS Code, and the others
The buttons above add it in one click. By hand, anything that takes a remote MCP server takes this one — in Cursor's ~/.cursor/mcp.json, for instance:
{"mcpServers": {"infinite-studio": {"url": "https://api.infinitepeople.ai/v1/mcp"}}}
Hosts that read a card find it at /.well-known/mcp-server-card. Authentication is OAuth 2.1 (PKCE, dynamic registration, client metadata documents) — the metadata — or a bearer key made in the app, under the account, and sent as Authorization: Bearer ip_….
The account, the week, the money
Everything an agent makes lands on the person's own account and counts on their week, exactly as in the app: get_account says the plan and the share of the week left. A new account gets one free week of the Essentiel plan from its first creation; after that a subscription is needed, and a call that would cost without one answers 402 trial_over with the page to subscribe. The studio opens on invitation during the beta.
What an agent should do: call get_account when unsure; say what a creation will take before launching it (estimate_video, estimate_song); ask the person before anything that spends, before deleting, and before sharing. Every answer carries a next field that says what to do — follow it.
The tools
Forty-two, named for what a person wants, not for our routes. The live list — with each tool's schema — is at /v1/mcp/tools, readable without an account.
Whatever the trade
| Tool | What it does |
|---|---|
get_account | The plan, the week left, what each trade allows. |
set_account | How long creations are kept, where the work may run, the name others see. |
get_creation | One creation of any trade; holds the connection up to 25 s and answers as soon as it changes. Call it again while keep_polling is true, never sleep between calls. |
list_creations | What the account has made; the bin and what others shared too. |
manage_creation | Delete (the bin holds it 48 h), cancel, restore, change how long it is kept. |
share_creation | A one-time link for one person, to see or to edit; who has it; withdraw it. |
Video
make_video | A short video with sound from a sentence and, optionally, pictures (5, 10 or 15 s, up to 768p). |
estimate_video | What it would take — seconds, share of the week — without queuing anything. |
edit_video | Another take, render again, enlarge (up to 1080p), pick the soundtrack, rate, and the four answers to a painted first image. |
take_frame | A still at t seconds, to keep, to edit, or to start another video on. |
Song
ask_song_questions | Fifteen short questions that make the song personal. |
write_song | Our director writes the words, the style, the tempo; nothing is queued yet. |
review_song | The judge reads a draft and fixes what does not sing. |
make_song | Sing it (30 s to 4 min); or rework a finished song: repaint a passage, extend it, restyle it. |
split_song | Separate the voice and the music. |
Picture, presentation, voice
make_picture, edit_picture | Paint from words; edit, widen, enlarge, cut an object out. |
make_deck, rework_deck, present_deck | Slides, a scrolling page or a live quiz; change it in words; open a room the audience joins from their phones. |
list_voices, design_voice, say_text, convert_voice | A voice kept on the account says a text, or takes over a recording word for word. |
Projects and the bench
list_projects, get_project, manage_project | Folders that keep creations for good. |
keep_in_project, list_project_assets | Keep a picture or a finished creation; read everything a project holds, with its handle. |
manage_montage, get_montage, edit_montage | A montage of a project's clips, voices and musics, changed by operations. |
direct_montage | Say the change in a sentence; our director turns it into operations. |
make_clips, render_montage | Make the missing shots; export the montage as an mp4. |
The jury
list_review_rooms, ask_review, send_review_version | A panel of critics reads a text or a file of ours and gives a verdict, then reads the reworked version knowing what it said. |
How a session usually goes
get_account → the plan, the week left
make_video {prompt: "…"} → a creation, keep_polling: true
get_creation {trade: "video", id: "…"} → call again while keep_polling
→ ready: result.url is the mp4
keep_in_project {project_id, trade: "video", job_id}
share_creation {creation_id, role: "view"} → a link to hand over
The same shape for every trade: make, poll with get_creation, then keep, share or assemble. Sixteen tools declare an outputSchema, so the answer can be read as data rather than as text.
Without an account
An agent can read all of this before anyone signs in: this page, the REST documentation in Markdown, the OpenAPI document, the tools with their schemas and /llms.txt. Nothing of an account is readable without its key, and no tool runs there.