Connect
The server lives at:1
Add the connector
- claude.ai: Settings → Connectors → Add custom connector → paste the URL above.
- Claude Code:
claude mcp add --transport http memo https://app.memo.solutions/api/mcp/mcp - Cursor / other MCP clients: add a remote MCP server with the same URL.
2
Sign in
The connector uses OAuth — a browser window opens on app.memo.solutions, you approve the connection, and the agent gets scoped access to your workspace. No API keys to copy.
3
Try it
Ask your agent “What’s in my brand kit?” or “What’s my Memo credit balance?” — if it answers, you’re connected.
What your agent can do
Tools are grouped by job:- Find anything — one search across your whole workspace by meaning, not keywords: saved inspirations, past generations, and brand assets in a single sweep (“that moody rooftop clip from the summer campaign”).
- Your library — list your Collections, open one as a visual thumbnail grid right in the chat, read its taste profile and keywords, search every saved image (semantically, once your library is indexed), and read any image’s AI analysis and tags.
- Organize the library — create, rename, and delete Collections; write or refresh a collection’s taste profile after reading it; file images into them one by one or in bulk by tag; save new images from URLs, chat uploads, or finished generations — every save is auto-titled and described by AI so it lands searchable.
- Read the brand — list and read Brand Kits (voice, rules, colors, fonts), semantic search over kit photography and assets.
- Generate — browse the model catalog with live credit prices, prepare image or video generations, run saved Workflows. Every generation is estimate-first.
- Name and re-find — generations can carry an agent-chosen name (
label), andsearch_generationsfinds past outputs by name or prompt in any later session, ready to reuse as references. - Skills — read, create, and update reusable playbooks your team has saved — plus Memo’s official starter pack (including the cinema production playbooks: scene testing, acting direction, staging maps, cinematic prompting, and the naming discipline), available read-only in every workspace.
- Build the brand — create kits, add colors/fonts/rules, import logos, photography, and characters (including drag-and-drop upload straight from the chat), and promote a finished generation into a named brand asset in one call.
- Read the brand book — attach a brand guidelines PDF to a kit, read its pages and text layer with the agent’s own eyes (printed hex codes and typeface names arrive as ground-truth text), and cut logos and photos straight out of the book into named kit collections. The
brand-book-intakeskill is the full playbook — “set up this brand from the attached guidelines” is a one-ask job. - Workspace — check who’s signed in, list and create Studio boards, file generations into the right board, see plans and credits.
- Work on the open project —
get_studio_contexttells the agent which project, brief and scene you have open in Studio and what is selected on the canvas.create_briefplans a brief from scratch,get_briefreads the whole brief.update_brief_scene,add_brief_scene,remove_brief_scene,reorder_brief_scenesandset_scene_referenceschange it;open_briefandfocus_canvasmove your view;run_briefpresses Generate on the connected generators after you approve the estimate.
Work on what you have open
When a Studio project is open, the agent knows where you are: the project, the brief and scene in the editor, and the nodes you selected. Say “rewrite this scene” or “make the logo the end frame of scene 3” and the change appears in your open tab within a few seconds, as an undoable edit that autosaves like your own typing. Ask for a whole set, such as two character sheets, a location and a creature, and the agent creates the brief itself, opens it for you and generates only after you approve the estimate. For a one-off image or clip it generates directly, with no brief. If no tab is open, the same edits are applied to the saved project and appear the next time you open it. Opening the editor, focusing nodes and generating need the project open in Memo Studio. If you and the agent change the same scene in the same instant, your tab’s version wins and the agent is told. Generation throughrun_brief is estimate-first: the agent shows the scenes and credits, and only starts them after you confirm. The run happens in your open tab from the connected generators, so credit limits and errors show on the canvas exactly as they would if you pressed Generate yourself.
Manage your Collections from any chat
Your inspiration library is fully agent-operable. A few things that work today:- “What’s in our Summer campaign collection?” — the agent opens it and, in Claude, shows the actual thumbnails inline.
- “Save these 10 URLs into a new Moodboard collection” — one call ingests, AI-titles, tags, and files them.
- “What’s the vibe of the Futurist Glam collection?” — the agent answers from the collection’s taste profile, and writes one if it is missing or stale.
- “Generate three posters from the Futurist Glam collection” — the taste profile and keywords become the brief for every prompt the agent builds from it.
- “File everything tagged ‘outdoor’ into Lifestyle” — bulk filing by tag is a single operation.
- “Which images are still untagged? Clean them up.” — the agent looks at each image itself and writes better titles, descriptions, and tags.
Name what you make
Long-running projects live or die on naming. Two habits keep an agent-driven library organized:- Label keepers at generation time. Pass
label(e.g.product-fw25-sneaker-red-v2) so the output’s title is yours, not an automatic one — labeled outputs are findable by name withsearch_generationsnext week or next month. - Promote finals into the Brand Kit. When an output is approved, the agent can save it as a named brand asset (
add_brand_assetswith ageneration_id) — including as a character — so it becomes a permanent, searchable reference the whole team can generate with.
Credits and safety
Generating from an agent costs the same credits as in the app — and spending is deliberately two-step:- The agent calls
generate_image/generate_video/run_workflowand gets back a priced estimate naming the destination board. - Nothing is spent until
confirm_generation— the only tool that can spend credits.
Brand rules apply automatically
Your kit’s do/don’t rules ride every agent generation without the agent having to remember them. When the references attached togenerate_image, generate_video or run_workflow all belong to one Brand Kit, Memo prepends that kit’s rules to the prompt on the server, together with any workspace-wide rules. Workspace-wide rules apply to every generation, references or not. If the references span several kits, only the workspace-wide rules apply and the estimate says so.
Rules scale by subject. A rule without subjects is kit-wide. A rule with subjects (for example ["Nano Gen 5"]) rides only when one of the attached reference assets carries that name or subject tag, so product-specific rules never dilute an unrelated render, however many products a kit holds. Set subjects when adding a rule, or later with update_brand_rules, which also edits and deletes rules so a kit’s list stays short.
The estimate and the confirmation both carry a brandRules field (kit, applied, scoped for the subject-matched ones, and omitted when a very long rule list was trimmed to fit the model’s prompt limit), so you can see before spending which rules the model will follow. Rules are prompt guidance: they steer colours, copy, casing and composition well, but they cannot force pixel-exact geometry. For that, keep the truth as a kit asset and a kit skill, and attach the asset as a reference.
The right skill at the right time
Skills can carry subjects too. A skill scoped to["Nano Gen 5"] is returned as suggestedSkills on the estimate, the confirmation and the completed result whenever the references, or the finished image’s own enrichment tags, match, with its trigger hint saying when to run it. The agent no longer has to read every skill summary to find the one that applies. Skills without subjects stay invoke-by-name.
Where generations land
Agent generations file themselves into Studio boards. Estimates name the destination; agents can create a campaign board (create_project) or re-file strays (move_generations) instead of piling into a shared inbox. Inside a board, get_project returns folder counts and descriptions, with one size-limited page of files, and move_generations with a folder_id files outputs into them — the same folders you see on the project’s assets page. create_project_folder adds a folder by name (or returns the existing one) and can file generations in the same call.
When move_generations changes the project, an omitted folder_id puts the file in Unfiled. Within the same project it keeps the folder. Pass a destination folder explicitly to file it there, or folder_id: "none" to unfile it. The response lists the files actually moved and any IDs that were not found in your workspace.
search_generations can combine a project, media type and review_status. Asking for approved files filters the eligible files before selecting the results, so unapproved matches cannot use up the result limit. Name and description matches come first, followed by matches ranked by meaning. A newly named file can be found before its search index catches up.
Every generation the agent reads back carries its context: a description and subjects written from the finished image rather than the prompt, the user’s reviewStatus when one was set on the canvas (prefer approved when several files fit; a missing status is not a rejection — search_generations accepts review_status to filter), the Character it depicts (characterAssetId), and what it was made from (madeFromGenerationIds, madeFromAssetIds).
Character reference views
When a character has a portrait and additional reference sheets, Memo labels the sent images individually. A portrait, expression sheet and pose sheet keep their own descriptions even when they belong to the same character. This helps the generation model distinguish the purpose of each picture. Choose clear descriptions when saving reference sheets.Edit project files safely
Ask your connected agent to rename a file, record your review verdict, correct what an image shows, or link it to a Character. For example: “Rename this to Mira — final turnaround, and mark it approved.” A description is reference material; it never grants permission to perform an action. The agent readsget_generation, then sends update_generation with the revision of each field it changes and a stable operation_id. It can change a name while someone else changes a review status. If both change the same field, Memo reports a conflict and saves none of that file’s proposed changes. The agent must show the conflict and follow your intended choice. Retrying the same operation ID with the same request returns the original result.
Descriptions you or your agent author carry attribution and stay protected from later automatic descriptions. Review attribution records the authenticated user and connected client. Approval always represents an explicit verdict; a model’s guess about image quality is not approval. Editor access is required, and writes stop if Memo cannot check the workspace’s agent-access policy.
Find every file in a large project
get_project provides an overview with folder counts and one globally limited file page. Its response contract is version 2: files are in filePage.files, not separate lists repeated inside every folder. Follow nextFolderAfter as folder_after for more folders, and pass filePage.nextCursor to list_project_files for more files. items_per_folder: 0 returns a folder overview without a file page; other values no longer multiply the number of files by the folder count.
list_project_files supports folder, review status, media type, apparent role, Character, aspect ratio, text query, and missing name/description/folder/identity/provenance/embedding filters. Use folder_id: "unfiled" (or "none") for Unfiled. Results are ordered by creation time and ID, so tied timestamps do not lose files. Continue until hasMore is false. Cursors belong to one workspace and filter set; start over when changing filters.
These tools limit each response’s text to 8,000 UTF-8 bytes. A page can contain fewer files than requested to stay within that limit. Labels and descriptions in a list are summaries. get_generation returns the current edit revisions; its prompt, description, and provenance sections page through the full text using nextOffset and expected_hash. Join those pages in order. Pages are not a frozen database snapshot: edits and moves can change which files qualify while you read. Read a file again before editing it.
Understand what a generation used
New stored generation runs capture the final provider request after model-specific settings and reference limits are applied. The run record separates the original creative request, effective settings, requested references, resolved references, images actually sent in their provider slots, and references dropped or unavailable. The provider receipt is recorded separately from the prepared request. Older files without a captured run record say unknown. Memo does not reconstruct those inputs from guesses. Inline image bytes are represented by a hash; replay needs the original bytes. Remote files and provider models can change, so even a matching request does not guarantee an identical image.Keep Character sheets and repair search
promote_character_sheet saves a selected completed image as a permanent sheet of an existing workspace Character. It requires the Character-link revision from get_generation. The saved sheet has its own ID, permanent copy, and source record, so deleting the source generation does not remove it. Retrying resumes the same copy. A conflict returns the current link and revision; review them before choosing again. Removing a sheet from the Character is a separate explicit edit and retains the source record.
reindex_generations queues up to 100 authorized file IDs for search repair. It does not run image description or generate media. Indexing and automatic descriptions have separate durable queues. Interrupted work is retried with a lease; stale results cannot replace the index for newer content. Exhausted jobs remain visible for explicit retry.
Automatic generation descriptions reserve a monthly workspace allowance before each paid attempt, including retries. A failed or timed-out attempt still uses its reserved slot. If that allowance or its meter is unavailable, Memo makes no description call and uses a local prompt-based name when needed. This is separate from generation credits; names remain editable.