instantclips
OfficialTurn e-commerce products into short-form vertical video ads by importing a product, drafting and editing the creative plan, then rendering and retrieving the video.
Import products from a product-page URL or from hosted image URLs when there is no page to scrape.
Manage brands: list account brands, create a brand from a product's detected identity, or attach a product to an existing brand.
Poll product status to know when import and drafting finish, see the credit cost, list generated videos, and resolve brand-decision blocks.
Draft and edit creative direction: request a fresh draft, edit the hook/format/guidelines, set ratio, resolution, audio, target market, and add a creator note.
Generate the video — the only credit-spending tool — after showing the cost and getting the user's explicit go-ahead.
Check render status and retrieve the finished MP4 plus a public share link.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@instantclipsTurn this product link into a short vertical video"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
InstantClips MCP
InstantClips turns an e-commerce product into short-form vertical video for TikTok, Instagram Reels and Stories. It runs a hosted MCP server, so Claude Code, Codex, Cursor, VS Code, the Claude app, ChatGPT or any other MCP client can do what the web app does: import a product, draft the plan, and generate the video.
This is not a text-to-video generator. InstantClips reads the product page — photos, price, details — and builds the ad from what is actually there. The plan is written first and shown to you; the video follows the plan. That is why it is cheap enough to run across a catalogue, and why the result is the product you sell rather than a guess at it.
Free to start: the welcome credits cover the first video, and there is no card to enter. After that, one-time credit packs, or an Agency membership for anyone running several brands. See pricing.
Where it fits. Beside a scheduler (Postiz, Buffer) that posts what comes back. Beside an attribution tool that tells you which hook worked. Instead of an editor when you have a product page and no footage.
Not for. Cinematic hero films. A presenter reading your script. Horizontal 4K. Products with no page and no photos.
Built for. Shopify sellers, dropshippers, brands and agencies running social for several stores at once.
The product server stays hosted. This repository contains its connection guide, registry metadata, example HTTP client and a small open-source stdio adapter for clients that cannot connect to a remote server directly. The adapter answers initialization, ping and tool discovery from a generated snapshot, then sends authenticated tool calls to the hosted endpoint. The hosted server remains the source of truth; the product implementation is not duplicated here.
Endpoint
Endpoint |
|
Transport | Streamable HTTP, stateless |
Method |
|
Auth | Sign in when your client asks (OAuth 2.1), or |
Paste one address into your assistant and sign in when it asks. That is the whole setup. The first time it calls, the server sends you to sign in to InstantClips and approve the assistant; there are no keys to copy. Every assistant you approve is listed under Authorized apps in settings, where you can disconnect it.
The connection is to your own account: same brands, products, credits and plan limits as the web app. Signing in creates an account if you do not have one, with credits for the first video.
Opening the endpoint in a browser returns the setup page rather than a protocol error, with one-click install buttons for Cursor and VS Code.
Related MCP server: ViralSpin MCP
Install
Connect to the hosted endpoint directly whenever your client supports Streamable HTTP; it takes you through sign-in on first use. Use a token and the stdio adapter (under "No browser?" below) only for scripts and automated runners that cannot open a sign-in page.
Claude Code
claude mcp add --transport http instantclips https://app.instantclips.ai/mcpThen run /mcp inside Claude Code and choose InstantClips to sign in.
Codex
Add to ~/.codex/config.toml, which covers the CLI, the app and the IDE extension together:
[mcp_servers.instantclips]
url = "https://app.instantclips.ai/mcp"Then run codex mcp login instantclips to sign in.
Cursor and VS Code
One-click install buttons are on the setup page. They open the app, add InstantClips, and sign you in on first use.
Claude app and ChatGPT
Claude app: add a custom connector with this address and sign in when it asks. ChatGPT on the web: turn on Developer mode under Settings, Apps, Advanced, then add the address as a connector; on a Business or Enterprise workspace an admin publishes it as an app for everyone instead. The ChatGPT desktop app takes the same address under Settings, MCP servers, and shares it with Codex.
Any other MCP client or agent
OpenClaw, Hermes, or an agent you wrote yourself: point it at the address over Streamable HTTP. The server announces its sign-in flow the standard way, so a client that follows the spec needs nothing else. Anything that cannot open a sign-in page uses a token instead, below.
No browser? Use an access token
Scripts, CI jobs and agents that cannot open a sign-in page authenticate with a long-lived token instead. Mint one at app.instantclips.ai/settings#ai-access. It gives full access to your account, so keep it out of anything you commit.
With a token, the same clients look like this:
# Claude Code
claude mcp add --transport http instantclips https://app.instantclips.ai/mcp --header "Authorization: Bearer YOUR_TOKEN"# Codex, in ~/.codex/config.toml
[mcp_servers.instantclips]
url = "https://app.instantclips.ai/mcp"
http_headers = { Authorization = "Bearer YOUR_TOKEN" }To keep the token out of the Codex file, swap the header for bearer_token_env_var = "INSTANTCLIPS_TOKEN"
and export it in your shell instead. The Claude app takes a token as a request header on the
connector (request headers are still in beta); ChatGPT connectors sign in through the sign-in flow
rather than a pasted key. Any other client sends an Authorization: Bearer header. Nothing on the
wire is InstantClips-specific.
Stdio-only clients and headless runners
The instantclips-mcp npm package is a thin stdio-to-HTTPS adapter. It serves initialization and
tool discovery locally for a fast, credential-free cold start, then reads the token from the
environment and sends tool calls to InstantClips:
{
"mcpServers": {
"instantclips": {
"command": "npx",
"args": ["-y", "instantclips-mcp"],
"env": {
"INSTANTCLIPS_TOKEN": "YOUR_TOKEN"
}
}
}
}For an automated connectivity check, including the live tool names:
INSTANTCLIPS_TOKEN="your-token" npx -y instantclips-mcp --check --jsonThe token is accepted only through INSTANTCLIPS_TOKEN, never as a command-line argument, so it
does not appear in the process list. It is required for tool calls, but not for initialize,
ping, or tools/list. Node.js 20 or newer is required.
Starter prompts
Five to begin with. Swap in a link or a product name.
"Make a video ad for this product: [URL]"
"Import every product on this collection page and draft plans for all of them. Don't generate anything yet."
"Show me the plan for [product] and rewrite the hook to lead with the price."
"Make three videos for [URL] with three different hooks, so I can test them."
"Which of my brands is this product for? Then make the video."
Tools
The workflow, in order:
Import —
import_product_from_urlfor a store page, orcreate_product_from_imageswhen there is no page to read.Wait for the draft — poll
get_productuntil the import and the plan have finished.Read and steer it — the plan comes back as text: hook, content focus, format, execution guidelines, restrictions.
update_video_directionedits it,redraft_video_directionasks for another angle.Generate —
generate_video.Collect — poll
get_videofor the finished MP4 and a public share link.
Brands work the same way: list_brands, create_brand, set_product_brand. Every video is
drafted in a brand's voice, so an import whose storefront matches no existing brand stops and asks
rather than guessing.
Each tool's exact parameters are published by the hosted server. The generated
manifest/instantclips-mcp.json snapshot lets stdio clients and
registries inspect those same schemas without a credential. Maintainers refresh it with
INSTANTCLIPS_TOKEN="..." npm run sync:manifest; npm run check:manifest fails when the committed
snapshot differs from the live server. Run python example.py tools below when you specifically
want to print the live schemas over HTTP.
Credits
Importing a product, drafting the plan and editing it are all free. generate_video is the
only tool that spends credits, and it requires your explicit go-ahead — the tools report the cost
first. An agent cannot quietly run up a bill. See pricing.
example.py
A dependency-free MCP client — Python 3.9+, standard library only, no pip install. It
authenticates with a token, since a script has no browser to sign in with.
export INSTANTCLIPS_TOKEN="your-token"
python example.py tools # every tool, with its live input schema
python example.py call list_brands '{}' # call one tool with JSON argumentstools is the one to run first: it prints the real parameter names and types for every tool, which
is what you need before scripting the workflow above.
Links
instantclips.ai/automate — what the automation is for: a real result made from a store page, starter prompts, the tools in order, and the rules. It does not repeat the setup; this file and the app's setup page are where that lives.
app.instantclips.ai/llms.txt — machine-readable description of the product and the tool sequence
Registry
server.json is this server's entry in the official MCP registry,
which the other directories ingest from. One ai.instantclips/instantclips entry carries both the
hosted endpoint in remotes and the stdio adapter in packages, so a host can choose the transport
it supports without creating two identities for the same tool surface.
The npm package's mcpName must exactly match that registry name. The repository link points to the
open-source adapter; the hosted product implementation is not in this repository.
The ai.instantclips namespace is the reverse-DNS of the domain, which requires publishing under
DNS or HTTP domain auth rather than GitHub auth. Authenticating with GitHub instead would force the
entry into io.github.instantstudioai/... and give up the branded namespace.
Publish the npm package first, then re-publish this same registry entry with
mcp-publisher publish after bumping its version. Domain authentication keeps the branded
ai.instantclips namespace; do not replace it with an io.github.* name. The signing key stays out
of the repository — .gitignore covers *.pem, and a committed private key is a published one.
glama.json is the separate, Glama-specific file that claims the listing there. A server under an
organisation rather than a personal account can only be claimed with that file present.
It carries ownership only. In Glama's Dockerfile form, use build steps
["npm install --omit=dev"], CMD arguments ["node", "./bin/instantclips-mcp.js"], and any dummy
value for the required INSTANTCLIPS_TOKEN placeholder. Glama's initialization and tool-quality
checks use the bundled manifest and never transmit that placeholder upstream. Do not put a real
account token into a third-party build sandbox.
License
MIT — see LICENSE. The license covers this repository's contents; use of the hosted service is governed by the Terms of Service.
Available Tools
10 toolscreate_brandCreate a brand for a productAInspect
Create a new brand from the identity detected on a product that is
waiting on brand_decision_required, and attach the product to it.
Use this when the product belongs to a company the account has no brand
for yet — the usual case when someone brings a new store. The brand's
voice, target market and keywords are taken from what the storefront
scrape drafted; the user can rename it with name.
Ask the user before calling this. It consumes one of the plan's brand
slots, and on a plan that has run out this fails with a brand-limit
error — at which point the choices are to attach the product to an
existing brand with set_product_brand, to re-point an existing brand
at this identity with set_product_brand and replace_identity: true,
or to upgrade.
Once this returns, the video direction starts drafting: poll
get_product until video_direction.drafting is false.
This does not spend credits.
| Name | Required | Description | Default |
|---|---|---|---|
| name | No | Optional. Overrides the detected storefront name for the new brand. | |
| product_id | Yes | The product waiting on a brand decision. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Discloses important behaviors beyond annotations: this consumes a plan brand slot, can fail with a brand-limit error, results in the video direction drafting asynchronously, and does not spend credits. These are not inferable from `readOnlyHint: false`, `destructiveHint: false`, or the schema, and they materially affect agent decisions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is long but every sentence earns its place: purpose, usage conditions, user consent, plan-limit behavior, alternatives, async follow-up, and credit disclosure. Front-loaded with the core action before routing to alternatives.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Covers the full call context: when to use it, prerequisites, side effects, failure mode, fallback tools, and follow-up polling behavior. With no output schema, it still provides enough for an agent to invoke correctly and handle the outcome.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and already documents both parameters, so the baseline is 3. The description adds context by explaining that `name` overrides the storefront-detected name and that brand attributes are drafted from the storefront scrape, slightly enriching the parameter semantics beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource: creates a new brand from an identity detected on a product waiting on `brand_decision_required`, and attaches the product to it. Clearly distinguishes this from the sibling `set_product_brand`, which re-points an existing brand.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly says when to use: when the product belongs to a company the account has no brand for, typically with a new store. Names alternatives and conditions: `set_product_brand`, optionally with `replace_identity: true`, or upgrade when the plan's brand limit is reached. Also instructs to ask the user before calling.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_product_from_imagesCreate a product from image URLsAInspect
Start a new InstantClips product from hosted product photos, for a product that has no public page to scrape.
Images must be publicly reachable URLs — this endpoint cannot read files from the caller's machine. Images larger than 8MB are skipped; at most 9 are used in a render.
Returns immediately with a product_id; the downloads and the first
video-direction draft run in the background. Poll get_product until
import_status is "imported".
Prefer import_product_from_url when a product page exists — the scrape
also collects the name, description, price and brand identity, which
make for a far better direction draft than images alone.
This does not spend credits. Only generate_video does.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | Product name. | |
| brand_id | No | Which brand this product belongs to, from `list_brands`. There is no page to scrape here, so nothing can detect the brand for you: confirm it with the user rather than letting it fall through to the account's default brand. | |
| image_urls | Yes | Publicly reachable image URLs, most representative first. | |
| description | No | Optional. What the product is, in a sentence or two — feeds the direction draft. | |
| creator_note | No | Optional. A short free-text note to the director: the angle, occasion or message this video should carry. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description reveals asynchronous behavior: it returns product_id immediately, downloads happen in the background, and the first video-direction draft runs later. It also discloses important constraints and side effects—public URLs only, 8MB skip limit, at most 9 images used, and no credit consumption—adding real behavioral context beyond the annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is front-loaded with purpose and contains no filler. It is somewhat long with multiple paragraphs, but each paragraph adds operational value—async behavior, polling instructions, alternative tool guidance, and credit semantics—so the length is justified, if not perfectly tight.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a creation tool with no output schema, the description covers the full invocation picture: what inputs are needed, what happens on success, how to track progress, when to prefer an alternative, and cost implications. An agent has everything needed to call this tool correctly and interpret the immediate result.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the schema already documents all parameters. The description adds meaningful parameter-related constraints, especially for image_urls: they must be publicly reachable, cannot come from the caller's machine, images over 8MB are skipped, and at most 9 are used. This goes beyond the schema's 'Publicly reachable image URLs, most representative first' and earns more than the baseline 3.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a specific verb and resource: 'Start a new InstantClips product from hosted product photos', and adds a precise scope condition ('for a product that has no public page to scrape'). It clearly distinguishes itself from import_product_from_url by naming what this tool is not for, so an agent can select it confidently.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly says to prefer import_product_from_url when a product page exists, and explains why: the scrape collects name, description, price, and brand identity for a better direction draft. It also gives lifecycle guidance: poll get_product until import_status is 'imported', making the tool's role in the workflow unmistakable.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
generate_videoGenerate the video (spends credits)AInspect
Render the video. THIS SPENDS THE USER'S CREDITS.
Ask the user before calling this, every time. Tell them the cost first —
get_product reports it as video_direction.credit_cost, and the
user's balance as credits_remaining. Credits are charged at launch,
not on completion; a failed render is refunded automatically.
Show the user the creative direction and let them approve or edit it before you call this. Do not call it to "see what happens", to retry a render that is still in progress, or as part of a batch you decided on your own.
Returns as soon as the render is queued. Poll get_video with the
returned video_request_id every 20-30 seconds until its status is
"done" (a few minutes), then give the user output_url and
share_url.
If the account cannot afford it, nothing is charged and the response says so — tell the user to top up at the credits page rather than retrying.
| Name | Required | Description | Default |
|---|---|---|---|
| product_id | Yes | The product to render. Its current direction and settings are used as-is. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
It discloses the credit charge timing, automatic refund on failure, queued return behavior, and insufficient-balance handling. These behaviors go well beyond the annotations (`readOnlyHint: false`) and tell the agent exactly what side effects to expect.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is longer than average but the content is almost entirely operational guidance needed for a credit-spending tool. It is front-loaded with the most critical warning, though some repetition with the title ('spends credits') and a few overlapping consent instructions add slight redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Without an output schema, the description explains what the call returns (`video_request_id`), how to follow up (`get_video`, 20-30s polling until `done`), and what to give the user (`output_url`, `share_url`). It also covers the insufficient-funds path, making the expected behavior complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The only parameter `product_id` has a schema description that already covers its meaning completely, so the tool description adds no new semantic information. The baseline of 3 applies because schema coverage is 100%.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with 'Render the video' and identifies the exact resource (`product_id`), so the agent knows this is the rendering action. It also separates it from siblings like `get_video` and `update_video_direction` by noting the product's current direction/settings are used as-is.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly requires user approval and cost disclosure before every call, and it lists forbidden uses ('see what happens', retry in progress, self-initiated batch). It also tells the agent to poll `get_video` afterwards, giving a clear and complete workflow.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_productGet a product and its video directionARead-onlyIdempotentInspect
Read a product: what the import found, the current video direction and settings, and every video generated from it.
Use this to poll after import_product_from_url or
create_product_from_images. The product is ready to work with when
import_status is "imported" AND video_direction.drafting is false.
Poll every 20-30 seconds; the whole thing normally settles inside a
minute.
import_status values: "pending" and "importing" mean keep polling;
"imported" means done; "failed" means it did not work and
import_failed_reason says why.
video_direction.credit_cost is what generate_video will charge for
the current settings.
| Name | Required | Description | Default |
|---|---|---|---|
| product_id | Yes | The product's id. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the readOnly/idempotent annotations, the description adds substantial behavioral detail: `import_status` value meanings, the `video_direction.drafting` readiness flag, and the meaning of `video_direction.credit_cost`. It tells the agent how the tool behaves over time and how to interpret the result.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is well structured: the core purpose is front-loaded, and each paragraph adds necessary operational context—polling usage, status interpretation, and credit cost. No sentence is wasted.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description carries the burden of explaining return semantics, and it does so well. It covers the key fields an agent needs to decide whether the product is ready, whether import failed, and what generation will cost, making it complete enough to use correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
There is only one parameter, `product_id`, and the schema already describes it fully with 100% coverage. The description does not add extra parameter-level meaning, so the baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a specific verb and resource: 'Read a product' and then enumerates exactly what is returned—import findings, video direction/settings, and generated videos. This clearly distinguishes it from siblings like get_video, which would focus on a single video.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It explicitly states when to use the tool: poll after `import_product_from_url` or `create_product_from_images`, with a recommended polling interval. It also explains the readiness condition. However, it does not explicitly contrast with alternatives or say when not to use it, so it stops short of a 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_videoCheck a video's render statusARead-onlyIdempotentInspect
Check one video's render.
status values:
"generating" — still rendering, keep polling every 20-30 seconds.
"done" — finished; output_url is the MP4 and share_url is a
public page to send someone.
"failed" — failed_reason says why. The credits were refunded
automatically; the user can retry from the product page.
"insufficient_credit" — never launched; nothing was charged.
"pending" — not launched yet; call generate_video.
A render normally takes a few minutes. Tell the user what you are waiting on rather than polling silently in a tight loop.
| Name | Required | Description | Default |
|---|---|---|---|
| video_request_id | Yes | Returned by generate_video, and listed under `videos` in get_product. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false, so the safety profile is known. The description adds substantial behavioral context beyond that: it explains the meaning of each status, that 'done' provides output_url and share_url, that 'failed' triggers an automatic credit refund, and that a render typically takes a few minutes. It also warns against tight polling, which is a behavioral trait an agent needs. No contradiction with annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is moderately long but every sentence earns its place. It front-loads the purpose, then uses a bulleted list to enumerate statuses and actions. It could arguably be tightened by trimming the 'pending' line, but overall it's well-structured and free of fluff.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a status-check tool with a single parameter and no output schema, the description is fully complete. It covers all possible status values, the meaning of each, the appropriate agent action for each, and the expected duration. It also tells the agent how to behave (inform the user). Nothing an agent needs to call the tool correctly is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% — the single parameter video_request_id already has a clear description ('Returned by generate_video, and listed under videos in get_product'). The tool description does not add any additional parameter-level semantics, and with full coverage the baseline of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with 'Check one video's render,' which is a specific verb (check), a specific resource (one video), and an action (render status). It clearly distinguishes itself from generate_video (which creates) and get_product (which lists videos), so an agent can tell them apart without reading the schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives explicit when-to-use guidance: each status value comes with a recommended action — poll every 20-30 seconds for 'generating', call generate_video for 'pending', etc. It also tells the agent to inform the user rather than poll silently, which is a clear usage directive. There are no explicit exclusions, but the status-based routing fully covers the decision space.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
import_product_from_urlImport a product from its page URLAInspect
Start a new InstantClips product from a product page URL (a storefront listing, e.g. a Shopify product page).
Returns immediately with a product_id — the scrape, the image download
and the first video-direction draft all run in the background. Poll
get_product until import_status is "imported" and
video_direction.drafting is false, which usually takes under a minute.
Pasting a URL that was already imported on this account returns that existing product instead of creating a duplicate.
If the storefront name does not exactly match a brand this account has
already reviewed, the import stops on a brand decision instead of
guessing: get_product will report brand_decision_required, and no
video direction is drafted until it is resolved with create_brand or
set_product_brand. Do not assume the account's existing brand — a
product from a different company drafted under the wrong brand's voice
is the failure this prevents. Pass brand_id only when the user has
told you which brand this product belongs to.
This does not spend credits. Only generate_video does.
| Name | Required | Description | Default |
|---|---|---|---|
| url | Yes | The product page URL, e.g. https://store.example.com/products/wool-runner | |
| brand_id | No | Optional, and only when the user has said which brand this is. Omit it to let the import match the storefront against the account's brands and ask when it cannot. Use `list_brands` to see what exists. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Goes far beyond the annotations by disclosing the asynchronous behavior, the immediate product_id return, the background scrape/download/draft, the polling condition, duplicate-URL handling, the brand-decision stop state, and the credit policy. This is exactly the behavioral context an agent needs.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is front-loaded with the core action and return behavior, then adds only high-value operational details. Every paragraph earns its place, and the asynchronous and brand-decision caveats are clearly separated without redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Despite having no output schema, the description fully covers what the agent needs: the immediate return, how to check completion, duplicate handling, the brand-decision failure mode, the resolution path, and the credit implications. This is complete for a complex side-effecting tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the baseline is 3. The description adds meaningful value for brand_id by explaining when it is appropriate to pass it, how the tool behaves without it, and that list_brands exists for discovery. The url parameter is adequately covered by the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource: 'Start a new InstantClips product from a product page URL.' It clearly differentiates this import-from-URL tool from sibling creation paths, especially create_product_from_images, by the input source and the background-import behavior.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives explicit when-to-use guidance, including when to pass brand_id ('only when the user has told you which brand'), when not to assume a brand, and how to resolve a brand decision using create_brand or set_product_brand. Also tells the agent to poll get_product and clarifies that generate_video is the only credit-spending tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_brandsList the account's brandsARead-onlyIdempotentInspect
List the brands on this account, with the plan's brand limit and whether another brand can be created.
A brand carries the identity every video is drafted against: its voice, its target market and its keywords. A product must belong to the brand it actually comes from — a product drafted under another company's voice is wrong even though it renders fine.
Call this before answering a brand_decision_required from
get_product, and whenever the user needs to choose or name a brand.
This does not spend credits.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and non-destructive behavior. The description adds useful context beyond annotations, including that the tool does not spend credits and what information it returns. No contradiction with annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is front-loaded with the core listing behavior, followed by usage guidance and a credit note. The brand-identity explanation adds context but is slightly longer than strictly necessary for calling the tool; still, each sentence provides useful background.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a zero-parameter, read-only list tool with rich annotations, the description is complete: it states the resource, the output contents, the exact trigger conditions, and the side-effect profile. Nothing essential is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters, so the baseline is 4. The description correctly adds no parameter information, and the account scope is implied by the title and description. No parameter ambiguity exists.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('List the brands on this account') and specifies the returned data (plan brand limit and whether another brand can be created). The meaning is unambiguous and distinguishes it from brand-creation or brand-assignment siblings like create_brand and set_product_brand.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives an explicit trigger: call before answering a `brand_decision_required` from `get_product`, and whenever the user needs to choose or name a brand. This tells the agent exactly when to invoke the tool without requiring inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
redraft_video_directionDraft a new creative directionADestructiveInspect
Ask InstantClips to draft a fresh creative direction for this product's next video, using the product's facts, its images and the brand's identity. Use it to get a first draft, or to try a different angle when the user does not like the current one.
This OVERWRITES the current direction — including any edits. Confirm with the user before re-rolling a direction they have already worked on.
The draft runs in the background: this returns with drafting true, and
you poll get_product until video_direction.drafting is false (a few
seconds). Rolling a fresh angle is the point, so calling it twice gives
two different drafts, not the same one.
This does not spend credits.
| Name | Required | Description | Default |
|---|---|---|---|
| format | No | Optional. Pin a specific video format instead of letting the drafter pick one — e.g. "unboxing", "before_after". Unknown values are ignored, so leave it out unless the user asked for a particular kind of video. | |
| product_id | Yes | The product's id. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare destructiveHint=true and idempotentHint=false, and the description reinforces this by stating it overwrites current direction and that calling it twice gives different drafts. It adds valuable non-annotation context: background execution, polling via get_product until drafting is false, and that it does not spend credits. This goes beyond the annotation baseline.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Though longer than average, each section earns its place: purpose, destructive warning, background mechanics, and cost. The main action is front-loaded in the first sentence, and the structure is logical with no redundancy or fluff.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity—background execution, destructive behavior, polling requirement—the description covers all necessary operational details: what to expect (drafting flag), how to poll, and user confirmation. The absence of an output schema is compensated by the description's explanation of the return state and polling approach.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with detailed descriptions for both parameters. The tool description adds no additional parameter semantics—it does not mention product_id or format beyond what the schema already says. Thus the baseline of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool drafts a fresh creative direction for a product's next video using product facts, images, and brand identity. It distinguishes itself from video generation by focusing on the 'direction' and implies alternation from the current one. It does not explicitly name sibling update_video_direction, but the purpose is unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly states when to use it: 'to get a first draft, or to try a different angle when the user does not like the current one.' It also warns about overwriting edits and instructs to confirm with the user before re-rolling. It provides clear context including background execution and polling, though it does not explicitly list alternative tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
set_product_brandAttach a product to an existing brandADestructiveInspect
Attach a product waiting on brand_decision_required to one of the
account's existing brands. Use list_brands to see them.
Only do this when the user has confirmed the product really belongs to that brand. Attaching a product to an unrelated brand is not a cosmetic mislabel: every video is drafted in that brand's voice, to its target market, with its keywords.
By default the brand's existing identity is left untouched. Pass
replace_identity: true to instead overwrite that brand's voice, target
market and keywords with the identity detected on this product — the
"re-point my brand at a different company" move, for an account at its
brand limit. This rewrites a brand every other product on it shares, so
confirm it with the user explicitly first.
Once this returns, the video direction starts drafting: poll
get_product until video_direction.drafting is false.
This does not spend credits.
| Name | Required | Description | Default |
|---|---|---|---|
| brand_id | Yes | The brand to attach it to, from `list_brands`. | |
| product_id | Yes | The product waiting on a brand decision. | |
| replace_identity | No | Optional, default false. Overwrite the brand's voice, target market and keywords with this product's detected identity. Affects every product on that brand — confirm with the user. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate the operation is destructive, but the description goes much further by explaining that the default leaves the brand identity untouched, while `replace_identity: true` rewrites a brand identity shared by other products. It also discloses the post-condition that video direction starts drafting afterward and confirms the operation does not spend credits, which is valuable beyond the structured annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Every paragraph earns its place: the core action, the confirmation requirement, the destructive `replace_identity` caveat, the post-call polling step, and the credit note. The content is front-loaded with the primary verb and resource, and the longer sections provide necessary safety context rather than filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description still provides a complete picture of prerequisites, side effects, post-call behavior, and how to verify progress by polling `get_product`. It is sufficient for an agent to know when to call, what to pass, what consequences to expect, and how to follow up.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the baseline is a 3, but the description adds meaningful semantics for `replace_identity` by explaining it is the 're-point my brand at a different company' move and by emphasizing that it affects every product on the brand. The descriptions of `product_id` and `brand_id` are otherwise consistent with the schema and do not require much additional explanation.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific action with a precise subject: attaching a product waiting on `brand_decision_required` to an existing brand. It clearly differentiates from sibling tools like `create_brand` and `update_video_direction` by focusing on the brand assignment step and the required product state.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives clear context by telling the agent to use `list_brands` to see existing brands and warns to act only after explicit user confirmation that the product belongs to the brand. It does not explicitly name an alternative for cases where the brand does not exist, such as `create_brand`, so it stops short of full exclusion guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
update_video_directionEdit the video direction and render settingsAIdempotentInspect
Edit the creative direction and render settings for a product's next video. Only the fields you pass are changed; everything else keeps its current value.
creative_direction is the plan the render is built from. It is free
text, but the drafts follow a six-section shape that works well and is
worth preserving when editing:
Hook: ... Content Focus: ... Format: ... Execution Guidelines: ... Strict Guidelines & Restrictions: ...
Do not invent a direction from nothing when one has not been drafted
yet — call redraft_video_direction and edit what comes back. Leaving
it empty is also valid: generation works without a direction.
creator_note is different and smaller: the user's own short note to
the director ("mention it is machine washable", "for Father's Day"). It
is carried through to the render verbatim, so put the user's words in
it, not your paraphrase.
Only works before generation starts. This does not spend credits.
| Name | Required | Description | Default |
|---|---|---|---|
| ratio | No | Aspect ratio. 9:16 (vertical) is the default and what social feeds want. | |
| product_id | Yes | The product's id. | |
| resolution | No | 1080P needs a paid plan; a pick above the plan's ceiling quietly becomes that ceiling (the response reports what was actually saved). | |
| creator_note | No | The user's short note to the director, max 1000 characters. | |
| enable_audio | No | Whether the render has sound. | |
| target_market | No | Free text, e.g. "US/North America" or "Japan". Drives the spoken language unless one is set explicitly. Saved on the brand, so it carries to later videos. | |
| creative_direction | No | The full creative plan, max 3000 characters. Pass an empty string to clear it. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already mark this as non-read-only and non-destructive, but the description adds rich behavioral context: partial updates only, no credit spending, the pre-generation precondition, creator_note being passed verbatim, and target_market persisting on the brand. This goes well beyond the structured hints and does not contradict them.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is front-loaded with the core action and partial-update semantics, then groups parameter guidance by relevance. It is longer than average, but the tool has seven parameters and subtle constraints; no sentence is filler, and key warnings (don't invent, only before generation, no credits) are clearly highlighted.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 7-parameter mutation tool with no output schema, the description covers the essential invocation context: what changes, when it is valid, cost behavior, parameter-specific quirks, and the relationship to redraft_video_direction. Nothing critical needed to call it correctly appears missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, but the description adds substantial meaning: the six-section creative_direction structure, the instruction not to invent a direction and to prefer redraft_video_direction, creator_note's verbatim pass-through semantics, and target_market's lasting brand-level effect. This materially helps an agent fill parameters correctly.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a specific verb and resource: 'Edit the creative direction and render settings for a product's next video.' It also distinguishes itself from the closest sibling by calling out redraft_video_direction explicitly, so an agent can identify the right tool without ambiguity.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides explicit routing guidance: use redraft_video_direction when no direction has been drafted yet, and states the timing constraint 'Only works before generation starts.' It also explains what is deliberately not done here ('does not spend credits'), which helps the agent choose between this and generation tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.
10 tool updates
- First observed
create_brand - First observed
create_product_from_images - First observed
generate_video - First observed
get_product - First observed
get_video - First observed
import_product_from_url - First observed
list_brands - First observed
redraft_video_direction - First observed
set_product_brand - First observed
update_video_direction
TDQS
Each tool targets a distinct resource/action: URL import vs image import, product read, direction edit vs direction redraft, brand list/create/assign, and video generate/poll. Even the two direction tools are clearly separated by 'edit existing' vs 'draft new' semantics.
All tool names follow a consistent snake_case verb_noun pattern, e.g. import_product_from_url, create_product_from_images, set_product_brand, generate_video. The convention is uniform and predictable across the entire set.
Ten tools is well-scoped for the product-video generation workflow. Each tool covers a distinct step in the pipeline without redundancy or bloat.
The core lifecycle is covered end-to-end: create/import a product, resolve brand decisions, draft/edit direction, generate a video, and poll for results. Minor gaps exist—no list_products or brand update/delete—but they do not create dead ends in the primary workflow.
Maintenance
Related MCP Connectors
Generate AI short-form videos and auto-publish them to TikTok, YouTube, Instagram, Facebook and X.
AI video editing + publishing: turn clips into vertical shorts, post to TikTok/Instagram/YouTube.
Autonomous short-form video for your brands, delivered daily to your own webhook.
Generate AI UGC video ads from any product URL — avatars, voiceover, OAuth Connect.
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceGenerate AI UGC video ads from any product URL in 5 minutes. Realistic AI avatars, natural voiceover, proven ad templates. No actors, no editing, no experience required.1441MIT
- AlicenseAqualityCmaintenanceEnables AI agents to edit video assemblies from A-roll and B-roll, add captions, and publish to social media platforms.2717MIT
- AlicenseNot gradedqualityBmaintenanceEnables AI agents to produce professional promo videos by providing tools for capture, media search, scene writing, rendering, editing, and incremental revision.165MIT
- AlicenseNot gradedqualityBmaintenanceEnables users to turn a product brief into a professional ad campaign, generating a validated fal.ai workflow.json with consistent characters, sound, and subtitles while showing costs before any model runs.MIT
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/InstantStudioAI/instantclips-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server