Skip to main content
Glama

Store a reference image

ingest_url

Store an image INTO emero's library so it can anchor a generation — the user's own subject / product / character / scene, or an external reference you've already chosen. Returns a job:<uuid>#0 id; pass it into generate as reference_image_ids (images: up to 8) or as a video's start_frame_id / end_frame_id. No UI. NEVER base64 a file into your reply.

  • url: a public https image URL.

  • file: only works when your client provides a publicly reachable download_url with the attachment. A local or sandbox path will fail — use request_upload instead. To just LOOK at an image (web research, a candidate reference) without storing it, use inspect, not this. Only ingest_url the images you've decided to keep and reuse.

Input Schema

NameRequiredDescriptionDefault
urlNo
fileNo
project_idNoOpaque per-chat project id: "p-" plus 6 random letters and digits. Every chat is a new project. Mint one on your first emero call and pass that SAME id on every call in this chat. Never mint a second one in the same chat, even for a new topic, campaign or subject. Only when the user asks to continue an earlier project, reuse its id from get_emero_brain's project list.
project_nameNoShort human title for the project (2-5 words from the user request, e.g. "Perfume ad campaign"). Pass it on your first generate/ingest_url so the project is not left "Untitled". You may also rename at will later — pass an updated project_name (on a generate/ingest_url, or on set_settings with no other change) whenever the user asks, e.g. "call this project cats".

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed1 schema field changed
    • changedInput schema / properties / project_id / description
      Previous value: -"Opaque per-chat project id. Mint one on your first emero action, pass that SAME id every call. One project per chat: NEVER mint a second for a new topic/campaign/subject/vibe — all stay in the one project; a new id is only for a new chat (server folds a stray id back in). A new chat the user says continues an earlier project reuses that project's id (from get_emero_brain's project list)."New value: +"Opaque per-chat project id: \"p-\" plus 6 random letters and digits. Every chat is a new project. Mint one on your first emero call and pass that SAME id on every call in this chat. Never mint a second one in the same chat, even for a new topic, campaign or subject. Only when the user asks to continue an earlier project, reuse its id from get_emero_brain's project list."
  2. First observed

TDQS

A4.9/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations exist, so the description must carry the full load and largely does: it discloses the return identifier format (`job:<uuid>#0`), the ≤8 image cardinality when passed to `generate`, the requirement that `url` be public https and that `file` needs a publicly reachable `download_url`, and the hard constraint never to base64 a file into the reply. The only untouched operator concerns are auth and rate limits, which are minor for this tool.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loaded with the capability and the returned id before the bullet list, and every bullet adds a real constraint. Minor deduction: the fragment "No UI" is cryptic on its own, and the base64 warning sits awkwardly mid-paragraph rather than with the other `file` guidance.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a 4-parameter nested-object tool with no output schema and no annotations, the description covers what an agent needs to call it correctly: inputs accepted, preconditions, the return value's shape, and exactly which sibling fields consume it. Nothing material is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Coverage is split cleanly: the description supplies the semantics for `url` (public https image URL) and `file` (requires a reachable `download_url`, local paths fail), while the schema's own descriptions cover `project_id` and `project_name` in depth. Together every parameter is explained with more than type information.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Opens with a specific verb+resource ("Store an image INTO emero's library") and immediately states the downstream purpose — anchoring a generation with a subject/product/character/scene. It explicitly differentiates from siblings by naming `inspect` for look-only and `request_upload` for local paths.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives explicit when-not-to-use rules: "To just LOOK at an image ... use `inspect`, not this," and "a local or sandbox path will fail — use request_upload instead." It also frames the selection criterion ("Only ingest_url the images you've decided to keep and reuse"), so the agent can decide without opening any schema.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.