CapsAI

For AI agents and developers

CapsAI MCP Server and API for AI Agents

CapsAI’s Model Context Protocol server lets an AI agent caption a video, check the job, restyle the result, read the SRT transcript and see the account’s minute balance, all against the user’s own CapsAI account. It is the only public integration surface: there is no separate REST API or SDK.

https://mcp.capsai.co/mcp

Add this URL in any MCP client that supports remote servers with OAuth. The client registers itself, opens the CapsAI sign-in window and asks for the captions scope.

Server details

Everything a client needs to discover and authorise against the server.

Transport
Model Context Protocol over Streamable HTTP (JSON-RPC 2.0 on POST)
Authentication
OAuth 2.1 authorization code with PKCE (S256); bearer token in the Authorization header
Site summary for agents
https://capsai.co/llms.txt

Scopes and permissions

The server issues one scope. A token carries access only to the signed-in user’s own videos, transcripts and minute balance; it cannot read other accounts, change billing or sign in to the CapsAI website.

  • captions: Caption, restyle and read the signed-in user's own CapsAI videos, transcripts and minute balance.

The same scope is declared as scopes_supported in the RFC 9728 protected resource metadata and as the OAuth security scheme in the OpenAPI description. Revoke access any time at https://mcp.capsai.co/revoke or by removing the connector in your client.

Tools

Seven tools, listed by tools/list. Transcription and re-renders use the account’s minutes, one per minute of video.

  1. get_account

    The signed-in CapsAI account: minutes left for captioning, plan and limits.

    No parameters.

  2. list_caption_styles

    CapsAI's caption styles as previews. Each style's id is the value the style parameter takes; available is false for Pro styles on a free plan.

    No parameters.

  3. caption_video

    Starts a captioning job for a video file and returns an upload: a presigned HTTP PUT URL with the exact headers to send, an equivalent curl command, and a browser upload page. Transcription uses the account's minutes, one per minute of video. Uses minutes.

    • file_name (string): The video's file name, for example vlog.mp4 (mp4, mov, m4v or webm).
    • file_size_bytes (integer): Exact file size in bytes, if known. The upload must then match it exactly.
    • language (string): Spoken language as an ISO code (en, hi, ...) or "hinglish" for Hindi written in Latin script.
    • style (string): Caption style id from list_caption_styles. Defaults to the account's default style.
    • animated (boolean): true for animated word-by-word captions, false for plain static subtitles.
    • words_per_caption (integer): Words on screen at once, 1 to 4.
    • position ("top" | "middle" | "bottom"): Where captions sit on the frame.
  4. check_caption_job

    Status of a caption job, moving it to the next step when ready: the render starts once transcription is done. Returns a download link when the video is finished.

    • project_id (string, required): The projectId from caption_video.
  5. restyle_video

    Renders an already transcribed video again with a different caption look. Re-renders cost the video's length in minutes; the first render is free. Omitted settings keep their current value. Uses minutes.

    • project_id (string, required): The projectId from caption_video.
    • style (string): Caption style id from list_caption_styles.
    • animated (boolean): true for animated captions, false for plain static subtitles.
    • words_per_caption (integer): Words on screen at once, 1 to 4.
    • position ("top" | "middle" | "bottom"): Where captions sit on the frame.
  6. get_transcript

    The video's transcript as SRT subtitles, available once it is transcribed.

    • project_id (string, required): The projectId from caption_video.
  7. list_videos

    The user's most recent CapsAI projects, newest first.

    • limit (integer): How many to return, 1 to 50.

Connect a client

Three ways in; all use the same server URL and sign-in.

  1. Claude.ai and the Claude desktop app

    Add https://mcp.capsai.co/mcp as a custom connector under Customize, then Connectors. Set up CapsAI in Claude step by step. Every caption style with previews and ids.

  2. Claude Code

    Add the server once from the terminal, then run /mcp in Claude Code and pick CapsAI to sign in.

    claude mcp add --transport http capsai https://mcp.capsai.co/mcp

    Worked example: Caption a video from Claude Code.

  3. Any other MCP client

    Use the server URL with a client that supports remote MCP servers over Streamable HTTP with OAuth. The client registers at the registration endpoint, completes the PKCE flow in a browser window and then calls the tools with the bearer token. A call without a token gets a 401 whose WWW-Authenticate header points at the protected resource metadata.

Limits, minutes and pricing

  • Videos up to 10 minutes; MP4, MOV, M4V, WebM files; one file per job, uploaded to the presigned URL the server returns (or through the browser upload page it links).
  • Links to videos on YouTube, Instagram or other sites are not accepted; upload the file.
  • Output is an MP4 with the captions burned in, plus the transcript as SRT through get_transcript.
  • New accounts get 3 free minutes. Minute packs are paid once, with no subscription: 20 minutes: ₹49 in India, $4 elsewhere, €4 in the euro area; 60 minutes: ₹99 in India, $9 elsewhere, €9 in the euro area; 180 minutes: ₹299 in India, $19 elsewhere, €19 in the euro area. Minute packs and pricing.
  • The server sees only what a client sends to these tools and the projects in the user’s own CapsAI account. CapsAI does not receive the agent’s conversation. Privacy policy, terms.
  • Questions or a client that will not connect: [email protected].