*MCP › Connect*

# Connect Gemini CLI

> Add Filmo to Gemini CLI with OAuth, or with a key kept in your user settings file.

## Before you start

| What | What the vendor documents |
| --- | --- |
| Plan | Plans: not documented by the vendor. |
| Who adds the connector | You, with `gemini mcp add` or `settings.json`. Admins can restrict servers with `mcp.allowed` in the system settings file. |
| Who connects | `/mcp auth filmo` for OAuth (it needs a browser: not on a headless machine). |
| Administration | `mcp.allowed` and `includeTools` in the system settings. |

verified on 2026-10-09: [MCP servers in Gemini CLI](https://github.com/google-gemini/gemini-cli/blob/main/docs/tools/mcp-server.md)

> **Use exactly this URL:** Type `https://app.filmo.io/api/v1/mcp` exactly. Do not use the Filmo domain of your company or any other host: the OAuth metadata names this origin, and a client that compares it with what you typed rejects a different one.

## Connect with OAuth

1. **Add the server** Run `gemini mcp add --transport http filmo https://app.filmo.io/api/v1/mcp`.
2. **Authenticate** Run `/mcp auth filmo` in a session. The 401 triggers discovery and dynamic registration; consent in Filmo.

- How Gemini CLI uses the `scope` of a 401 challenge: not documented by the vendor.

## The consent screen

- Only the `*:read` scopes the client asked for are checked (every read scope when it asks for none).
- Write scopes, `workflows:run` and `ai:ask` always start unchecked, even if the client asks for them; the ones it asked for carry the label “Requested by the integration”.
- Check by hand only what the assistant needs, and leave `ai:ask` unchecked unless you want it to spend AI credits.

To change the scopes later, remove the connector and add it again.

Before you approve, read [Authentication](https://docs.filmo.io/mcp/authentication#before-you-approve).

## Connect with an API key

1. **Use the user file** Edit `~/.gemini/settings.json`, never the project file `.gemini/settings.json`, which is the default scope of `gemini mcp add` and can go to git.
2. **Replace the placeholder** Gemini CLI's documentation expands `$VAR` only in the `env` block, not in `headers`, so the key lives in that user-level file only.

*~/.gemini/settings.json*

```json
{
  "mcpServers": {
    "filmo": {
      "httpUrl": "https://app.filmo.io/api/v1/mcp",
      "headers": {
        "Authorization": "Bearer <your-filmo-api-key>"
      }
    }
  }
}
```

> **Keep the key out of the repository:** Never paste an API key into a file that goes to version control. The examples read it from the environment or ask for it; if one leaks, revoke it and create another.

## Limits of this client

| What | What the vendor documents |
| --- | --- |
| Tools | A limit on the number of tools: not documented by the vendor. |
| Output | A tool output limit: not documented by the vendor. |
| Time | `timeout` per server, 600,000 ms by default. |

## Recommended preset

Rental operations (21): `orders:read`, `orders:write`, `availability:read`, `items:read`, `contacts:read`, `account:read`. It includes the order writes, cancelling included. Combine it with `includeTools` to list only what you need, or pick a preset marked (read).

Every preset and its size are in [Limits and context](https://docs.filmo.io/mcp/guides/limits-and-context).

## What to put on “ask before running”

Gemini CLI offers proceed once, always allow tool, always allow server, or cancel. `trust: true` skips confirmations for a server: do not set it for Filmo. `includeTools` and `excludeTools` limit the tools.

The tools that must ask for approval are in [Safe writes](https://docs.filmo.io/mcp/guides/safe-writes#requires-confirmation).

- Any use of tool annotations for approval: not documented by the vendor.

## Check the connection

Ask the assistant: “Which Filmo account am I connected to?” It should call `filmo_account_get`, a read tool that returns no personal data.

---

Canonical URL: https://docs.filmo.io/mcp/connect/gemini-cli  
Last updated: 2026-10-25