Discover and run
Paste a brief, find the right Technique, generate a grid of options.
The most common FLORA MCP workflow: paste a brief into your agent, it finds the right Technique from your team’s library, runs it, and shows the results inline.
Surface: Any MCP-compatible chat client (Claude, Cursor, VS Code, Hermes Agent, OpenClaw, …)
Time: Under a minute
Charges: One run’s run_cost (USD)
What you type
Section titled “What you type”I have the Q3 campaign brief below. Find the right FLORA Technique for thumbnail generation and run it with the brief’s key directives.
Brief:
- Audience: 25-40, design-conscious
- Hook: “Smart living, simple”
- Brand do: warm minimalism, soft shadows
- Brand don’t: clip-art, gradients
Give me a 3×3 grid.
What the agent does
Section titled “What the agent does”- Find the right Technique
The agent calls
client.techniques.list({ query: "thumbnail" })to filter your Technique library. It surfaces three Technique cards inline — name, thumbnail, creator, description. - Read its input schema
Once you pick one (or the agent auto-picks the best match), it calls
client.techniques.retrieve(techniqueId)to read the input schema: theme, audience, hook copy, brand do’s and don’ts. - Submit the run
The agent maps your brief onto the Technique’s inputs and calls
client.techniques.runs.create(techniqueId, { inputs: [...] })requesting a 3×3 grid. - Poll until complete
The agent calls
client.techniques.runs.retrieve(runId, { techniqueId })repeatedly until the run completes. The 3×3 grid renders progressively in the chat — each tile labeled with the brief line that drove it.
What you see
Section titled “What you see”A 3×3 grid of thumbnails appears inline in the chat. No tab switching. The original brief stays in scroll, so the next message you type can reference specific outputs.
Where it goes next
Section titled “Where it goes next”This is the start of the loop. Common follow-ups:
- Iterate: “Love #4 and #7. Make 5 more variations of those.” → see Iterate on favorites.
- Branch: “Now take the winners and run them through the Social Motion Technique.” → see Stills to motion.
- Batch: “I need this for 12 markets — pull the localization sheet from Drive.” → see Batch with a coding agent.
- The clearer your brief, the better the Technique match. Including audience and brand do’s/don’ts in plain English gives the agent enough signal to map onto Technique inputs correctly.
- If the agent picks the wrong Technique, say: “Show me the alternatives.” It will call
client.techniques.listagain with a broader filter. - You can name a Technique explicitly: “Use the Thumbnail v3 Technique.” This skips the discovery step.
Under the hood
Section titled “Under the hood”The agent may first call search_docs to confirm method signatures, then runs everything in a single execute call:
async function run(client) { // 1. Find thumbnail techniques const techniques = []; for await (const t of client.techniques.list({ query: "thumbnail" })) techniques.push(t); // → surfaces 3 candidates; agent picks best match
// 2. Read the input schema const technique = await client.techniques.retrieve("tech_thumbnail_v3"); // → inputs: theme, audience, hook, brand_directives
// 3. Submit a run (3×3 = 9 outputs) const run = await client.techniques.runs.create("tech_thumbnail_v3", { inputs: [ { id: "theme", type: "text", value: "warm minimalism, soft shadows" }, { id: "audience", type: "text", value: "25-40, design-conscious" }, { id: "hook", type: "text", value: "Smart living, simple" }, { id: "brand_directives", type: "text", value: "no clip-art, no gradients" }, { id: "count", type: "text", value: "9" }, ], }); // → { run_id, status }
// 4. Poll until complete let result; do { result = await client.techniques.runs.retrieve(run.run_id, { techniqueId: "tech_thumbnail_v3" }); } while (result.status === "pending" || result.status === "running"); // → status: "completed", outputs: [{ output_id, type: "imageUrl", url }] × 9
return result.outputs;}See the tools reference for available execute and search_docs parameters.