# Imagine Films > Film generation for commerce, training and property. Describe the film; attach references; get a graded clip in every aspect you need. Film generation for three audiences: social and e-commerce sellers, corporate training and education, and high-value property. ## For agents This page is designed to be operated by software as well as by people. The tool list below is the same declaration the interface renders — there is one source, so the human affordance and the machine affordance cannot disagree. MCP endpoint: https://imaginefilmsai.com/mcp Transport: streamable-http Version: 1.0.0 The endpoint is live and answers JSON-RPC over HTTP POST. It is stateless — no session id, no event stream. Claude Code: claude mcp add --transport http imagine-films https://imaginefilmsai.com/mcp Claude chat: Settings, Connectors, Add custom connector, paste the URL above. No plugin is required. ## Insights tools Imagine Films keeps a database of high-performing short-form social video — metrics, creator baselines, transcripts and hooks — built for marketing research. Every row carries a source URL and the time it was captured, so it can be cited rather than paraphrased. The tools below marked *public* answer without an account. Those marked *account* do live lookups or generate film, need an OAuth connection, and spend credits. Every tool is listed to an anonymous caller either way. - **search_trending_videos** (public) — Search the insights database for high-performing short-form video. - **get_trending_snapshot** (public) — The current curated trending snapshot, ranked by reach past a creator’s own audience. - **get_video_insight** (public) — Metrics, reach and hook for one video already in the database. - **get_creator_profile** (public) — A creator’s baseline, and their strongest recent videos against it. - **list_insight_coverage** (public) — What the database covers, and how fresh the newest capture is. - **research_video** (account) — Pull a video that is not yet in the database, with its full transcript. - **research_creator** (account) — Pull a creator’s recent post history and add it to the database. - **compose_film** (account) — Generate a film from a written description. - **get_generation** (account) — Status and output URLs for one generation. - **list_films** (account) — Recent generations for your organisation. Authorization for the account tier is OAuth 2.1 with dynamic client registration and PKCE. Discovery: https://imaginefilmsai.com/.well-known/oauth-protected-resource/mcp https://imaginefilmsai.com/.well-known/oauth-authorization-server ## Page controls The list further down is a different thing: the controls on this page, named so a reader can tell what a human clicks. They are not served over MCP — a tool that sets an aspect ratio on a page nobody is looking at does nothing. ## Looks - **commerce** — product films, sized for every feed, in one pass - **training** — one script, every language, every one of your people - **property** — walk a buyer through the house before it is furnished A look is a lighting setup, not a filter: key position, stock contrast, grain, halation and atmospheric density all change together. ## Tools ### compose(prompt: string, references?: number) Generate a film from a written description. ### attach_reference(kind?: still|clip|product|floorplan) Attach a still or clip to steer subject, product or location identity. ### set_model(model: aperture-2|aperture-2-turbo|longform-30s) Choose the generation model. ### set_aspect_ratio(aspect: 16:9|9:16|1:1|2.39:1) Set the output frame shape. ### set_duration(duration: 4s|8s|15s|30s) Set the output length. ### set_look(look: commerce|training|property) Apply a colour science. Changes lighting and stock response, not the subject. ### toggle_audio() Hear one example film. Only one plays sound at a time. ### browse_examples(look?: commerce|training|property, limit?: number) List example films for a given look. ### open_command_palette() Open the command surface. Identical schema to this manifest. ## Notes The insights database covers TikTok, YouTube and Instagram. Coverage changes, so call list_insight_coverage rather than assuming — it reports the platforms held, how fresh the newest capture is, and anything not yet covered, plainly, rather than returning an empty list that reads as "nothing is trending". Generation returns a queued request you poll with get_generation. Whether a real model is attached depends on the deployment's provider configuration — a run that resolves to sample media says so in its own status rather than pretending.