---
title: FLORA MCP | FLORA API
description: Run FLORA Techniques from any MCP-compatible agent — Claude, Cursor, VS Code, and more.
---

The FLORA MCP server lets any [Model Context Protocol](https://modelcontextprotocol.io) client — Claude, Cursor, VS Code, Hermes Agent, OpenClaw, and others — discover and run your Techniques in plain English. No code, no API wiring. Connect once, then ask the agent to generate, iterate, branch, and batch using the same Techniques your team builds in [FLORA](https://flora.ai).

## Install

[![](/install-logos/claude.svg)Claude Code](/mcp/install/claude-code/index.md)[![](/install-logos/cursor.svg)Cursor](/mcp/install/cursor/index.md)[![](/install-logos/vscode.svg)VS Code](/mcp/install/vscode/index.md)[![](/install-logos/hermes.png)Hermes Agent](/mcp/install/hermes/index.md)[![](/install-logos/openclaw.png)OpenClaw](/mcp/install/openclaw/index.md)[![](/install-logos/generic.svg)Other clients](/mcp/install/other-clients/index.md)

## What you can ask

Once FLORA MCP is connected, these prompts work in any MCP-compatible agent:

- *“What FLORA Techniques would work for this campaign brief?”* — the agent writes a quick `client.techniques.list(...)` call inside `execute` and returns Technique cards inline.
- *“Run the Thumbnail v3 Technique with this brief and give me a 3×3 grid.”* — the agent calls `client.techniques.runs.create(...)` via `execute` and renders results inline as they finish.
- *“Take #4 and #7 and make 10 more variations in the same direction.”* — the agent re-runs the Technique with prior outputs as image references.
- *“Now run those through the Social Motion Technique. I need 3-second loops for IG.”* — the agent branches into another Technique, carrying the context forward.
- *“Pull the localization sheet from Drive and run the Technique for all 12 markets.”* — a coding agent loops over a spreadsheet and batches the calls inside a single `execute` snippet.

## 60-second quickstart

1. Install in your client

   Pick your client from the [Install](#install) section above and follow the one-line setup.

2. Sign in with FLORA

   The first tool call triggers an OAuth flow. Sign in with the same account you use at [app.flora.ai](https://app.flora.ai). Your client stores the token; you won’t be asked again until it expires.

3. Ask the agent to run something

   Try: *“List my FLORA Techniques and pick one that generates product thumbnails.”*

   The agent runs a short `client.techniques.list(...)` snippet via `execute`, shows the results, and asks which one to run.

## How it works

FLORA MCP exposes exactly two tools to the agent:

- **`search_docs`** — searches the `@flora-ai/flora` SDK documentation to find the right method and parameters before writing code. Args: `query`, `language` (e.g. `"typescript"`).
- **`execute`** — runs a TypeScript snippet against a pre-authenticated `@flora-ai/flora` SDK client. The agent defines `async function run(client) { ... }` and calls any SDK method it needs. Variables don’t persist between calls; each HTTP request has a 30 s timeout; total execution is \~5 min.

The typical workflow is: the agent optionally calls `search_docs` to look up the right method, then writes a single `execute` snippet that does the work.

Inside `execute`, the agent has access to the full SDK surface via `client`:

\| Resource | `client.*` methods | | --- | --- | | Workspaces | `client.workspaces.list()` | | Models | `client.models.list({ type? })` | | Techniques | `client.techniques.list({ query?, workspace_id?, cursor?, limit? })`, `client.techniques.retrieve(techniqueId)` | | Technique Runs | `client.techniques.runs.create(techniqueId, { mode?, inputs, callback_url? })`, `client.techniques.runs.list({...})`, `client.techniques.runs.retrieve(runId, { techniqueId })` | | Generations | `client.generations.create({ type, prompt, workspace_id, project_id, model?, params? })`, `client.generations.list({...})` | | Assets | `client.assets.create(...)`, `client.assets.complete(...)`, `client.assets.retry(...)`, `client.assets.list({...})`, `client.assets.retrieve(assetId)` | | Projects | `client.projects.list({...})`, `client.projects.create({...})`, `client.projects.retrieve(projectId)`, `client.projects.listNodes(projectId)`, `client.projects.assets.attachAsset(...)` | | Canvas | `client.projects.canvas.retrieve(projectId)`, `client.projects.canvas.update(projectId, {...})` | | Actions | `client.projects.actions.create(projectId, {...})`, `client.projects.actions.run(projectId, nodeId)` | | Feedback | `client.feedback.record({...})` |

See the [full tools reference](/mcp/tools/index.md) for parameters and return shapes.

## Why MCP, not just the API

The API is for engineers who want to ship integrations. MCP is for everyone else — designers, marketers, PMs, ops — who already work in an AI agent and want FLORA there too. Both surfaces hit the same Techniques and the same workspace billing.

\| | API | MCP | | --- | --- | --- | | Audience | Engineers | Anyone using an AI agent | | Setup | API key + code | Connect once via OAuth | | Iteration | Programmatic | Conversational | | Best for | Pipelines, batches, automation | Discovery, ideation, ad-hoc batches | | Combine with | Webhooks, queues, your stack | Other MCP servers in the same chat (Drive, Slack, GitHub, …) |

## Next steps

- **[Install for your client](/mcp/install/claude-code/index.md)** — one page per supported tool.
- **[Recipes](/mcp/recipes/discover-and-run/index.md)** — concrete end-to-end scenarios.
- **[Tools reference](/mcp/tools/index.md)** — every tool, every parameter.
- **[Troubleshooting](/mcp/troubleshooting/index.md)** — OAuth, tool visibility, rate limits.
