# MCP tools (https://openclip.app/docs/developers/mcp-tools/)



The full OpenClip MCP server exposes 31 tools. This page is an overview so you know what is there. The canonical, always-current parameter reference is the skill bundle at [https://openclip.app/mcp/skill](https://openclip.app/mcp/skill) (its `SKILL.md` and `reference.md`) and the machine-readable page at [https://openclip.app/mcp.md](https://openclip.app/mcp.md). Those files are kept in lockstep with the server by CI; this page deliberately does not duplicate their parameter-level detail.

Not set up yet? Start at [Connect over MCP](https://openclip.app/docs/developers/mcp/).

## Endpoint scope [#endpoint-scope]

| Endpoint                       | Authentication | Tools                       |
| ------------------------------ | -------------- | --------------------------- |
| `https://openclip.app/mcp`     | OAuth          | Full 31-tool server         |
| `https://openclip.app/mcp/key` | Bearer token   | Full 31-tool server         |
| `https://openclip.app/mcp/app` | OAuth          | Curated 10-tool ChatGPT app |

The ChatGPT app exposes `get_account`, `submit_video`, `list_videos`, `get_video_status`, `get_render_status`, `list_clips`, `render_clip`, `list_caption_presets`, `list_supported_providers`, and `get_transcript`. The sections below describe the full 31-tool server.

## Clipping pipeline [#clipping-pipeline]

The paid core flow: submit a long video, poll until processed, read the ranked Viral Moments, render captioned clips.

| Tool                       | What it does                                                                                                  |
| -------------------------- | ------------------------------------------------------------------------------------------------------------- |
| `submit_video`             | Submit a source video URL (YouTube, Vimeo, Google Drive, Dropbox, OneDrive, and more) to start clip detection |
| `get_video_status`         | Poll one video's processing status until it completes or fails                                                |
| `list_clips`               | List a video's detected Viral Moments: hook, virality score, timestamps, clip URLs                            |
| `render_clip`              | Produce a final captioned render of one Viral Moment                                                          |
| `get_render_status`        | Check the render state of a video's Viral Moments                                                             |
| `list_caption_presets`     | List the caption style presets available for rendering                                                        |
| `get_transcript`           | Get a processed video's time-coded transcript, sliceable by millisecond window                                |
| `list_supported_providers` | List the video sources `submit_video` accepts                                                                 |
| `list_videos`              | List the team's videos, most recent first                                                                     |

## Uploads [#uploads]

| Tool              | What it does                                                                     |
| ----------------- | -------------------------------------------------------------------------------- |
| `create_upload`   | Start an upload of a local file; returns a presigned URL you PUT the bytes to    |
| `complete_upload` | Finish an upload and start the paid clipping pipeline (skip this for free tools) |

## Free media utilities [#free-media-utilities]

These need an account but no subscription. All are async: they return a `tool_job` id you poll.

| Tool                  | What it does                                                                        |
| --------------------- | ----------------------------------------------------------------------------------- |
| `transcribe`          | Transcribe an uploaded video into time-coded text with JSON, SRT, and VTT downloads |
| `edit_video`          | Crop, trim, rotate, resize, compress, or mute an uploaded video                     |
| `convert_media`       | Convert an uploaded file to another video container, a GIF, or an audio format      |
| `extract_thumbnails`  | Extract evenly spaced thumbnail frames from an uploaded video                       |
| `edit_image`          | Compress, resize, or crop an uploaded image                                         |
| `remove_background`   | Remove an image's background and return a transparent PNG                           |
| `get_tool_job_status` | Poll a free tool job until it completes or fails                                    |

## UGC generation [#ugc-generation]

| Tool                 | What it does                                                        |
| -------------------- | ------------------------------------------------------------------- |
| `generate_ugc`       | Generate a short vertical UGC-style video from a creative brief     |
| `get_ugc_job_status` | Poll a UGC generation job for its status and final clip URL         |
| `list_ugc_creators`  | List the UGC spokespersons available to your team, grouped by niche |
| `list_ugc_jobs`      | List the team's UGC generation jobs, most recent first              |

## Account and presets [#account-and-presets]

| Tool                       | What it does                                                        |
| -------------------------- | ------------------------------------------------------------------- |
| `get_account`              | Return the connected account: identity, team, and remaining credits |
| `get_usage`                | Return the team's credit balance and recent usage history           |
| `list_agents`              | List the team's saved processing agents and caption presets         |
| `create_agent`             | Create a processing agent for the team                              |
| `update_agent`             | Update one of the team's agents                                     |
| `describe_agent_settings`  | Describe every nested agent setting, its type, and allowed values   |
| `create_agent_logo_upload` | Start uploading a logo image for an agent's watermark               |
| `set_agent_logo`           | Finish setting an agent's logo after the upload                     |

## Documentation [#documentation]

| Tool          | What it does                                                               |
| ------------- | -------------------------------------------------------------------------- |
| `search_docs` | Search this documentation and return the most relevant pages with excerpts |

## How the tools behave [#how-the-tools-behave]

Three patterns show up everywhere:

* **Poll, don't wait.** Long jobs (`submit_video`, `render_clip`, free tools, UGC) return an id immediately; poll the matching status tool until the state is terminal.
* **Ids are opaque hashids.** Pass them back exactly as returned.
* **Times are milliseconds** across clips and transcripts, so a clip's window slots straight into `get_transcript`.
