> For the complete documentation index, see [llms.txt](https://docs.flora.ai/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.flora.ai/mcp/install/claude-code.md).

# Install FLORA MCP in Claude Code

Add FLORA MCP to Claude Code with the FLORA plugin (server plus skills) or one claude mcp add command, then sign in and check the connection.

Claude Code connects to [FLORA MCP](https://flora.ai/mcp) as a remote HTTP server. Install the FLORA plugin to get the server and FLORA's tested skills in one step, or add just the server with one command.

|             |                                                                                                                                                                                                                       |
| ----------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| **Fastest** | The FLORA plugin: `/plugin marketplace add florafauna-ai/flora-mcp-skills`, then `/plugin install flora-mcp-skills@flora`                                                                                             |
| **Or**      | `claude mcp add --transport http flora https://agents.flora.ai/mcp`                                                                                                                                                   |
| **Needs**   | Claude Code, and a FLORA plan: Starter or above for ongoing use, or Free on the $2.50 of usage every new workspace gets ([pricing](/plans-and-billing/pricing.md), [details](/mcp/authentication.md#who-can-connect)) |
| **Sign in** | `/mcp`, select the FLORA server (`plugin:flora-mcp-skills:flora` for the plugin, `flora` for `claude mcp add`), then authenticate in the browser                                                                      |
| **Verify**  | "List my FLORA workspaces. Don't generate anything."                                                                                                                                                                  |
| **Remove**  | Uninstall the plugin, or `claude mcp remove flora`                                                                                                                                                                    |

## Option 1: the FLORA plugin (server and skills)

The [flora-mcp-skills](https://github.com/florafauna-ai/flora-mcp-skills) repo is a Claude Code plugin marketplace. Its plugin, `flora-mcp-skills`, adds the FLORA server and every FLORA skill, such as batch generation and refine loops. The repo registers its marketplace under the name `flora`, which is why the install command ends in `@flora`. Claude Code names a plugin's server `plugin:<plugin>:<server>`, so FLORA shows up as `plugin:flora-mcp-skills:flora` in `/mcp` and `claude mcp list`.

In a Claude Code session:

```
/plugin marketplace add florafauna-ai/flora-mcp-skills
/plugin install flora-mcp-skills@flora
```

Choose a scope when asked (**Install for you** puts it in every project). From your shell, the same two steps are:

```bash
claude plugin marketplace add florafauna-ai/flora-mcp-skills
claude plugin install flora-mcp-skills@flora
```

Plugins installed from the shell load the next time you start Claude Code, or right away if you run `/reload-plugins` in an open session.

In the Claude desktop app's **Code** tab, click **+** next to the prompt box, then **Plugins → Add plugin**. In the VS Code extension, type `/plugins`.

The plugin doesn't update itself. To pull new skills:

```bash
claude plugin marketplace update flora
claude plugin update flora-mcp-skills@flora
```

See [Skills and plugins](/mcp/skills.md) for what each skill does.

## Option 2: the server only

```bash
claude mcp add --transport http flora https://agents.flora.ai/mcp
```

This adds FLORA to the current project only. Add `--scope` to change that:

| Scope             | Command                                                                             | Stored in                           | Use when                            |
| ----------------- | ----------------------------------------------------------------------------------- | ----------------------------------- | ----------------------------------- |
| `local` (default) | `claude mcp add --transport http flora https://agents.flora.ai/mcp`                 | `~/.claude.json`, this project only | Just you, just this project         |
| `user`            | `claude mcp add --transport http flora --scope user https://agents.flora.ai/mcp`    | `~/.claude.json`, all projects      | You want FLORA everywhere           |
| `project`         | `claude mcp add --transport http flora --scope project https://agents.flora.ai/mcp` | `.mcp.json` in the repo             | Your team shares FLORA in this repo |

A project-scoped install writes this `.mcp.json`, which you can commit. Teammates approve the server the first time they open the repo, then sign in with their own FLORA account:

```json
{
  "mcpServers": {
    "flora": {
      "type": "http",
      "url": "https://agents.flora.ai/mcp"
    }
  }
}
```

## Use one FLORA connection

Claude Code can pick up FLORA from three places. Keep one, or your agent sees every FLORA tool twice or three times. Run `claude mcp list` to see which you have:

| Name in `claude mcp list`       | Where it comes from                                                                                                                            | Turn it off                                                                                     |
| ------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------- |
| `plugin:flora-mcp-skills:flora` | The FLORA plugin                                                                                                                               | `claude plugin uninstall flora-mcp-skills@flora`, or toggle it off in `/mcp` to keep the skills |
| `flora`                         | `claude mcp add` or a project `.mcp.json`                                                                                                      | `claude mcp remove flora`                                                                       |
| `claude.ai FLORA`               | A FLORA connector on your claude.ai account. Claude Code loads claude.ai connectors automatically when you sign in with a Claude subscription. | Toggle it off in `/mcp` (per project), or add `"claude.ai FLORA"` to `deniedMcpServers`         |

If you use FLORA in claude.ai too, the simplest setup is to keep `claude.ai FLORA` for the server and install the plugin only for its skills, with its server toggled off in `/mcp`. The name after `claude.ai` is whatever you called the connector on claude.ai.

## Sign in

1. In a Claude Code session, run `/mcp`.
2. Select the FLORA server: `plugin:flora-mcp-skills:flora` if you installed the plugin, `flora` if you used `claude mcp add`. Before you sign in it shows that it needs authentication.
3. Choose to authenticate. Your browser opens FLORA's sign-in page.
4. Sign in with the account you use at [app.flora.ai](https://app.flora.ai), then return to Claude Code.

From your shell, `claude mcp login` does the same with the server's name: `claude mcp login "plugin:flora-mcp-skills:flora"` for the plugin, `claude mcp login flora` for `claude mcp add`. On a machine without a browser (SSH), add `--no-browser`.

A `claude.ai FLORA` connector is already signed in through your claude.ai account.

Claude Code stores and refreshes the token. You won't sign in again unless it expires or you sign out. See [Authentication](/mcp/authentication.md).

## Check it works

Ask Claude Code:

> List my FLORA workspaces. Don't generate anything.

It calls `flora_list_workspaces` and lists your workspaces. `/mcp` also shows your FLORA server as connected.

## Use an API key instead (headless)

For CI or a machine where no one can sign in through a browser, send a FLORA API key as a header. Create one in FLORA first; see [API keys](/mcp/authentication.md#api-keys-for-headless-setups).

```bash
claude mcp add --transport http flora https://agents.flora.ai/mcp \
  --header "Authorization: Bearer $FLORA_API_KEY"
```

Your shell expands `$FLORA_API_KEY` when you run the command, so the key is saved in `~/.claude.json`. To keep it out of a committed `.mcp.json`, reference the environment variable there instead:

```json
{
  "mcpServers": {
    "flora": {
      "type": "http",
      "url": "https://agents.flora.ai/mcp",
      "headers": {
        "Authorization": "Bearer ${FLORA_API_KEY}"
      }
    }
  }
}
```

## Gotchas

| Symptom                                              | Cause                                                                                                                                        | Fix                                                                                                            |
| ---------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------- |
| `/mcp` shows `flora` as failed                       | Typo in the URL, often a trailing slash (`/mcp/` returns 404). The plugin's URL is fixed, so this only affects `claude mcp add`.             | `claude mcp remove flora`, then add it again with exactly `https://agents.flora.ai/mcp`.                       |
| Tools fail with `401` after working before           | The stored sign-in expired or was cleared                                                                                                    | Run `/mcp`, select your FLORA server (`plugin:flora-mcp-skills:flora` or `flora`), and authenticate again.     |
| The browser doesn't open                             | Sandboxed shell or remote machine                                                                                                            | Run `claude mcp login` with your server's name and `--no-browser`, then open the printed link yourself.        |
| Every FLORA tool appears two or three times          | FLORA is connected from more than one place                                                                                                  | Keep one connection. See [Use one FLORA connection](#use-one-flora-connection).                                |
| Claude misses details in a FLORA tool's instructions | Claude Code cuts each tool description and server's instructions at 2,048 characters by default, and some FLORA tool descriptions are longer | Set `CLAUDE_CODE_MAX_MCP_DESCRIPTION_LENGTH` to a higher number (Claude Code v2.1.280 or later), then restart. |
| A skill you expect is missing                        | The plugin is an older version                                                                                                               | Run the two update commands above, then start a new session.                                                   |
| Claude calls a retired tool such as `flora_generate` | Old instructions or a cached tool list                                                                                                       | Those tools are retired. Start a new session. See [Retired tools](/mcp/retired-tools.md).                      |

## Remove

* Server added with `claude mcp add`: `claude mcp remove flora` (add `--scope user` or `--scope project` if you used one). This also deletes the stored FLORA tokens.
* Plugin: `claude plugin uninstall flora-mcp-skills@flora`.
* Sign out but keep the server: in `/mcp`, select your FLORA server, then **Clear authentication**. From the shell: `claude mcp logout "plugin:flora-mcp-skills:flora"` or `claude mcp logout flora`.
* claude.ai connector: toggle `claude.ai FLORA` off in `/mcp`, or remove the connector on claude.ai (see [Install in Claude](/mcp/install/claude.md#remove)).

If you used an API key, also revoke it in FLORA. See [Disconnect and revoke](/mcp/authentication.md#disconnect-and-revoke).

## Next

* [Quickstart](/mcp/quickstart.md): your first image, with a cost quote first.
* [Batch-generate 20 to 500 assets](/mcp/recipes/batch.md): a good fit for Claude Code.
* [Tools reference](/mcp/tools.md).


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation by asking a question.

Perform an HTTP GET request on the following URL with the `ask` and `goal` query parameters:

```
GET https://docs.flora.ai/mcp/install/claude-code.md?ask=<question>&goal=<user_goal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is what the user is ultimately trying to achieve, the reason they need the answer. Sharing it helps GitBook give you a better, more relevant answer. A goal is most helpful when it describes the outcome the user wants rather than restating the question. For example, with `ask=how do I create an API token`, a goal like `automate deployments from our CI pipeline` lets GitBook tailor the answer to that use case.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
