Skip to main content
Glama

Run a Tanvo app

generate_from_app

Run a Tanvo app's look on your photos to create an image, video, or song, using the look's tuned prompt and model; add optional personal details.

Instructions

Run one of Tanvo's apps with one of its looks on the user's photos, e.g. the 'renaissance' look of a pet portrait app. Photos go in the order of the app's inputs (see get_app). Uses the look's tuned prompt and model; details adds the user's own touch. Charges the look model's credits (shown by get_app) and refunds failures. Needs TANVO_API_KEY unless the look runs on the free engine.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
appYesApp slug from find_apps
lookNoLook id from get_app; defaults to the first look
waitNoWait for the result. Defaults to true for images and songs, false for video.
photosNoPhotos as local file paths or public https URLs. Local files are uploaded for you.
detailsNoOptional personal detail woven into the prompt, e.g. 'for my sister Ana' or 'wearing a red scarf'
save_toNoOptional folder to download the results into (defaults to TANVO_OUTPUT_DIR when set)

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.2.0

TDQS

A4.6/5.0
Behavior5/5

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

Annotations only declare openWorldHint, so the description carries the full behavioral burden and does so well: it discloses credit charging based on the look model, refunds on failure, the auth requirement (TANVO_API_KEY), and that the look's tuned prompt and model are used. These are non-obvious operational facts an agent needs before invoking.

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

Conciseness5/5

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

Four dense sentences, front-loaded with the core action and example, then constraints (ordering, prompt/model, cost/refund, auth). No filler or restated name/title.

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

Completeness4/5

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

There is no output schema, and the description covers cost, refunds, auth, ordering, and defaults well enough to call the tool. It leaves one gap: it doesn't explain the async path when wait=false (presumably retrieving via get_generation), which matters given the video default is not to wait.

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

Parameters4/5

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

Schema description coverage is 100%, so the baseline is 3; the description adds real meaning beyond the schema by explaining that photos are ordered according to the app's inputs (see get_app) and that `details` is a personal touch woven into the prompt. That clarifies usage of two parameters in ways the schema does not.

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?

Specific verb+resource ('Run one of Tanvo's apps with one of its looks on the user's photos') with a concrete example that clarifies the distinction from the generic generate_image sibling. An agent can tell this is preset/look-driven generation rather than free-form prompting.

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

Usage Guidelines4/5

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

Routes the agent to get_app for input ordering and look ids, and conditionally to find_apps via the schema ('App slug from find_apps'), plus a note that TANVO_API_KEY is needed unless the free engine is used. It never states when NOT to use this tool versus generate_image/generate_video, so it is clear context without explicit exclusions.

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