---
name: ensemble
description: Use Ensemble (אנסמבל), a Hebrew AI marketing department, through its MCP tools. Use it when the user wants marketing images or short videos, a full ad campaign from one brief ("the office"), content in many formats from one source ("the content cascade"), or facts about their own business ("the brain"). Covers Hebrew marketing copy, credit quotes before spending, and approvals that stay with the business owner.
---

# Ensemble: how to work with the marketing team

Ensemble is the marketing department of a small business, in Hebrew. Through MCP you reach
the same tools the owner uses in the app: the studio (images and video), the office (a team of
AI marketing agents), the brain (the business's approved facts) and the content cascade
(one source turned into many formats).

The MCP server is `https://<your Ensemble domain>/api/mcp` with the header
`Authorization: Bearer ens_live_…` (a key from Account → Developers).

## The tools

| Tool | What it does | Spends credits |
|---|---|---|
| `get_account` | Plan, credit balance, key scopes, models, links to the app | No |
| `get_brain` | The approved facts: offer, audience, tone, visual identity | No |
| `quote_generation` | The price of an image or video | No |
| `generate_image` | A marketing image (draft or final, 1:1 · 4:5 · 9:16 · 16:9) | Yes |
| `generate_video` | A 4–8 second clip, optionally from one of the owner's images | Yes |
| `get_generation` | Status and output URLs | No |
| `list_assets` | Finished images and videos, newest first | No |
| `start_office_brief` | A full campaign run: plan, angles, copy, images (and a clip) | Yes |
| `run_cascade` | One source → LinkedIn, Instagram, carousel, story, reel, Facebook, newsletter, WhatsApp, Google Ads, image ad, blog, X | Yes |
| `get_cascade` | The cascade's written units | No |

## Rules

1. **Start with the brain.** Call `get_brain` before you write a brief, a prompt or any copy.
   Use only facts it returns. If something is missing (price, address, offer), ask the owner.
   Never invent prices, discounts, claims or testimonials.
2. **Credits are the owner's money.** Every spending tool answers first with a quote
   (`status: "quote"`). Show the owner the number in plain words ("זה יעלה 12 קרדיטים, יש לך 340"),
   wait for a yes, then call again with `confirm: true`. Pass `max_credits` when the owner gave a budget.
   Use an `idempotency_key` per request, so a retry never charges twice.
3. **Approvals stay in the app.** Office deliverables (angles, images, clips, campaign
   structure) wait for the owner's approval in the office. Never say something was approved,
   published or sent to Meta. Give the office link from `get_account` instead.
4. **Draft first.** Use `quality: "draft"` to explore, and `final` only for the chosen idea.
5. **Background work.** Generations and cascades run in the background. Poll
   `get_generation` / `get_cascade` every few seconds (videos take minutes) and report the URLs.
6. **Errors are messages for people.** On `INSUFFICIENT_CREDITS` send the owner to the billing
   link; on `RATE_LIMITED` wait a minute; on `FORBIDDEN_SCOPE` the key lacks that permission.

## Hebrew marketing that works

- Write to the owner in Hebrew unless they write in another language. Copy is in Hebrew,
  spoken and warm ("אתם", short sentences), not translated English.
- One idea per piece. A hook in the first line that names the customer's problem or desire.
  A concrete offer and one call to action.
- Numbers and prices in digits with the shekel sign after the number: `49 ₪`, or `₪49` in ads.
  Keep Latin names, URLs and code left-to-right.
- Image prompts may be English or Hebrew. Describe the scene, the light and the product.
  Never ask the image model to render Hebrew text inside the image: put the text in the copy.
- Images: 4:5 for the feed, 9:16 for stories and reels, 1:1 for general use.

## Typical flows

**"תכין לי פוסט לאינסטגרם על המבצע"**
`get_brain` → write the copy → `generate_image` (quote) → owner agrees → `generate_image`
with `confirm: true` → poll `get_generation` → send the copy and the image URL together.

**"תריץ קמפיין לידים, 150 ₪ ליום"**
`get_brain` → `start_office_brief` with the goal and `budget_per_day: 150` (quote) → owner agrees
→ confirm → tell the owner the team started and every deliverable waits for them in the office.

**"תהפוך את המודעה הזו לתוכן לכל הרשתות"**
`run_cascade` with the text and the formats (quote) → confirm → poll `get_cascade` → present
each format's text.
