MakeViral
Server Details
Find the newest viral AI video trend templates and make them from your photos or a prompt.
- Status
- Healthy
- Last Tested
- Transport
- Streamable HTTP · MCP 2025-11-25
- URL
TDQS
Scored across 14 tools
The tools split cleanly into two workflows: MakeViral Create (models, image/video creation, creation status/history) and template runs (template search/get/run, upload link, run status/history). The parallel status and list tools (get_creation vs get_run, list_creations vs list_runs) could cause brief hesitation, but their descriptions make the target resource explicit.
All tools use snake_case with a predictable verb_noun pattern: create_image, create_video, get_model, list_runs, search_templates, suggest_template, etc. The few compound nouns like create_upload_link still follow the same convention.
Fourteen tools are well scoped for a server supporting both custom AI creation and trend-template runs. Each tool has a distinct role, and the count does not feel bloated or thin for the domain.
The surface covers account balance, model discovery/pricing, image and video creation, upload links, status polling/waiting, history listing, template discovery/execution, and suggesting missing templates. Minor gaps remain, such as no cancel/delete operation and no upload-link fallback for custom Create models when chat attachments are unavailable.
Available Tools
14 toolscreate_imageMake an AI imageADestructiveInspect
Make AI images from the user's prompt with a chosen MakeViral Create model, from text or from the user's photos (edit a photo, put a person in a new scene, combine photos). It spends credits from the user's MakeViral account (a failed image gives them back) and usually returns the finished image link in this call. Before calling: 1) pick the model (get_model gives its sizes and prices), 2) tell the user the price in credits, 3) when photos are used, ask the user to confirm the people in them are them or agreed, and that no one is a child. Photos: pass the files the user attached in this chat as photos, or public image links as photoUrls. Never use photos of a public figure or of someone who did not agree. Calling again with the same input within 10 minutes returns the first result; pass a new requestId to make more.
| Name | Required | Description | Default |
|---|---|---|---|
| count | No | How many images (each one is charged). Default 1. | |
| model | Yes | Image model id (list_models). nano-banana-2 is a good default. | |
| aspect | No | Shape. Default 9:16 (vertical, for TikTok and Reels). | |
| photos | No | The user's photos attached in the chat (references to edit or follow) | |
| prompt | Yes | What the image shows, in the user's words, made clear and specific | |
| photoUrls | No | Public https links to photos (JPEG, PNG or WebP) | |
| requestId | No | Optional id (8-64 letters, digits, - or _). The same id never charges twice. | |
| resolution | No | Size. Default: the model's smallest (1K). | |
| photosConsent | No | Needed with photos: true only after the user confirmed everyone in them is the user or agreed, and no one is a child | |
| transparentBackground | No | GPT Image only, text only: a transparent background |
Output Schema
| Name | Required | Description |
|---|---|---|
| creations | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations only mark it as destructive and open-world; the description adds the financially material behavior an agent cannot infer: credits are charged per image, failed generations are refunded, and the image link is normally returned in the same call. It also discloses the 10-minute dedupe window that silently returns the prior result, which materially affects repeat-call behavior beyond idempotentHint=false.
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?
Purpose is front-loaded in sentence one, followed by cost/return behavior, then a numbered pre-call checklist. The only near-redundancy is the public-figure warning echoing the consent rule, which is defensible given the safety stakes.
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 10-parameter, credit-spending, destructive tool with an output schema, this covers prerequisites, cost, safety, and dedupe. The one gap is 'usually returns the finished image link' — the agent is not told what to do in the non-usual case (poll get_run or get_creation).
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, and the description still adds real meaning: the photos-vs-photoUrls choice with format constraints, that 'count' multiplies the credit charge, and that requestId is the lever for deliberately regenerating. It stops short of explaining resolution/aspect trade-offs or the photosConsent default, leaving those to 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 concrete verb and resource ('Make AI images from the user's prompt') and enumerates the three modes: text-to-image, photo editing, and photo combining. It also names the model family (MakeViral Create) and the sibling tool get_model that provides model metadata, so an agent can place it precisely among the siblings.
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 pre-call sequence (pick model via get_model, quote the credit price, obtain consent when photos are involved) plus prohibition rules (no public figures, no non-consenting people, no children). It also explains the alternatives for supplying images ('photos' attachments vs 'photoUrls' public links) and when to supply a new requestId.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_upload_linkGet a photo upload linkAInspect
Make a one-hour link where the user adds the photos for a template on makeviral.ai (on any device). Use it when the user cannot attach photos in this chat. Give the user the link, wait until they say they are done, then call run_template with the returned uploadId.
| Name | Required | Description | Default |
|---|---|---|---|
| version | No | Version id. Default 'main'. | |
| template | Yes | Template slug |
Output Schema
| Name | Required | Description |
|---|---|---|
| url | Yes | |
| slots | No | |
| uploadId | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare the non-read-only, non-idempotent, non-destructive profile. The description adds useful behavior beyond that: the link expires in one hour, works on any device, and returns an uploadId used by run_template; it does not cover auth, rate limits, or link reuse.
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?
Three sentences with no waste: purpose, usage condition, and follow-up workflow are front-loaded and easy to scan.
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 an output schema present, the description needn't explain return values, and it already covers when to use the tool and what to do afterward. Annotations and full schema coverage make this sufficient for correct invocation.
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%, so both template and version are already documented in the schema. The description mentions that the link is for a template but adds no syntax or meaning beyond what the schema provides.
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 and resource: it makes a one-hour photo-upload link tied to a template. It also names the follow-up step with run_template, but it does not explicitly contrast itself with sibling tools beyond that workflow.
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 gives clear usage context: use when the user cannot attach photos in this chat, give them the link, wait, then call run_template with the returned uploadId. It lacks an explicit when-not statement or named alternative for the upload-link path.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_videoMake an AI videoADestructiveInspect
Make an AI video from the user's prompt with a chosen MakeViral Create model (Seedance, Kling, Veo, Wan, Grok Imagine, MiniMax...): from text, from a start frame photo (and an end frame on some models), or from references (photos, clips and sounds), with Kling multi-shot and elements. It spends credits from the user's MakeViral account (a failed video gives them back). A video takes a few minutes: this call returns at once, then call get_creation with wait true until it is ready and give the user the link. Before calling: 1) pick the model and check what it takes with get_model, 2) tell the user the price in credits, 3) with photos or clips, ask the user to confirm the people in them are them or agreed, and that no one is a child. Files: pass files the user attached in this chat (startFrame, endFrame, referencePhotos, referenceSounds), or public https links in the *Url fields. Clips must be links (MP4 or MOV). Never use photos of a public figure or of someone who did not agree. Calling again with the same input within 10 minutes returns the first video; pass a new requestId to make another.
| Name | Required | Description | Default |
|---|---|---|---|
| seed | No | Wan only: repeat a result | |
| count | No | How many videos (each one is charged). Default 1. | |
| model | Yes | Video model id (list_models). seedance-2-5 is a good default. | |
| shots | No | Kling multi-shot: each shot's prompt and length; they add up to the video length | |
| sound | No | Sound on or off where the model has the choice. Default on. | |
| aspect | No | Shape. Default 9:16 (vertical). With a start frame most models follow the photo's shape. | |
| motion | No | Grok Imagine only | |
| prompt | No | What happens in the video. With references, name them as get_model says (e.g. [Image 1]). | |
| clipMode | No | Kling Omni with a clip: 'edit' changes the clip itself (default), 'reference' makes a new video from it | |
| elements | No | Kling 3.0 elements: people or things from 2-4 photos each | |
| endFrame | No | The last frame (models with an end frame), with a start frame | |
| autoShots | No | Kling Omni: the model plans the shots itself | |
| requestId | No | Optional id (8-64 letters, digits, - or _). The same id never charges twice. | |
| webSearch | No | Seedance, text to video only: look things up online | |
| resolution | No | Size. Default: the model's smallest. | |
| startFrame | No | The first frame: a photo the user attached in the chat | |
| durationSec | No | Length in seconds (get_model lists them). Default: the model's default. | |
| endFrameUrl | No | The last frame as a public https photo link | |
| elementPhotos | No | The element photos attached in the chat, element by element in order | |
| keepClipSound | No | With a clip: put the clip's own sound on the result | |
| photosConsent | No | Needed with photos or clips: true only after the user confirmed everyone in them is the user or agreed, and no one is a child | |
| startFrameUrl | No | The first frame as a public https photo link | |
| referenceClips | No | Reference clips (MP4 or MOV) as files, where the chat can attach them | |
| referencePhotos | No | Reference photos attached in the chat (people, products, a style). Never with frames. | |
| referenceSounds | No | Reference sounds (MP3 or WAV) attached in the chat | |
| referenceClipUrls | No | Reference clips as public https links to an MP4 or MOV file | |
| referencePhotoUrls | No | Reference photos as public https links | |
| referenceSoundUrls | No | Reference sounds as public https links |
Output Schema
| Name | Required | Description |
|---|---|---|
| creations | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Goes well past the annotations (destructive/openWorld): it discloses credit spend, refund on failure, asynchronous fire-and-return with a multi-minute completion time, the 10-minute dedup window, and the consent/child/public-figure policy. The requestId note explains the dedup contract that the idempotentHint=false annotation alone would not.
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?
Front-loaded with the core action, then a numbered pre-call checklist and a files paragraph — good structure for a dense tool. It is long and somewhat run-on (the model list and the mode list in one sentence), but nearly every clause carries operational content.
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 28-parameter, nested, asynchronous, credit-spending tool with an output schema and full annotation coverage, the description covers the full lifecycle: preparation, invocation, polling, and delivery of the link. Nothing an agent needs to call it correctly and safely 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 coverage is 100%, so the baseline is 3; the description adds a useful synthesis by grouping the two input paths (files attached in chat vs. public https *Url fields) and the prompt-reference convention. Slight deduction because "Clips must be links (MP4 or MOV)" sits at odds with the referenceClips file-object parameter in the schema, leaving an ambiguity the agent must resolve itself.
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 ("Make an AI video from the user's prompt") plus the supported input modes (text, start/end frame, references) and the model family. It is unambiguously distinct from sibling create_image and from get_model/get_creation, which it names as downstream steps.
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 pre-flight sequence (pick model via get_model, quote the credit price, obtain consent) and an explicit post-call loop (call get_creation with wait true until ready, then give the link). It also states exactly when to reuse vs. generate anew via requestId within the 10-minute window.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_accountShow my creditsARead-onlyIdempotentInspect
Show the signed-in MakeViral account: its first name and credit balance. Every run uses credits, so use it before a run when the price might be more than the balance.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| name | No | |
| credits | Yes | |
| infoUrl | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false, and openWorldHint=false. The description adds useful behavioral context by clarifying that this reads the signed-in account and that runs consume credits, though it does not cover auth mechanics or rate limits.
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?
Two sentences, front-loaded with what the tool returns, followed by the when-to-use condition. Every sentence contributes useful information without repetition.
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 simple no-parameter read tool with an output schema, the description provides sufficient context: it names the account scope, the returned fields, and the practical reason to call it before a run.
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 there is no parameter semantics burden. The schema is empty and the description correctly does not invent parameters or misuse schema space.
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 names a specific verb and resource: 'Show the signed-in MakeViral account.' It also specifies the exact fields returned, 'first name and credit balance,' making it clearly distinct from sibling tools such as create_image, get_run, or list_models.
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 gives clear usage context: 'use it before a run when the price might be more than the balance.' This tells the agent when to call it, but it does not explicitly name alternatives or when not to use it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_creationCheck an image or videoARead-onlyIdempotentInspect
Check images or videos started with create_image or create_video: status, minutes left, and the finished link when ready. With wait true the call waits up to 40 seconds for them to finish, so you can wait for the result in the same answer and then give the user the link.
| Name | Required | Description | Default |
|---|---|---|---|
| id | No | One id (instead of ids) | |
| ids | No | Ids from create_image or create_video, e.g. 'vid_...' | |
| wait | No | Wait up to 40 seconds for them to finish. Default false. |
Output Schema
| Name | Required | Description |
|---|---|---|
| creations | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, destructiveHint=false, and openWorldHint=false. The description adds useful behavior: polling semantics, a 40-second wait, and what is returned when ready. It does not cover error/not-ready edge cases, but it adds meaningful 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?
Two sentences with no wasted language, and the core purpose is front-loaded before the wait behavior. Every clause contributes either scope or practical usage information.
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?
The tool has rich annotations and an output schema, and the description still complements them with async polling and wait behavior. It lacks explicit routing away from list_creations, but it is otherwise complete for an agent to call it 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?
Schema description coverage is 100%, so id, ids, and wait are already fully documented in the schema. The description only restates the wait behavior and gives a usage rationale; it does not clarify id vs. ids or the max-4 constraint, so 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?
States a specific verb and resource: check images or videos started with create_image or create_video. It also enumerates the returned information (status, minutes left, finished link), which distinguishes it from creation and listing siblings.
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?
Explains when to use it: after starting a creation, and optionally with wait=true to get the result in the same answer. It does not explicitly name list_creations as an alternative or state when not to use this tool, so it falls 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_modelShow a model and its pricesARead-onlyIdempotentInspect
Show one MakeViral Create model: the shapes, sizes and lengths it makes, the photos, clips and sounds it takes, special inputs (end frame, multi-shot, elements, motion style), and the price in credits for every size and length. With resolution, durationSec and count it also gives the exact price of that choice, so you can tell the user before create_image or create_video.
| Name | Required | Description | Default |
|---|---|---|---|
| count | No | Optional, how many to price | |
| model | Yes | Model id from list_models | |
| resolution | No | Optional, to price one choice: e.g. '2K' (image) or '720p' (video) | |
| clipSeconds | No | Optional, seconds of a reference clip (they add to the price) | |
| durationSec | No | Optional, video length to price | |
| referencePhotos | No | Optional, video reference photos (one model charges for more than 5) |
Output Schema
| Name | Required | Description |
|---|---|---|
| model | Yes | |
| quote | No | |
| prices | Yes | |
| account | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly/idempotent/non-destructive, so the safety profile is covered. The description goes beyond them by disclosing conditional behavior: the base response enumerates capabilities and the full price table, while supplying resolution/durationSec/count yields an exact price for that specific choice. No return format or pagination details, but the output schema covers returns.
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?
Front-loaded with the core action and resource, then a second sentence explaining the pricing-mode payoff. Dense but every clause carries information; the capability enumeration is slightly list-heavy but appropriate for what the tool returns.
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?
An output schema exists, so the description needn't document return shapes, and it still summarizes them. With annotations covering safety and 100% schema coverage, nothing an agent needs to select and invoke this 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 coverage is 100%, so the baseline is 3. The description adds value above baseline by explaining how the optional parameters combine (resolution + durationSec + count) to narrow a full price table down to one exact quote, which the per-parameter descriptions do not state.
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 ('Show one MakeViral Create model') and enumerates the resource's contents: input shapes/sizes/lengths, accepted media types, special inputs, and per-size/length credit prices. This clearly distinguishes it from list_models (plural listing) and from create_image/create_video (which it precedes).
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 frames the use case: get pricing so you can tell the user before calling create_image or create_video, naming both alternatives. It stops short of stating exclusions (e.g. 'don't call for a model list' or 'no need to re-fetch once priced'), so it's clear but not fully rule-based.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_runCheck a runARead-onlyIdempotentInspect
Check a MakeViral run started with run_template: its status, minutes left, and the finished video or photo link when it is ready. With wait true the call waits up to 40 seconds for the run to finish, so you can wait for the result in the same answer and then give the user the link.
| Name | Required | Description | Default |
|---|---|---|---|
| wait | No | Wait up to 40 seconds for the run to finish before answering. Default false. | |
| runId | Yes | The run id from run_template, e.g. 'tr_ag...' |
Output Schema
| Name | Required | Description |
|---|---|---|
| run | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent, non-destructive behavior, and the description adds important runtime semantics: wait=true blocks for up to 40 seconds so the result can be returned in the same response. It also clarifies what the tool returns operationally (status, minutes left, final link), which goes beyond the safety 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?
Two tightly written sentences with no waste. The core purpose and the wait behavior are front-loaded, and the second sentence explains the practical benefit of waiting rather than repeating schema details.
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?
The tool has an output schema and rich annotations, so the description does not need to explain return structure or safety. It covers the key remaining behavioral fact — the optional blocking wait — and clearly identifies what the run check provides, making it complete enough for correct invocation.
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 both parameters. The description still adds purpose-level meaning to wait by explaining that it waits up to 40 seconds and lets the agent give the user the link in the same answer; runId is only implied via 'started with run_template'.
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 gives a specific verb+resource: check a MakeViral run started with run_template, returning status, minutes left, and the finished video/photo link. It clearly distinguishes checking an existing run from starting one via run_template, but does not explicitly contrast with list_runs or get_creation.
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 states the core usage context: check a run that was started with run_template, and optionally use wait=true to block for up to 40 seconds and return the link in the same answer. It does not explicitly state when not to use this tool versus list_runs or get_creation, so it stops short of full when/when-not guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_templateShow a templateARead-onlyIdempotentInspect
Show one MakeViral template: what it makes, its versions (for example solo, with a friend, with a pet), the photos each version needs in order, quality options, optional 'make it yours' fields, the price in credits, the user's credit balance when signed in, and an example clip. Use it when the user names or picks one template. Call it before run_template so you pass the right version and photos, and tell the user the price in credits.
| Name | Required | Description | Default |
|---|---|---|---|
| slug | Yes | Template slug from search_templates, e.g. 'knight-cat-ai-video' |
Output Schema
| Name | Required | Description |
|---|---|---|
| account | No | |
| template | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare it as read-only, idempotent, closed-world, and non-destructive. The description adds substantial context beyond that: it lists the template details returned, notes that credit balance appears when signed in, and instructs the agent to tell the user the price in credits. It does not contradict any annotation.
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 what the tool shows and then gives usage guidance. It is somewhat list-heavy in enumerating return values despite having an output schema, but the details are relevant and there is little wasted wording.
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 rich annotations, a complete input schema, and an output schema, the description supplies the remaining context an agent needs: when to call it, its relationship to run_template, and the user-facing instruction to disclose price in credits. Nothing critical 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?
There is one required parameter with 100% schema description coverage. The schema already explains that slug comes from search_templates, and the description does not add syntax or format details beyond that baseline.
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 verb and resource: show one MakeViral template. It distinguishes this from sibling tools by saying to use it when the user names or picks one template and to call it before run_template, so an agent can tell it apart from search/list/run operations.
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 gives clear usage context: use when the user names or picks one template, and call it before run_template to pass the right version and photos. It does not explicitly say when not to use it or name search_templates as the alternative for finding an unknown template, though the schema references search_templates for the slug.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_creationsList my images and videosARead-onlyIdempotentInspect
List the user's latest MakeViral Create images and videos (newest first) with their status and links. Template runs are in list_runs.
| Name | Required | Description | Default |
|---|---|---|---|
| kind | No | ||
| limit | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| creations | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent, non-destructive, and closed-world, so the safety profile is covered. The description still adds genuine behavior beyond that: results are the user's own creations (not template runs), ordered newest first, and include status and links. It doesn't mention that the result set is capped or what happens past the limit, which is the remaining gap.
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?
Two sentences, zero waste, with the core purpose front-loaded and the sibling disambiguation placed after it. Nothing redundant with the title or annotations.
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?
An output schema exists, so the description needn't explain return values, and annotations cover the safety profile; the description is complete on scope and ordering. The only real shortfall is the unaddressed limit/kind semantics, which matters because no default behavior for pagination is stated.
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 0% for two parameters, so the description carries the burden and largely doesn't: the phrase 'images and videos' hints at the kind filter but never names it, and the limit parameter (default 10, max 20) is never referenced at all. Neither enum semantics nor bounds are clarified 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 (list), a specific resource (the user's MakeViral Create images and videos), plus ordering and return content (newest first, status and links). It also explicitly carves itself away from list_runs by noting template runs live there, so an agent can distinguish it from siblings without opening schemas.
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 sentence 'Template runs are in list_runs' gives an explicit alternative and the condition that selects it, which is the main ambiguity risk among siblings. It doesn't address when to use this versus get_creation for a single known item, so it stops short of full routing guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_modelsList AI image and video modelsARead-onlyIdempotentInspect
List the AI models of MakeViral Create (makeviral.ai/create): image models (Nano Banana, GPT Image, Seedream, Flux...) and video models (Seedance, Kling, Veo, Wan, Grok Imagine, MiniMax...) with what each takes and its lowest price in MakeViral credits. Use it when the user asks MakeViral for an image or a video from their own idea (not a trend template), wants a specific model such as Kling, Veo or Seedance, or asks which MakeViral model to use. Then use get_model for one model's full rules and prices, and create_image or create_video to make it.
| Name | Required | Description | Default |
|---|---|---|---|
| kind | No | Only image models or only video models |
Output Schema
| Name | Required | Description |
|---|---|---|
| models | Yes | |
| account | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, destructiveHint=false and a closed-world scope, so the safety profile needs no restating. The description adds real value by disclosing what comes back for each entry (what inputs the model takes and its lowest price in MakeViral credits) and by placing the call in a workflow. It stops short of describing ordering or pagination, so it is not a 5.
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?
Front-loads the resource and coverage before the usage triggers, and every sentence contributes scope, triggers, or next steps. The long parenthetical model lists are the one place it drifts toward enumeration for its own sake, slightly inflating length.
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?
Output schema exists, annotations cover the read-only safety profile, and the only parameter is fully described in the schema, so the description's job is chiefly routing and scope. It delivers both, including the credit-pricing detail a caller would otherwise have to discover, leaving nothing essential 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 coverage is 100% and the single 'kind' enum parameter is already documented in the schema as 'Only image models or only video models'. The description implies the image/video split through its naming, but never tells the agent that the filter parameter exists or when to set it. Baseline 3 is appropriate since the schema carries the semantics.
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 AI models of MakeViral Create) and enumerates the two model categories with concrete examples. It explicitly contrasts itself with get_model, which handles a single model, so an agent can separate the two without opening sibling schemas.
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 three concrete trigger conditions (user supplies their own idea rather than a trend template, names a specific model like Kling/Veo/Seedance, or asks which model to use) and then names the follow-on tools: get_model for details, create_image/create_video to execute. The when-to-use and what-to-do-next are both explicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_runsList my runsARead-onlyIdempotentInspect
List the user's latest MakeViral template runs (newest first) with their status and result links.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| runs | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false and a closed-world scope, so the safety profile is fully covered. The description's real contribution is the 'newest first' sort order, which annotations can't express; it says nothing about truncation or what happens beyond the limit.
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?
One sentence, no waste, with the resource and ordering front-loaded where an agent scanning the list will see them first.
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 an output schema covering return values and annotations covering safety, the description only needs scope and ordering, both of which it supplies. It is thin on the lone parameter, but nothing required 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 coverage is 0% and the description never mentions the single 'limit' parameter, so it adds no explicit parameter meaning. However, the schema itself carries default=10, minimum=1 and maximum=20, making the parameter close to self-documenting, and 'latest' loosely implies bounded recency rather than full history.
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?
Specific verb+resource ('List ... template runs') plus scope ('the user's latest'), ordering ('newest first'), and returned fields ('status and result links'). It clearly separates itself from get_run (single run) and list_creations (a different resource), though it never names those siblings explicitly.
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 phrase 'latest ... runs' implies this is the browse/recent-activity view as opposed to get_run's single-record lookup, but the choice is left to inference. There is no explicit 'use this when...' statement and no exclusion of alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
run_templateMake a trend video or photoADestructiveInspect
Make a MakeViral trend video or photo from the user's photos. It spends the version's credits from the user's MakeViral account (a failed run gives them all back). A photo is usually ready in this call and the result has the link. A video takes a few minutes: then call get_run with wait true until it is ready, and give the user the link. Before calling: 1) pick the template and version with get_template, 2) tell the user the price in credits, 3) ask for exactly the photos that version needs, in its order, 4) ask the user to confirm the people in the photos are them or people who agreed, and that no one in them is a child. Photos: pass the files the user attached in this chat as photos, OR public image links as photoUrls, OR an uploadId from create_upload_link when the user cannot attach files here. Never use photos of a public figure or of someone who did not agree.
| Name | Required | Description | Default |
|---|---|---|---|
| fields | No | Optional 'make it yours' values by field id (get_template lists them) | |
| object | No | Knight sword swap only: the object one knight hands the other | |
| photos | No | The user's photos attached in the chat, in the version's photo order | |
| quality | No | Quality option id from get_template. Default: the template's default option (listed first). | |
| version | No | Version id from get_template. Default 'main'. | |
| template | Yes | Template slug, e.g. 'knight-cat-ai-video' | |
| uploadId | No | The id from create_upload_link, after the user added the photos there | |
| photoUrls | No | Public https links to the photos (JPEG, PNG or WebP), in the version's photo order | |
| requestId | No | Optional id (8-64 letters, digits, - or _). The same id never charges twice. Without it, the same request within 10 minutes returns the first run; pass a new id to make it again with the same photos. | |
| photosConsent | Yes | true only after the user confirmed that everyone in the photos is the user or agreed to it, and that no one is a child |
Output Schema
| Name | Required | Description |
|---|---|---|
| run | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Goes well beyond the annotations: it discloses credit spend and refund on failure, that the result carries a link, and that videos are asynchronous and need polling. Minor gap is that it does not quantify cost or describe what a failed run reports back, though the output schema covers returns.
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?
Front-loaded with the core action and timing, then a numbered prerequisite checklist that earns its place. The closing sentence on public figures and consent slightly repeats the earlier consent requirement, but overall density is high.
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 destructive, costly, 10-parameter tool with nested objects, the description covers preconditions, consent/legal constraints, credit implications, input alternatives, and async polling behavior. Return values are covered by the output schema, so 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?
Schema coverage is already 100%, so the baseline is 3; the description adds real meaning by explaining that photos must be in the version's photo order and that photoUrls/uploadId are alternative sources. It does not add information on fields, object, quality, or version beyond what the schema already carries.
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+resource ('Make a MakeViral trend video or photo from the user's photos') and anchors it to templates/versions and credits. It does not explicitly contrast itself with siblings like create_image or create_video, so the agent must infer which creation path to take.
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 pre-call sequence (get_template, quote price, collect photos in version order, confirm consent) and a post-call branch: photo returns inline, video requires polling get_run with wait=true. It also names the three mutually exclusive photo input methods (photos / photoUrls / uploadId) with the condition selecting each.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_templatesFind trend templatesARead-onlyIdempotentInspect
Find MakeViral trend templates: viral AI video and photo trends (knight cat, hotel lobby walk, Halloween costumes, dance reels...) that turn the user's own photos of themselves, their partner, friends or pets into a short video or photo. Use it when the user wants a trend video, asks what they can make from a photo, or names a TikTok or Instagram trend. Results are sorted by popularity and show an example clip, the photos needed and the price in MakeViral credits. With no query it returns the most popular templates. Suggest a few that fit and say that each one costs credits from the user's MakeViral account, then use get_template when the user picks one.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| query | No | Words for the trend or idea, e.g. 'knight cat', 'halloween couple', 'dance' | |
| output | No | ||
| season | No | e.g. 'halloween' | |
| subject | No | Who or what is in the photos (product = a brand ad from a product photo and a logo) |
Output Schema
| Name | Required | Description |
|---|---|---|
| account | No | |
| templates | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly/idempotent/non-destructive, so safety is covered; the description adds ordering (sorted by popularity), the shape of each result (example clip, required photos, credit price), and the no-query default. It does not mention result caps or how filters combine, which is a minor gap for a 5-param search.
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?
Front-loaded with purpose, then usage, then behavioral detail, ending with the recommended follow-up action. The example lists in the first sentence are somewhat padded, but each sentence still carries distinct information.
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?
An output schema exists, so return-value explanation is a bonus rather than a requirement; the description nonetheless covers results, cost model, and next step. What is missing is modest: how many results to expect and how limit interacts with popularity sorting.
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?
With 60% schema coverage, the description adds real meaning: it maps "photos of themselves, their partner, friends or pets" onto the subject enum and ties output to "video or photo," and explains the empty-query case for the query parameter. Only limit and season semantics remain implicit.
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 ("Find MakeViral trend templates") and immediately explains the resource with concrete examples of what a template is (knight cat, hotel lobby walk, dance reels). It is clearly distinguished from lookup siblings like get_template and list_models.
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 triggers ("user wants a trend video, asks what they can make from a photo, or names a TikTok or Instagram trend") plus the no-argument default behavior. It also hands off to the correct next tool: "use get_template when the user picks one".
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
suggest_templateSuggest a new templateAInspect
Send MakeViral a trend or idea that has no template yet, so the team can add it. Use it when search_templates finds nothing that fits what the user wants, and only after the user agrees. Include the TikTok or Instagram link of the trend when the user has one.
| Name | Required | Description | Default |
|---|---|---|---|
| idea | Yes | The trend or idea in one or two sentences | |
| link | No | Optional https link to an example of the trend |
Output Schema
| Name | Required | Description |
|---|---|---|
| received | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations already cast this as a non-read-only, non-destructive, non-idempotent submission, and the description reinforces that by noting the request goes to a human team, which implies a durable side effect rather than a lookup. The confirmation requirement ('only after the user agrees') is genuinely useful behavioral context that the annotations cannot express. What is missing is what happens after submission, e.g. whether the user gets a response or tracking, and whether duplicate ideas are merged or rejected.
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?
Two sentences, with the core action first, the trigger condition second, and the optional detail last, so nothing important is buried. There is no filler and no restatement of the title.
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 two-parameter submission tool with an output schema and full annotation coverage, this covers the action, the trigger, the user-consent gate, and the optional payload detail. Nothing an agent needs in order to call it 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 coverage is 100%, so the baseline would be 3, but the description adds real meaning by narrowing the optional link to TikTok or Instagram examples of the trend, which is more specific than the schema's generic 'optional https link'. It also implicitly frames 'idea' as a trend or concept pitch rather than a template name.
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?
A concrete verb-and-resource pair ('Send MakeViral a trend or idea that has no template yet') with the resulting action explained ('so the team can add it'). It also distinguishes itself from the sibling tool that otherwise looks similar, search_templates, so an agent can choose between them without opening a 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?
This gives an explicit trigger ('when search_templates finds nothing that fits') and an explicit gate ('only after the user agrees'), so both the condition for calling and the condition for not calling are spelled out. It also tells the agent what to include ('the TikTok or Instagram link ... when the user has one'), which is a usage instruction, not just a parameter restatement.
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.
14 tool updates
- First observed
create_image - First observed
create_upload_link - First observed
create_video - First observed
get_account - First observed
get_creation - First observed
get_model - First observed
get_run - First observed
get_template - First observed
list_creations - First observed
list_models - First observed
list_runs - First observed
run_template - First observed
search_templates - First observed
suggest_template
Related MCP Connectors
Marketing videos for your business: 150+ searchable viral templates, scripts, AI characters.
AI photos from a selfie across 150+ themes, plus 19 image edits and AI video.
AI meme video templates: how-tos, recommended settings, example prompts and FAQ. Free, no key.
AI video generator: make TikTok, Reels and Shorts videos with voiceover and captions, and post them.
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.55 npm1MIT
- AlicenseAqualityDmaintenanceAI tools for short-form video creators (TikTok, Instagram Reels, YouTube Shorts, Facebook Reels) — viral trend search, video analysis info, content strategy use cases.328 npm1MIT
- AlicenseNot gradedqualityDmaintenanceGenerates logos, social media posts, app-store screenshots, comic panels, and visual-novel assets from natural-language prompts using 119 templates.MIT
- AlicenseAqualityCmaintenanceCreate AI-powered short-form video clips from YouTube videos using any AI assistant. 9 tools for creating shorts, browsing caption templates, music, gameplay overlays, and meme hooks.9191 npm7MIT
Glama MCP Gateway
Add one secure layer between your agents and this server.