# Install FluidCut

You are an AI agent. The user pasted a prompt like "Install fluidcut https://fluidcut.app/install.md, then ...". Install FluidCut with the steps below, then do whatever the user asked after "then", in the same session.

FluidCut clips long videos into captioned shorts and edits videos into finished posts. You plan; FluidCut downloads, transcribes and renders on the user's FluidCut credits. Installing is free. Tools that spend credits say so.

## Ground rules

- The API key is a secret. Never ask the user to paste it into the chat, never print it, never write it into a git repository. Read it only from the `FLUIDCUT_API_KEY` environment variable.
- Change only what this page lists: one MCP server named `fluidcut` and one skill file.
- If you have no terminal (claude.ai, Claude Desktop, ChatGPT), skip the steps below and tell the user how to add FluidCut as a connector, from **Chat apps** right below.

## Chat apps: claude.ai, Claude Desktop, ChatGPT

No key and no install. The user adds FluidCut as a connector once and signs in with their FluidCut account:

- **Claude** (claude.ai, Desktop, mobile): Customize > Connectors > Add custom connector. Name `FluidCut`, URL `https://fluidcut.app/mcp`, then Connect. On Team and Enterprise plans an Owner adds it first under Organization settings > Connectors.
- **ChatGPT**: Plugins > the plus button > Add custom MCP server. URL `https://fluidcut.app/mcp`, authentication OAuth, then Create. Whether custom MCP servers are available depends on the ChatGPT plan and workspace settings.

FluidCut shows its sign-in page, then asks the user to allow the app. Connected apps are listed at https://fluidcut.app/#credits, each with a Revoke button. The full guide to the tools is https://fluidcut.app/skill.md.

## Step 1: say what you will do

Tell the user in one short message: you will register the FluidCut MCP server for this agent, add the FluidCut skill, and check the connection. Ask them to confirm, and wait for a yes.

## Step 2: the API key

Check for the key without printing it:

```sh
[ -n "$FLUIDCUT_API_KEY" ] && echo "key found" || echo "key missing"
```

If it is missing, ask the user to:

1. Open https://fluidcut.app/#credits, sign in (new accounts get free credits every month), scroll to **Use FluidCut from your own Claude** and press **Create key**. The key starts with `fc_` and is shown once.
2. Add it to their shell profile from their own terminal, not this chat:
   `echo 'export FLUIDCUT_API_KEY="fc_paste_here"' >> ~/.zshrc` (use `~/.bashrc` on bash).
3. Tell you when it is done.

Then check again. If your shell does not reload the profile, prefix each command with `source ~/.zshrc 2>/dev/null;` (or `~/.bashrc`).

## Step 3: register the MCP server for the agent you are

The server is `https://fluidcut.app/mcp`, streamable HTTP, with the header `Authorization: Bearer <key>`.

**Claude Code**

```sh
claude mcp add --transport http fluidcut https://fluidcut.app/mcp --header "Authorization: Bearer $FLUIDCUT_API_KEY" --scope user
```

**Codex CLI**: add this to `~/.codex/config.toml` (Codex reads the key from the environment, so the file holds no secret):

```toml
[mcp_servers.fluidcut]
url = "https://fluidcut.app/mcp"
bearer_token_env_var = "FLUIDCUT_API_KEY"
```

**Cursor**: merge this into `~/.cursor/mcp.json`. Cursor must be restarted from an environment where `FLUIDCUT_API_KEY` is set; if it sends the variable name instead of the key, put the key in place of `${env:FLUIDCUT_API_KEY}` there.

```json
{ "mcpServers": { "fluidcut": { "url": "https://fluidcut.app/mcp", "headers": { "Authorization": "Bearer ${env:FLUIDCUT_API_KEY}" } } } }
```

## Step 4: the skill

Claude Code:

```sh
mkdir -p ~/.claude/skills/fluidcut && curl -fsSL https://fluidcut.app/skill.md -o ~/.claude/skills/fluidcut/SKILL.md
```

Other agents: read https://fluidcut.app/skill.md now. It explains the tools, prices and how to write an edit plan.

## Step 5: check the connection

```sh
curl -sS https://fluidcut.app/mcp -H "Authorization: Bearer $FLUIDCUT_API_KEY" -H "Content-Type: application/json" -H "Accept: application/json, text/event-stream" \
  -d '{"jsonrpc":"2.0","id":1,"method":"tools/call","params":{"name":"credit_balance","arguments":{}}}'
```

A balance in the answer means it works; tell the user their credit balance. A 401 means the key is wrong or revoked: ask for a new one in Step 2.

## Step 6: do what the user asked after "then"

New MCP servers load when the agent restarts. Do not make the user restart now: call the same tools over HTTP with the request from Step 5, changing `name` and `arguments`. The tool's answer is JSON inside `result.content[0].text`. For example, to clip a video:

```sh
curl -sS https://fluidcut.app/mcp -H "Authorization: Bearer $FLUIDCUT_API_KEY" -H "Content-Type: application/json" -H "Accept: application/json, text/event-stream" \
  -d '{"jsonrpc":"2.0","id":1,"method":"tools/call","params":{"name":"create_clips","arguments":{"url":"https://www.youtube.com/watch?v=VIDEO_ID"}}}'
```

Follow the skill for the rest: tell the user what a job costs before you start it, poll `job_status` about once a minute and tell them the progress, and finish with the links from `get_results`. If nothing followed "then", tell the user what they can ask for, in two lines, and mention that the tools appear natively after their next restart.

## Tools

| Tool | What it does | Credits |
| - | - | - |
| `create_clips` | The best moments of a YouTube video as captioned short clips | per minute of video |
| `upload_video` | A command, or a one-time browser link, to send the user's own video file | free |
| `edit_video` | Downloads (or takes an upload) and transcribes one video for an edit; `directed=true` if you will write the plan | free |
| `start_edit` | Renders the edit with FluidCut's editor | per source minute per format |
| `get_source` | Words with timestamps, sentences and camera shots, for writing your own plan | free |
| `render_plan` | Renders your edit plan, skipping FluidCut's director | same as start_edit |
| `request_change` | A new version of a finished edit from a change in plain words | per source minute per format |
| `job_status`, `get_results` | Progress, then download links that work for 6 hours | free |
| `list_looks`, `credit_balance` | Looks, formats, prices and the balance | free |
