Replicate-MCP-Server
The Replicate-MCP-Server gives any MCP client (Claude Desktop, Cursor, VS Code, Cline, etc.) native access to the full Replicate AI model catalog through 36+ task-oriented tools, with automatic output downloads and built-in cost awareness.
Image Generation & Editing
Generate images from text using Flux, Stable Diffusion, Recraft, Ideogram, Imagen 3, and more
Upscale images (Real-ESRGAN, Clarity, SwinIR, GFPGAN), remove backgrounds (rembg, BiRefNet, BRIA), and inpaint/outpaint (Flux Fill, SD, Ideogram)
Segment images with SAM 2 or Grounded-SAM (point/box/text-prompt)
Video Generation
Text/image-to-video using Kling, Minimax, Hunyuan, Luma Ray, Wan 2.2, and others
Create lipsync/talking avatar videos from a portrait image + text or audio
Audio & Speech
Generate music (MusicGen, ACE-Step, Riffusion, MiniMax Music, Google Lyria)
Text-to-speech (Kokoro, Minimax Speech, Chatterbox, Gemini TTS, Grok TTS)
Voice cloning from reference audio (XTTS v2, OpenVoice v2)
Transcribe audio/video with Whisper, WhisperX, Distil-Whisper, or ElevenLabs Scribe
AI & Language
Chat with LLMs: Llama 3.1 405B, Llama 3 70B/8B, Mistral, Mixtral, DeepSeek-R1
Analyze/caption images with vision models (LLaVA, BLIP-2, Qwen2-VL)
Compute text embeddings for RAG/semantic search (BGE, Jina v3, all-MiniLM)
3D Generation
Generate 3D meshes (GLB/OBJ) from text or images via Hunyuan 3D, Rodin, or TripoSR
Orchestration & Workflow
Run up to 50 concurrent predictions as a background batch job
Execute multi-step DAG pipelines where outputs chain between steps
Poll status, cancel predictions, and retrieve results for async jobs
Model Discovery & Cost
Search the Replicate catalog by free-text query and inspect input schemas
Get model recommendations by priority (speed/cost/quality/balanced)
Estimate USD cost before running any prediction
Discover new popular models outside the curated registry
Run any Replicate model as a generic escape hatch
Fine-Tuning & Deployments
Create, monitor, and cancel training runs (e.g., Flux LoRA fine-tunes)
List, inspect, and run predictions against private Replicate deployments
Utility
Upload local files or base64 data to Replicate storage for use as model inputs
Auto-download generated outputs (images, video, audio, 3D) to disk with local paths and URLs
Supports stdio and HTTP/SSE transport for local and remote/multi-user deployments
Multi-token round-robin for team rate-limit management and webhook-driven completion
Provides tools to interact with the Replicate platform, enabling generation of images, videos, audio, speech, text, and more through various models, as well as managing predictions, trainings, and deployments.
Replicate MCP Server
A universal, cross-platform MCP server that gives any MCP client — Claude Desktop, the claude.ai web app (Connectors), Cursor, Cline / Continue in VS Code, or your own application — native access to the full Replicate catalog: image generation, video, music, speech, upscaling, segmentation, LLMs, voice cloning, 3D, lipsync — anything Replicate hosts.
It speaks both transports: stdio (the standard for local desktop/editor integrations) and HTTP/SSE (for remote/web clients and your own services).
Once connected to your MCP client, you can simply ask:
"Generate a cinematic shot of a lighthouse in a storm, 21:9" "Write a 30-second synthwave track" "Make a 5-second video of a paper airplane flying through a city" "Read this paragraph in a British male voice" "Upscale this image 4x"
…and the assistant calls the right Replicate model, waits for the result, and (on local/stdio setups) downloads the output to your machine.
Install
Fastest — one-click via Smithery (): open the server page and copy the Install snippet for your client (Claude, Cursor, VS Code, Cline, Windsurf, …). It wires the server in and prompts for your Replicate token. (Routes through Smithery's hosted gateway — easiest, zero local setup.)
Token-private — npm + stdio (your Replicate token never leaves your machine):
npx -y replicate-mcp-server…or drop it into any MCP client's config (full walkthrough under Installation).
Claude Desktop one-file install: download the latest .mcpb from Releases and drag it onto Claude Desktop.
Already running (bring your own token): https://replicate-mcp.sena-labs.dev/mcp — HTTP/SSE, multi-tenant; pass your token in the x-replicate-api-token header.
Once connected, try the example prompts below.
Related MCP server: Aetherwave Studio
Try it
Once your client is connected, ask in plain language — the assistant picks the right tool, waits for the result, and downloads the output locally:
"Generate a cinematic shot of a lighthouse in a storm, 21:9" "Which is the cheapest model for a 5-second video? Then use it." — recommend → generate "Make 4 logo variations of a fox, flat vector style" — batch (concurrent) "Transcribe this audio, summarise it, then read the summary aloud" — DAG pipeline "Upscale this image 4×" · "Write a 30-second synthwave track" · "Read this in a British male voice" "Kick off a Flux LoRA fine-tune on my dataset and tell me when it's done" — training
Discovery tools (replicate_recommend_model, replicate_search_models, replicate_estimate_cost) and the 5 built-in workflow prompts help it chain multi-step jobs without you naming models.
What's inside
36 tools and 66 curated models, designed to be both ergonomic for common cases and fully open-ended for everything else. Every generate/run tool waits for completion and auto-downloads the outputs to your machine — you ask once and get back local files, not a job id to babysit:
Curated generation tools
Tool | Purpose |
| Text → image. Curated: Flux Schnell / Dev / Pro / 2-Max, SD 3.5, Recraft v3 / v4.1, Seedream, Ideogram v2, Imagen 3. |
| Text (or image) → video. Curated: Kling Pro, Minimax, Hunyuan, Luma Ray, Wan 2.2, Grok Video, Seedance. |
| Text → music / songs. Curated: MusicGen, ACE-Step (full songs with lyrics), Riffusion, MiniMax Music. |
| Text → speech (TTS). Curated: Kokoro, Minimax Speech, Chatterbox, Gemini TTS, Grok TTS. |
| Text → text via LLM. Curated: Llama 3.1 405B, Llama 3 70B / 8B, Mistral 7B, Mixtral 8x7B, DeepSeek-R1. |
| Image → text. Curated: LLaVA 13B / 1.6 34B, BLIP-2, Qwen2-VL. |
| Image → higher-res image. Curated: Real-ESRGAN, Clarity Upscaler, Clarity Pro, SwinIR, GFPGAN. |
| Image → transparent PNG. Curated: rembg, BiRefNet, BRIA RMBG. |
| Audio/video → text. Curated: Whisper, Distil-Whisper, WhisperX (diarization), ElevenLabs Scribe. |
| Mask-based image edit. Curated: Flux Fill Pro, SD inpaint, Ideogram v2 edit. |
| Image → mask. Curated: SAM 2, Grounded-SAM (text-prompt). |
| Text(s) → vector embeddings. Curated: BGE, Jina v3, MPNet. |
Voice, 3D, and avatar tools
Tool | Purpose |
| Text + reference sample → speech in a cloned voice. Curated: XTTS v2, OpenVoice v2. |
| Text or image → 3D mesh (GLB/OBJ). Curated: Hunyuan 3D, Rodin, TripoSR. |
| Portrait + text/audio → lip-synced talking video. Curated: Video Avatar, SadTalker. |
Orchestration tools
Tool | Purpose |
| Run up to 50 predictions concurrently as a background job; poll progress + results. |
| Run a DAG of predictions — independent steps in parallel, downstream steps wired via |
| Rank curated models in a category by priority (speed / cost / quality / balanced) with cost estimates — advises which model to use. |
| Discover popular Replicate models not yet in the curated registry. |
Fine-tuning (trainings)
Tool | Purpose |
| Kick off a fine-tune / training run on a trainable base model (e.g. a Flux LoRA) with your dataset + parameters. |
| Poll a training by id (status, logs, resulting model version). |
| List your recent training runs (id, model, status, timestamps). |
| Cancel an in-progress training run by id. |
Deployments
Tool | Purpose |
| List your Replicate deployments (owner/name, current model + version). |
| Inspect one deployment (model, version, hardware, autoscaling min/max). |
| Run a prediction against a deployment — waits for completion and auto-downloads the outputs, same as the curated generate tools. |
Prediction management + cost
Tool | Purpose |
| Recent prediction history (id, model, status, timestamps). |
| Cancel an in-progress async job by id. |
| Pre-call USD estimate from a curated price table. |
Generic / discovery tools
Tool | Purpose |
| Run any Replicate model with arbitrary inputs (escape hatch for anything not covered by a curated tool). |
| Free-text search across the Replicate catalog. |
| Get the OpenAPI input schema for any model. |
| Poll a long-running prediction (videos, long songs). |
| Upload a file to Replicate storage (by local |
Outputs:
Image / video / audio: downloaded to
~/Downloads/replicate-mcp/<model>/<prediction_id>/(configurable). Local paths and original Replicate URLs are both returned. For images, the response also includes an inline base64 preview (sized to stay under Claude Desktop's 1 MB tool-result limit; larger images fall back to the URL embed) plus three embed snippets (<details>-wrapped iframe viewer with Save button, responsive<img>, or markdown image) so the chat client can render the result inline at full size.Text (LLM, vision, classifier): the model's reply is surfaced in
text_outputand printed at the top of the tool response so Claude can read it directly.
Editing an image you have on hand
The editing tools (replicate_upscale_image, replicate_inpaint, replicate_remove_background, replicate_vision, image-to-video, lipsync, 3D-from-image) all take a URL. To turn a file into a URL, use replicate_upload_file:
You have a local path (Claude Desktop):
replicate_upload_file({ file_path: "C:/Users/you/photo.jpg" })→ URL → pass to the editing tool. If an image is dragged/pasted into the chat, save it to disk first — the server cannot read chat attachments directly, and Claude Desktop cannot reproduce a large image's exact bytes as a tool argument.You have the bytes in memory (claude.ai web with a code container): read the uploaded file in the container, base64-encode it, then
replicate_upload_file({ base64_data: "data:image/png;base64,..." })→ URL → editing tool.base64_dataaccepts a bare base64 string or a fulldata:<mime>;base64,...URI.You already have a URL: pass it straight to the editing tool — no upload needed.
Why this over the official Replicate MCP?
Replicate ships its own official MCP (replicate-mcp on npm, hosted at mcp.replicate.com). It's a great, free, always-up-to-date 1:1 bridge to the REST API — Stainless-generated from Replicate's OpenAPI spec, ~37 generic tools that mirror each endpoint (account, collections, deployments, files, hardware, models, predictions, trainings, webhooks), plus a --tools=dynamic mode and a Deno "Code Mode" sandbox.
This server is built for a different job. The official MCP is a thin, generic API bridge: to make an image you call create_predictions with a raw model id and raw input JSON, and the LLM has to look up each model's input schema itself; it returns starting and does not wait or download (you opt into Prefer: wait, capped at 60s, then poll manually). This server is a batteries-included creative studio: task-oriented tools with sane defaults, a curated model registry, built-in orchestration, and cost awareness — every generate/run tool waits for completion and auto-downloads the outputs locally.
Axis | Official Replicate MCP | This server (sena-labs) |
Philosophy | Thin generic API bridge (1:1 REST) | Task-oriented creative studio |
Tools | ~37 generic REST tools (+ dynamic/code modes) | 36 task tools ( |
Media helpers | None — raw | Purpose-built tools with sane defaults (aspect ratio, etc.) |
Run UX | Returns | Waits for completion AND auto-downloads outputs locally |
Model curation | None — you supply the model + look up its schema yourself | 60+ curated models + |
Orchestration | None | Async batch ( |
Cost | None |
|
Fine-tuning + deployments | Yes (generic REST) | Yes — |
Extras | OAuth, auto-sync to API | 5 workflow prompts + 2 MCP resources (catalog + capabilities) |
REST breadth | Broader raw coverage (collections, files, hardware, webhooks, account) | Focused on creative tasks + the orchestration/cost layer on top |
Hosted / official | Official, free, hosted at | Self-hostable, multi-tenant (per-user token), stdio + HTTP/SSE |
In short: the official MCP is the right tool if you want exhaustive, always-current raw REST access (and a free hosted endpoint with OAuth). This server is the right tool if you want a curated, orchestrated, cost-aware creative workflow where you describe what you want and get finished files back — no schema lookups, no manual polling, no manual downloads. They're complementary: use the official one for full-surface API plumbing, use this one for getting creative work done.
Prerequisites
Node.js ≥ 20 (uses native
fetchand Web Streams)A Replicate account with an API token: https://replicate.com/account/api-tokens
An MCP client — e.g. Claude Desktop (macOS/Windows/Linux), the claude.ai web app, Cursor, Cline / Continue (VS Code), or any custom MCP host. The walkthrough below uses Claude Desktop as the example; the same
command/args/envblock works in any client's MCP config. For remote/web clients, see HTTP / SSE transport.
Installation
1. Clone and build
git clone <this-repo> replicate-mcp-server
cd replicate-mcp-server
npm install
npm run buildThis produces dist/index.js, which is the server entry point.
2. Get your Replicate API token
Click Create token
Copy the token (starts with
r8_...)
3. Connect it to your MCP client (Claude Desktop shown)
The MCP command / args / env block below is identical across clients — only the location of the config file differs (Cursor: ~/.cursor/mcp.json; Cline/Continue: the extension's MCP settings; custom hosts: your own launcher). For Claude Desktop, find your config file:
macOS:
~/Library/Application Support/Claude/claude_desktop_config.jsonWindows:
%APPDATA%\Claude\claude_desktop_config.jsonLinux:
~/.config/Claude/claude_desktop_config.json
Add the replicate entry (merge with anything already there):
{
"mcpServers": {
"replicate": {
"command": "node",
"args": ["/ABSOLUTE/PATH/TO/replicate-mcp-server/dist/index.js"],
"env": {
"REPLICATE_API_TOKEN": "r8_your_token_here"
}
}
}
}⚠️ Use the absolute path to
dist/index.js. Tildes (~) and relative paths don't work in this config.
Optional: set a custom download directory:
"env": {
"REPLICATE_API_TOKEN": "r8_...",
"REPLICATE_DOWNLOAD_DIR": "/Users/you/my-replicate-outputs"
}4. Restart Claude Desktop
Fully quit and reopen Claude Desktop. You should see "replicate" listed in the tools panel (the hammer icon at the bottom of the chat).
VS Code (native MCP)
VS Code has built-in MCP support. This repo ships a ready-to-use .vscode/mcp.json that runs the published npm package locally and prompts for your token (stored masked, never written to the file):
{
"inputs": [
{ "type": "promptString", "id": "replicate_token", "description": "Replicate API token", "password": true }
],
"servers": {
"replicate": {
"type": "stdio",
"command": "npx",
"args": ["-y", "replicate-mcp-server"],
"env": { "REPLICATE_API_TOKEN": "${input:replicate_token}" }
}
}
}Open the file in VS Code and click Start above the replicate server (or run MCP: List Servers). VS Code asks for the token once.
Note on the Smithery "One-Click Install": it wires VS Code to Smithery's hosted gateway (
mcp.smithery.run), which runs the server on Smithery's infrastructure and would route your personal Replicate token through it on every call. For a personal API token, prefer the local stdio config above — the token never leaves your machine.
Usage examples
Once connected, just talk to your assistant naturally (examples use Claude phrasing, but any MCP-capable assistant works):
Images
Generate an origami fox in a misty forest, 16:9 aspect ratio.
High-quality images with text
Make a logo for a coffee shop called "Crema" — use Recraft.
Video
Create a 5-second video of a paper airplane gliding through a neon-lit city. Use Kling Pro.
(Videos take 1–5 minutes. If the call times out, Claude will automatically poll with
replicate_get_prediction.)
Music
Write a 20-second instrumental synthwave loop with a heavy bassline.
Songs with lyrics
Use the ACE-Step model to generate a sad indie-folk song with these lyrics: [...]
Speech
Read this paragraph in a British female voice: [...]
Chat with an LLM
Ask Llama 3 70B to explain quantum entanglement in two sentences.
Image understanding
Look at this photo [URL] and tell me what objects are in the foreground.
Upscale
Upscale this image 4x with Real-ESRGAN: [URL]
Background removal
Cut the background out of this product photo: [URL]
Anything else
Search Replicate for "speech to text", then transcribe this audio: [URL]
(Claude picks Whisper via
replicate_search_models→replicate_run_model.)
How async predictions work
Image generation usually finishes in seconds. Video, long music, and some heavy models can take minutes. The server handles this transparently:
You call
replicate_generate_video.The server waits up to
timeout_ms(default 5 minutes) by polling Replicate every 2 seconds.If it finishes in time → you get URLs and local paths.
If it doesn't → you get back
pending: trueand aprediction_id. Claude can callreplicate_get_predictionlater to retrieve the result.
You can bump timeout_ms up to 30 minutes if you want to wait inline:
Generate a 10-second Hunyuan video. Wait up to 20 minutes.
Configuration
Environment variable | Default | Purpose |
| (required) | Your Replicate API token. |
|
| Where to save generated files. |
Costs
Replicate charges per second of compute, varying by model. Approximate costs:
Flux Schnell image: ~$0.003
Flux Dev image: ~$0.025
Flux 1.1 Pro image: ~$0.04
Kling 1.6 Pro 5-second video: ~$0.45
MusicGen 30-second clip: ~$0.05
Kokoro TTS: ~$0.001 per request
Llama 3 70B chat: ~$0.001 per 1K tokens
LLaVA 13B vision: ~$0.001 per image
Real-ESRGAN 4x upscale: ~$0.003 per image
See https://replicate.com/pricing for current rates and your billing dashboard for usage.
Troubleshooting
"REPLICATE_API_TOKEN environment variable is not set"
You haven't put the token in the env block of your Claude Desktop config. Double-check the JSON and restart Claude Desktop.
"Server disconnected" in Claude Desktop
Usually a path problem. Make sure the path to dist/index.js is absolute and the file exists. Test it manually:
REPLICATE_API_TOKEN=r8_... node /ABSOLUTE/PATH/dist/index.jsYou should see replicate-mcp-server v1.0.0 ready. API token detected. on stderr. Press Ctrl+C to quit.
A model isn't in the curated list
Just use its full identifier: model: "stability-ai/sdxl" works the same way. Or use replicate_search_models to find one.
Need a specific version of a model
Use the owner/name:version_hash form: model: "black-forest-labs/flux-schnell:bf53bdb93d739c9c915091cfa5f49ca662d11273a5eb30e7a2ec1939bcf27a00".
Downloaded files are missing
Check REPLICATE_DOWNLOAD_DIR. Files are organised as <dir>/<sanitized-model>/<prediction-id>/output-N.<ext>.
Deploy as platform (v3.0+)
Beyond a single local stdio client, the server also runs as a multi-user platform — HTTP/SSE transport (for claude.ai web Connectors, remote editors, and custom apps), multi-token pool, webhook-driven async completion, Docker, npm distribution.
HTTP / SSE transport
Run the server as an HTTP service instead of stdio:
# Local-only, no auth — for development.
node dist/index.js --http --port 8088
# LAN-exposed with Bearer auth — behind a private network.
node dist/index.js --http --host 0.0.0.0 --port 8088 --api-key your-shared-secretClients POST JSON-RPC to http://host:port/mcp with:
Authorization: Bearer your-shared-secret
Content-Type: application/json
Accept: application/json, text/event-stream
Mcp-Session-Id: <set by server on initialize, echoed on follow-ups>Health probe (no auth): GET /health → {"status": "ok"}.
npm install (when published)
npx replicate-mcp-server --http --port 8088 --api-key SECRET
# or as a Claude Desktop launcher:
npx replicate-mcp-serverDocker
docker build -t replicate-mcp-server .
docker run --rm \
-e REPLICATE_API_TOKEN=r8_... \
-e LOG_LEVEL=info \
-p 8088:8088 \
replicate-mcp-serverThe default CMD starts in HTTP mode on 0.0.0.0:8088. Add --api-key
via docker run ... replicate-mcp-server --http --api-key SECRET if you
expose the port beyond a private network.
Multi-token round-robin pool
For team / multi-tenant deployments, give the server multiple Replicate accounts to spread rate-limit headroom:
REPLICATE_API_TOKEN_POOL=r8_account_a,r8_account_b,r8_account_c \
node dist/index.js --http --port 8088Each Replicate API call rotates through the pool. Falls back to single
REPLICATE_API_TOKEN if only one configured.
Webhook receiver (event-driven completion)
If the server is reachable from the public internet, you can replace polling with webhook callbacks:
REPLICATE_WEBHOOK_PUBLIC_URL=https://your.domain/webhook \
REPLICATE_WEBHOOK_PORT=8089 \
node dist/index.js --http --port 8088Replicate POSTs prediction completion to the public URL; the server resolves the awaiting tool call without polling. Per-prediction random token authenticates each callback.
Smithery listing
This server is live on Smithery: smithery.ai/server/sena-labs/replicate-mcp-server — scanned (36 tools, 5 prompts, 2 resources) and one-click installable into Claude, Cursor, VS Code, Cline, Windsurf, and other MCP clients. smithery.yaml defines the install-time config UI (token, optional pool, log level, download dir).
claude.ai web Connector
For listing as a Connector inside the claude.ai web app:
Deploy the server publicly with HTTPS (Render / Fly.io / Cloudflare / bare VPS behind a TLS-terminating reverse proxy).
Register the MCP HTTP endpoint at https://console.anthropic.com/settings/connectors.
Users add it from claude.ai → Settings → Connectors → Add custom.
Anthropic's Connector review is manual — provide the OAuth flow / API key
input form they require, plus the public /mcp URL.
Architecture
src/
├── index.ts # MCP server, tool registration, response formatting (handler factory)
├── replicate.ts # API client, polling, output extraction (URLs + text), file download with retry
├── schemas.ts # Zod schemas for tool inputs (with .strict())
├── models.ts # Curated model registry per category (8 categories)
└── constants.ts # Shared constants (timeouts, paths, character limits)
test/
├── stdio-test.mjs # End-to-end MCP handshake + tool registration test (response correlation)
└── unit/ # node:test unit suites for pure helpers
├── extract-urls.test.mjs
├── extract-texts.test.mjs
├── infer-filename.test.mjs
└── sanitize.test.mjsThe server uses the stdio transport (standard for local Claude Desktop integrations) and the modern registerTool API of the MCP TypeScript SDK. All tool inputs are validated by Zod schemas with .strict() enforcement — no unknown parameters slip through.
The 8 curated generation tools share a single makeGenerationHandler factory; each tool only declares how it maps its specific input fields onto the Replicate request body. Output URLs are extracted by recursively walking the prediction's output field, which can be a string, an array, a nested object, or any combination. Text outputs (from LLM / vision / classifier models) are surfaced through the same walker so non-URL strings appear in the response. Files are streamed to disk using Node's stream/promises.pipeline() so multi-GB videos don't blow up memory. Downloads retry once on transient failures (network error or 5xx) with exponential backoff; 4xx errors fail fast.
Testing
npm run build
node --test test/unit/*.test.mjs # 43 unit tests on pure helpers
node test/stdio-test.mjs # End-to-end MCP handshake + tool/list + tool/call sanity checkSupport & contact
Bugs and feature requests — open an issue; that's the fastest path and keeps the answer searchable for everyone.
Questions, integration help, anything else — ivan.sena@sena-labs.dev
Security vulnerabilities — please don't file a public issue. Email ivan.sena@sena-labs.dev or open a private advisory; see SECURITY.md for scope and response times.
If this project is useful to you, consider supporting its development:
Trademarks & disclaimer
This is an independent, community-built project. It is not affiliated with, endorsed by, sponsored by, or officially connected to Replicate, Inc.
"Replicate" and the Replicate logo are trademarks of Replicate, Inc. This server is an interoperability client for Replicate's public HTTP API; the name is used descriptively (nominative fair use) to indicate compatibility — not to imply origin or endorsement. For Replicate's own official MCP server, see replicate.com/docs/reference/mcp.
Built on the Model Context Protocol (MCP), the open standard created by Anthropic.
Model names referenced (FLUX, Recraft, Whisper, Llama, etc.) are trademarks of their respective owners and are used only to identify the models you can run.
You are responsible for complying with Replicate's Terms of Service and the license of each model you invoke. Bundled third-party open-source components and their licenses are listed in THIRD_PARTY_LICENSES.md. The banner/logo use the Inter typeface (SIL Open Font License 1.1).
License
MIT — see LICENSE.
Available Tools
36 toolsreplicate_batch_startStart Async Batch PredictionsA
Run multiple Replicate predictions in parallel as a background job. Returns a job_id immediately — the predictions run in the background. Poll replicate_batch_status for progress and results.
Use this when you have 2–50 predictions to run and don't want to block. Each item specifies its own model and input, so you can mix models in one batch.
IMPORTANT: model must be a full Replicate identifier ("owner/name" or "owner/name:version"), not a curated shortcut like "flux-schnell". Use replicate_get_model_schema to look up the correct identifier.
Args:
items (array, 1–50): Predictions to run. Each: { model: "owner/name[:version]", input: {...} }.
concurrency (1–10, default 3): Max simultaneous predictions. Raise with caution — Replicate rate-limits free accounts.
download (boolean, default true): Download output files locally.
timeout_ms_per_item (default 300000): Per-prediction timeout. Timed-out items have pending=true in their result.
ttl_hours (1–72, default 1): How long to keep results in memory. Job state is lost if the MCP server restarts.
Returns: { job_id, total, message }
Example: items=[ { model: "black-forest-labs/flux-schnell", input: { prompt: "a red fox" } }, { model: "black-forest-labs/flux-schnell", input: { prompt: "a blue whale" } }, ] → Returns { job_id: "abc-123", total: 2, message: "..." } → Then poll: replicate_batch_status({ job_id: "abc-123" })
| Name | Required | Description | Default |
|---|---|---|---|
| items | Yes | Predictions to run. 1–50 items. | |
| download | No | Download output files locally. Default: true. | |
| ttl_hours | No | How long to keep job results in memory (1–72h). Default: 1h. State is lost if the server restarts. | |
| concurrency | No | Max simultaneous predictions (1–10). Default: 3. | |
| timeout_ms_per_item | No | Per-prediction timeout in ms (5000–1800000). Default: 300000 (5min). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Discloses immediate return, background execution, polling mechanism, concurrency behavior, timeout handling, TTL, and state loss on restart. Annotations (readOnlyHint=false, etc.) are consistent and the description adds rich behavioral context.
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?
Well-organized with clear sections (overview, when to use, important note, args, return, example). Each sentence is purposeful. Slightly verbose but efficient for the complexity.
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 5 parameters, no output schema, and complexity of background jobs, the description covers all key aspects: usage, parameters, return shape, polling instructions, and edge cases (timeout, TTL, server restart). Highly 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?
Schema coverage is 100%, but the description adds significant value: explains items array structure with example, cautions about concurrency rate limits, explains download default, timeout behavior, and TTL meaning. Goes well 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?
The description explicitly states 'Run multiple Replicate predictions in parallel as a background job' with specific verb and resource. It distinguishes from siblings by mentioning polling replicate_batch_status and contrasting with single prediction tools.
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 when-to-use: 'when you have 2–50 predictions to run and don't want to block.' Also warns about rate limits and suggests replicate_get_model_schema for correct identifiers.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
replicate_batch_statusGet Batch Job StatusARead-onlyIdempotent
Poll the status of an async batch job started with replicate_batch_start.
Args:
job_id (string): Job ID returned by replicate_batch_start.
include_results (boolean, default true): Include full PredictionResult per item. Set false for a counts-only summary while the job is still running.
Returns structuredContent: { job_id, overall_status, total, succeeded, failed, running, pending, created_at, expires_at, items: [{ index, model, status, prediction_id, result?, error?, started_at, completed_at }] }
overall_status: "running" — predictions still in progress "completed" — all items succeeded "partial" — all done, at least one failed
Tip: Poll every 10–30 seconds until overall_status is "completed" or "partial".
| Name | Required | Description | Default |
|---|---|---|---|
| job_id | Yes | Job ID returned by replicate_batch_start. | |
| include_results | No | Include full PredictionResult per completed item. Set false to get counts-only summary for large batches. Default: true. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description discloses the return format (structuredContent with detailed fields), explains overall_status values with meanings, and provides polling guidance. Annotations already declare readOnlyHint and idempotentHint, and the description adds behavioral context beyond those without contradiction.
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 with a summary line, argument list, return type explanation, status definitions, and a tip. Every sentence serves a purpose, and the structure aids readability without unnecessary verbosity.
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 description covers all aspects needed for a polling tool: purpose, parameters, return structure (including example fields), status interpretations, and a practical polling interval. Given the tool's complexity, it leaves no critical gaps.
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 schema already describes both parameters (100% coverage), but the description adds practical value for include_results, explaining the trade-off between full results and counts-only summary for large batches. This extra context justifies a score above 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 clearly states it polls the status of an async batch job, specifically linking to replicate_batch_start. It uses precise language ('poll the status') and distinguishes itself from sibling tools like replicate_batch_start (starts jobs) and other status tools.
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 connects to replicate_batch_start, implying usage after starting a batch job. It also provides a concrete polling tip (every 10-30 seconds). However, it does not explicitly state when not to use it or contrast with single-prediction status tools, though the sibling context makes it clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
replicate_cancel_predictionCancel a Replicate predictionADestructiveIdempotent
Cancel an in-progress prediction by its ID. Useful for long-running async jobs (video, large LLM) when the user no longer needs the result.
Args:
prediction_id (string): ID of the prediction to cancel (returned by an earlier generate_* call).
Returns: PredictionSummary with updated status (typically "canceled").
| Name | Required | Description | Default |
|---|---|---|---|
| prediction_id | Yes | ID of the prediction to cancel. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations include destructiveHint=true and idempotentHint=true. Description adds that the tool cancels in-progress predictions and returns a PredictionSummary with updated status (typically 'canceled'). This provides behavioral detail beyond annotations, such as the return type and typical outcome.
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 paragraphs: first states purpose and usage context, second lists args and returns. Every sentence is essential; no redundancy. Front-loaded with core action.
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 simple operation (cancel by ID), the description covers all needed aspects: purpose, when to use, parameter source, and expected result. No output schema exists, but the description adequately describes the return type.
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% for the single parameter prediction_id. Description adds context: 'returned by an earlier generate_* call,' which helps the agent understand the source of the ID, going beyond the schema's basic description.
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?
Description clearly states 'Cancel an in-progress prediction by its ID.' This is a specific verb+resource pair, and it distinguishes from sibling tool replicate_cancel_training which cancels training rather than predictions.
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 guidance: 'Useful for long-running async jobs (video, large LLM) when the user no longer needs the result.' This tells the agent when to use the tool. It also notes that the prediction_id comes from an earlier generate_* call, aiding context. Could explicitly mention when not to use, but clear enough.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
replicate_cancel_trainingCancel a Replicate trainingADestructiveIdempotent
Cancel an in-progress training run by its ID. Trainings can run for many minutes and cost real money — cancel when no longer needed.
Args:
training_id: ID of the training to cancel.
Returns structuredContent: TrainingSummary with the updated status (typically "canceled").
| Name | Required | Description | Default |
|---|---|---|---|
| training_id | Yes | ID of the in-progress training run to cancel. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond annotations (destructiveHint, idempotentHint), it warns about cost and duration, and indicates the returned status. No contradictions 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?
Very concise, two sentences with args and returns fully covering the tool's purpose and usage.
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?
Adequate for a simple cancel tool: explains when to use, parameter, and return type. Could mention error cases but not necessary.
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 has 100% coverage for training_id, but the description adds context that only in-progress trainings can be canceled, adding value 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?
The description clearly states the tool cancels an in-progress training run by ID, distinguishing it from sibling tools like replicate_create_training and replicate_get_training.
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 context to cancel when training is no longer needed to avoid costs, but does not explicitly contrast with alternatives like replicate_cancel_prediction.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
replicate_chatChat with an LLM via ReplicateA
Run a large language model hosted on Replicate. Use this for free-form text generation, Q&A, code writing, summarisation, translation — anything where the input is text and the output is text.
Args:
prompt (string): User message.
model (string, default "llama-3-70b"): Curated key (llama-3.1-405b, llama-3-70b, llama-3-8b, mistral-7b, mixtral-8x7b, deepseek-r1) or "owner/name".
system_prompt (string, optional): Persona / instructions.
max_tokens (1-8192, optional): Generation limit.
temperature (0-2, optional): Sampling temperature.
extra_input (object, optional): Model-specific extras (top_p, top_k, frequency_penalty, etc.).
download (boolean, default false): No file outputs; leave false.
timeout_ms (5000-1800000, optional): Default 300000.
Returns: PredictionResult with text_output[0] containing the model's reply (later entries are raw streamed segments if applicable).
Examples:
prompt="Explain quantum entanglement in two sentences.", model="llama-3-70b"
prompt="Write a Python function to compute Levenshtein distance.", model="mistral-large", system_prompt="You are an expert software engineer."
| Name | Required | Description | Default |
|---|---|---|---|
| model | No | LLM identifier. Curated keys: llama-3.1-405b, llama-3-70b, llama-3-8b, mistral-7b, mixtral-8x7b, deepseek-r1. Or full Replicate "owner/name[:version]". | llama-3-70b |
| prompt | Yes | User message / prompt for the LLM. | |
| download | No | LLM output is text — default false (no file to download). | |
| max_tokens | No | Max tokens to generate. Default model-dependent. | |
| timeout_ms | No | Max ms to wait for the prediction. If exceeded, returns the prediction ID so you can poll via replicate_get_prediction. Default: 300000 (5min). | |
| extra_input | No | Additional model-specific inputs. | |
| temperature | No | Sampling temperature 0.0–2.0. Lower = more deterministic. | |
| system_prompt | No | Optional system prompt to set persona / instructions. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate non-readonly, non-idempotent, non-destructive. The description adds the crucial timeout behavior (polling via replicate_get_prediction), explains the download parameter is irrelevant for text, and describes the return format. No contradictions.
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 efficiently structured: a short purpose sentence, a list of use cases, a clear Args section with inline notes, a Returns section, and concrete examples. Every sentence adds distinct value with no 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?
Given the absence of an output schema, the description sufficiently explains the return value (text_output[0]) and polling behavior when timeout is exceeded. All 8 parameters are covered with examples, making the tool fully understandable for an agent.
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 description enriches every parameter: explains model curated keys vs custom format, clarifies download default and reason, details timeout default and polling fallback, provides examples for prompt and system_prompt usage. This goes well 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?
The description uses a specific verb 'Run' with a clear resource 'large language model', and enumerates diverse text-generation use cases (Q&A, code, summarisation, translation). It inherently distinguishes from sibling tools that generate images, audio, or 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?
The description implies usage for text-in/text-out tasks and contrasts with multimodal siblings. However, it does not explicitly state when not to use this tool or mention alternative tools for specific sub-tasks like chat or code generation.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
replicate_clone_voiceClone a voice with ReplicateA
Synthesize speech in a cloned voice. Provide a short reference audio sample (~5-30 s) and the text to speak; the model reproduces the voice characteristics.
DISPLAY REQUIREMENT — after this tool returns successfully, include the URL printed in the tool's text content as a markdown link [Audio](URL) so the user can play it. URLs expire in ~24h.
Args:
text (string, 1-5000): Text to synthesize in the cloned voice.
reference_audio_url (URL): URL of the voice sample to clone from. Use replicate_upload_file to upload a local file first.
language (string, optional): ISO-639 code (e.g. "en", "es", "it"). Default "en".
model (string, default "xtts-v2"): Curated key (xtts-v2, openvoice-v2) or "owner/name[:version]".
extra_input (object, optional): Model-specific extras.
download (boolean, default true).
timeout_ms: Default 300000.
Returns: PredictionResult. local_paths contain WAV/MP3 files.
Examples:
text="Hello world, this is my cloned voice.", reference_audio_url="<url-to-your-voice-sample.wav>"
text="Buongiorno a tutti!", reference_audio_url="", language="it"
| Name | Required | Description | Default |
|---|---|---|---|
| text | Yes | Text to synthesize in the cloned voice. | |
| model | No | Voice cloning model. Curated: xtts-v2, openvoice-v2. Or "owner/name". | xtts-v2 |
| download | No | ||
| language | No | ISO-639 language code (e.g. 'en', 'es', 'it'). Default: 'en'. | |
| timeout_ms | No | Max ms to wait for the prediction. If exceeded, returns the prediction ID so you can poll via replicate_get_prediction. Default: 300000 (5min). | |
| extra_input | No | Additional model-specific inputs. | |
| reference_audio_url | Yes | URL of a short voice sample (~5-30s) to clone. Use replicate_upload_file if you only have a local file. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds substantial value beyond annotations: it discloses URL expiry (~24h), timeout polling behavior, and a display requirement. It aligns with annotations (readOnlyHint=false, destructiveHint=false) and provides no contradictions.
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 with a summary, display requirement, parameter list, returns note, and examples. It is appropriately concise without missing essential 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?
For a tool with 7 parameters, nested objects, and no output schema, the description covers key aspects: input constraints, timeout handling, and return format. It could mention how to extract the URL from results or handle multiple files, but overall it is sufficiently 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?
Despite high schema coverage (86%), the description adds meaning: it clarifies the role of reference_audio_url, lists default values, and explains timeout behavior. The Args section provides context not captured in the schema alone.
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 starts with 'Synthesize speech in a cloned voice,' clearly stating the tool's core function. It distinguishes itself from sibling tools like replicate_generate_speech by focusing on voice cloning from a reference sample.
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 provides clear usage context: it specifies the reference audio length (~5-30 s) and directs users to replicate_upload_file for local files. However, it does not explicitly contrast this tool with alternatives like replicate_generate_speech.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
replicate_create_trainingStart a Replicate fine-tune / training runA
Kick off a fine-tuning (training) run on a trainable base model — e.g. a Flux LoRA trainer — with your dataset and hyperparameters. Returns immediately with a training ID; poll it with replicate_get_training.
Args:
model: BASE trainer "owner/name" (or "owner/name:version" to pin the trainer version inline). e.g. "ostris/flux-dev-lora-trainer".
version (optional): trainer version id. Required unless pinned inline on model.
destination: "owner/name" the trained weights are pushed to. The destination model must already exist on your account.
input: training inputs as a JSON object (dataset URL + hyperparameters). Call replicate_get_model_schema on the trainer to see its exact inputs.
Returns structuredContent: TrainingSummary { id, status, model, version, destination, created_at, completed_at, output_version, error }.
| Name | Required | Description | Default |
|---|---|---|---|
| input | No | Training inputs as a JSON object (dataset URL + hyperparameters). The exact keys depend on the trainer — call replicate_get_model_schema on the trainer model to see them. | |
| model | Yes | The BASE trainer model as "owner/name" (or "owner/name:version" to pin the trainer version inline). Example: "ostris/flux-dev-lora-trainer". | |
| version | No | Trainer version id. Required unless you pinned it inline on `model` as "owner/name:version". | |
| destination | Yes | Where the trained weights are pushed, as "owner/name". The destination model must already exist on your account. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already provide readOnlyHint=false, openWorldHint=true, idempotentHint=false. The description adds value by explaining the asynchronous behavior (returns immediately with training ID) and the need to poll. It does not contradict 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 a concise paragraph followed by a bulleted list of arguments. It is front-loaded with the purpose and every sentence is necessary and informative, with no 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 no output schema, the description specifies the return type (TrainingSummary) with fields. It covers async behavior, prerequisites, and links to relevant tools for polling and schema introspection, making it fully informative for a training start 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% and all parameters have descriptions. The description adds extra context with examples, inline version pinning, and a cross-reference to replicate_get_model_schema for the input object, which goes 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?
The description uses a specific verb ('Kick off') and clearly identifies the resource (fine-tuning/training run on a trainable base model). It includes an example and distinguishes from sibling tools like replicate_get_training (polling) and replicate_run_model (inference).
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 mentions polling with replicate_get_training and states a prerequisite (destination must exist). However, it does not explicitly say when to use this tool versus alternatives like replicate_run_model, though the context makes it clear it's for training, not inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
replicate_embed_textCompute text embeddingsAIdempotent
Convert text(s) into numeric embedding vectors. Useful for RAG, semantic search, clustering, similarity scoring.
Args:
texts: A single string or an array of strings (max 256). Each text is embedded independently.
model (default "bge-large"): Curated (bge-large, jina-embeddings-v3, all-minilm) or "owner/name".
extra_input (object, optional): Model-specific extras (e.g. {task: "retrieval.query"} for jina v3).
Returns: PredictionResult — the embedding vectors are in structuredContent.output (model-specific shape).
| Name | Required | Description | Default |
|---|---|---|---|
| model | No | Embedding model. Curated: bge-large, jina-embeddings-v3, all-minilm. Or "owner/name". | bge-large |
| texts | Yes | A single text or an array of texts to embed. | |
| download | No | Output is a numeric vector — default false. | |
| timeout_ms | No | Max ms to wait for the prediction. If exceeded, returns the prediction ID so you can poll via replicate_get_prediction. Default: 300000 (5min). | |
| extra_input | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations indicate idempotency and non-destructiveness. The description adds return format details (structuredContent.output) and mentions model-specific shapes, providing behavioral context beyond 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 concise (about 120 words) and well-structured: purpose, use cases, args list, return value. No redundant sentences.
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 has 5 parameters, no output schema, and nested objects, the description covers main parameters and return format adequately. It lacks explanation for download and timeout_ms, but schema descriptions compensate. An example would improve completeness.
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 80% schema description coverage, the description adds value by explaining texts (independent embedding, max 256), model (curated list or custom), and extra_input with an example. Two parameters (download, timeout_ms) are not elaborated but have schema descriptions.
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 converts text into numeric embedding vectors and lists specific use cases (RAG, semantic search, clustering, similarity scoring), distinguishing it from siblings that generate images, audio, etc.
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 provides clear use contexts but does not explicitly contrast with alternative tools or state when not to use it. However, the embeddings-focused purpose implicitly differentiates from siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
replicate_estimate_costEstimate the USD cost of a Replicate predictionARead-onlyIdempotent
Return an approximate dollar-cost estimate for a planned prediction BEFORE running it. Prices are a hand-curated snapshot — actual billing comes from Replicate. Call this when the user asks "how much would X cost" or before launching a costly model.
Args:
model: Replicate "owner/name" id or a curated short key (e.g. "flux-schnell", "kling-pro").
num_outputs (1-20, optional): How many outputs to estimate. Default 1.
duration_seconds (1-600, optional): Required for per-second models (video, music, transcription, LLM).
Returns structuredContent: { resolved_model_id, num_outputs, duration_seconds, estimated_usd, pricing_basis, note }.
Examples:
model="flux-schnell", num_outputs=4 → ~$0.012 (4 × $0.003 per_run)
model="kling-pro", duration_seconds=5 → ~$0.45 (5 × $0.09 per_second)
model="meta/meta-llama-3-70b-instruct", duration_seconds=10 → ~$0.024 (10 × $0.0024 per_second)
| Name | Required | Description | Default |
|---|---|---|---|
| model | Yes | Replicate model id ("owner/name") or a curated key (e.g. "flux-schnell"). | |
| num_outputs | No | How many outputs to estimate for. Default 1. | |
| duration_seconds | No | For models priced per second (video, audio, LLM), the expected duration / token-equivalent. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and idempotentHint=true, indicating safe reads. The description adds valuable context: prices are a 'hand-curated snapshot' and 'actual billing comes from Replicate,' and it clarifies required parameters for per-second models. No contradictions 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 well-structured with clear sections for Args, Returns, and Examples. It front-loads the purpose in the first sentence. Every sentence adds value, and there is no redundancy or wasted words.
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 has 3 parameters and no output schema, the description explains the return structure (structuredContent with fields like resolved_model_id, estimated_usd, etc.) and provides multiple concrete examples. It covers the key aspects needed for an agent to understand and invoke the tool correctly. Minor gap: could mention that estimates are approximate, but that is already 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 coverage is 100%, but the description adds meaning beyond the schema by explaining parameter types (e.g., model can be owner/name or short key), providing examples of how parameters affect the estimate, and listing default values and ranges. This helps agents use 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 clearly states it returns an approximate dollar-cost estimate for a planned prediction before running it. It uses specific verbs ('estimate cost') and identifies the resource ('Replicate prediction'), and it distinguishes from sibling tools which focus on running models, listing, etc.
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 when to call this tool: 'when the user asks "how much would X cost" or before launching a costly model.' While it doesn't list when not to use it or alternatives, the context makes it clear it's a unique cost estimation tool among many execution tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
replicate_generate_3dGenerate a 3D model with ReplicateA
Generate a 3D mesh (GLB/OBJ) from a text prompt or a reference image. 3D generation is slow — typically 1-5 minutes.
DISPLAY REQUIREMENT — after this tool returns successfully, include the download URL(s) so the user can open the 3D file. URLs expire in ~24h.
Args:
prompt (string, optional): Text description of the 3D object. Provide at least one of prompt or image_url.
image_url (URL, optional): Reference image to convert to 3D. Provide at least one of prompt or image_url. Use replicate_upload_file for local files.
model (string, default "hunyuan-3d"): Curated key (hunyuan-3d, rodin, triposr) or "owner/name[:version]".
extra_input (object, optional): Model-specific extras (e.g. {num_inference_steps: 50}).
download (boolean, default true): Download the GLB/OBJ locally.
timeout_ms: Default 300000. For complex objects, increase or use the pending+poll flow.
Returns: PredictionResult. local_paths will contain .glb or .obj files.
Examples:
prompt="A red ceramic teapot" → hunyuan-3d
image_url="", model="triposr" → fast single-image 3D
image_url="", model="rodin" → high-quality 3D
| Name | Required | Description | Default |
|---|---|---|---|
| model | No | 3D generation model. Curated: hunyuan-3d, rodin, triposr. Or "owner/name". | hunyuan-3d |
| prompt | No | Text description of the 3D object to generate. Provide either this or image_url (or both). | |
| download | No | ||
| image_url | No | URL of a reference image to convert to 3D. Provide either this or prompt (or both). Use replicate_upload_file for local images. | |
| timeout_ms | No | Max ms to wait for the prediction. If exceeded, returns the prediction ID so you can poll via replicate_get_prediction. Default: 300000 (5min). | |
| extra_input | No | Additional model-specific inputs (e.g. {num_inference_steps: 50}). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds behavioral context beyond annotations: it mentions slowness (1-5 min), URL expiration (24h), timeout behavior (default 300000 ms, returning prediction ID on timeout), and return type (PredictionResult with local_paths). Annotations already indicate non-readonly, open-world, non-idempotent, and non-destructive, and the description aligns with these without contradiction.
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: purpose first, then behavioral notes, then an Args list, then examples. It front-loads key information. While it is somewhat lengthy, every part serves a purpose, and it avoids redundancy with the schema.
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 absence of an output schema, the description adequately covers what is returned (PredictionResult with local_paths) and includes examples, parameter details, and behavioral notes. It addresses input requirements, display requirement, and timeout behavior. Minor omissions could include error handling or failure modes, but overall it is fairly comprehensive for a 6-parameter 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 high (83% of parameters have descriptions), so baseline is 3. The description adds additional semantics: for image_url it mentions using replicate_upload_file for local files, for model it gives curated keys and custom format, for timeout it explains what happens if exceeded, and for extra_input it provides an example. This adds meaningful value 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?
The description clearly states the tool's purpose: 'Generate a 3D mesh (GLB/OBJ) from a text prompt or a reference image.' This is specific and distinct from sibling tools like replicate_generate_image or replicate_generate_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?
The description provides clear guidance on when to use this tool (for 3D generation) and includes important usage notes such as requiring at least one of prompt or image_url, indicating that 3D generation is slow (1-5 minutes), and a display requirement for download URLs. It also gives examples for different scenarios. While it doesn't explicitly exclude alternatives, the context is sufficient.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
replicate_generate_audioGenerate Music or Audio with ReplicateA
Generate music, ambient audio, or full songs from a text prompt.
DISPLAY REQUIREMENT — after this tool returns successfully, include the URL(s) printed in the tool's text content as a markdown link [Audio](URL) in your reply so the user can play it. URLs expire in ~24h.
Models:
"musicgen" (default): Meta MusicGen. Instrumental music up to 30s. prompt → "prompt" field.
"ace-step": Full songs with lyrics. prompt → "tags" field (style/genre tags). Pass lyrics separately via extra_input.lyrics. ~3-4 minutes runtime.
"riffusion": Loop-friendly ambient/electronic. prompt → "prompt_a" field. No duration control.
"minimax-music": MiniMax Music 2.6. Full songs up to 6min. prompt=style description; pass lyrics via extra_input.lyrics.
"lyria-3-pro": Google Lyria 3 Pro. Full songs up to 3min WITH sung vocals. Put genre, mood, lyrics, and structure ([Verse]/[Chorus]) directly in the prompt. No duration — do NOT pass duration_seconds. Also "lyria-3" (30s clips) and "lyria-2" (48kHz instrumental).
Args:
prompt (string): Description of the music. For ace-step this maps to the "tags" field (style tags like "rock, guitar, upbeat"). For riffusion this maps to "prompt_a". For lyria put genre/mood/lyrics/structure here.
model (string, default "musicgen"): Curated key (musicgen, ace-step, riffusion, minimax-music, lyria-3-pro, lyria-3, lyria-2) or "owner/name[:version]".
duration_seconds (1-300, optional): Duration in seconds. Supported by musicgen and ace-step. Ignored for riffusion and the lyria models (they have no duration parameter).
extra_input (object, optional): Additional inputs. Examples: {temperature: 1.0, top_k: 250} for MusicGen; {lyrics: "verse lyrics here"} for ace-step.
download (boolean, default true): Download as MP3/WAV.
timeout_ms: Default 300000 (5min).
Returns: PredictionResult. local_paths contain audio files.
Examples:
prompt="upbeat synthwave with driving bassline", duration_seconds=15 → musicgen
prompt="indie folk, acoustic guitar, female vocals", model="ace-step", extra_input={lyrics: "Leaving home on a rainy day..."}
prompt="ambient lo-fi chill", model="riffusion"
| Name | Required | Description | Default |
|---|---|---|---|
| model | No | Either a curated key (musicgen, ace-step, riffusion, minimax-music, lyria-3-pro, lyria-3, lyria-2) or a Replicate identifier. | musicgen |
| prompt | Yes | Description of the music/audio. For songs with lyrics (ace-step), include the lyrics here. | |
| download | No | Whether to download the generated files locally. Default true. When false, only Replicate URLs are returned (URLs expire after ~24h). | |
| timeout_ms | No | Max ms to wait for the prediction. If exceeded, returns the prediction ID so you can poll via replicate_get_prediction. Default: 300000 (5min). | |
| extra_input | No | Additional model-specific inputs. | |
| duration_seconds | No | Duration in seconds. Model-dependent. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate non-readOnly (mutating) and non-destructive, but description adds context: download behavior, timeout handling, URL expiry (~24h), and model-specific parameter behavior. No contradictions. Score 4 because while annotations set baseline, description adds significant behavioral detail beyond 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?
Description is long but well-structured with headings, bullet points, and examples. Every sentence adds value. Slightly verbose for some details (e.g., model list repeated), but still efficient. Front-loads core purpose and display requirement.
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 no output schema, description explains return format (PredictionResult with local_paths and URLs), covers edge cases (timeout returns prediction ID for polling), and model-specific constraints. Complete for a complex audio generation 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%, and the description enriches each parameter with model-specific meaning: prompt becomes 'tags' for ace-step, duration_seconds ignored for some models, extra_input includes lyrics example. This adds major value beyond schema alone.
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 it generates music or audio from text prompts, using verbs like 'generate' and specifying resource (music/audio). It distinguishes between models (musicgen, ace-step, etc.) and their capabilities, differentiating it from sibling tools like replicate_generate_speech or replicate_generate_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?
Explicitly provides when to use each model (e.g., 'musicgen for instrumental up to 30s', 'ace-step for songs with lyrics'), what parameters to set (e.g., prompt mapping, duration support), and what not to do (e.g., 'do NOT pass duration_seconds for lyria'). Includes display requirement and URL expiry warning.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
replicate_generate_imageGenerate Image with ReplicateA
Generate one or more images from a text prompt using a Replicate image model.
Use this for any "draw / create / generate an image of …" request. By default it uses Flux Schnell (fast, ~2 seconds per image).
DISPLAY REQUIREMENT — after this tool returns successfully, you MUST embed the image inline in your reply by pasting ONE of the three embed blocks the tool prints verbatim (Option 1 iframe, Option 2 , or Option 3 markdown — try them in that order; pick the first one your chat client renders). The iframe variant scales to the chat column width with the image's native aspect ratio; the variant is a responsive fallback; markdown is the universal last resort. Place the chosen embed BEFORE any descriptive prose. Do NOT paraphrase the URL or omit the embed — the user wants the image to appear in the main chat flow, not only inside the collapsed tool widget. URLs expire in ~24h.
Args:
prompt (string): Text description of the image to generate.
model (string, default "flux-schnell"): Either a curated key (flux-schnell, flux-dev, flux-pro, flux-2-max, sd-3.5-large, recraft-v3, recraft-v4.1, ideogram-v2, imagen-3, seedream) or a full Replicate identifier "owner/name[:version]".
aspect_ratio ("1:1" | "16:9" | "9:16" | "4:3" | "3:4" | "21:9" | "3:2" | "2:3", optional): Aspect ratio. Default 1:1.
num_outputs (1-4, optional): How many images to generate.
seed (integer, optional): Random seed for reproducible output.
extra_input (object, optional): Model-specific extra inputs (e.g. {guidance: 3.5, num_inference_steps: 28}). Use replicate_get_model_schema if unsure.
download (boolean, default true): Download files locally to ~/Downloads/replicate-mcp/.
timeout_ms (5000-1800000, optional): Max wait. Default 300000 (5min).
Returns structuredContent matching PredictionResult: { "status": "starting" | "processing" | "succeeded" | "failed" | "canceled", "prediction_id": string, "model": string, "urls": string[], // Replicate URLs (expire ~24h) "local_paths": string[], // Absolute paths on disk when download=true "metrics": { "predict_time_seconds": number } | undefined, "error": string | undefined, "pending": boolean | undefined // true if timed out — poll via replicate_get_prediction }
Examples:
"An origami fox in a misty forest" → uses flux-schnell, 1:1
prompt="logo for a coffee shop called Crema", model="recraft-v3" → for text-in-image
prompt="cinematic shot of a lighthouse", model="flux-pro", aspect_ratio="21:9", seed=42
Error handling:
If REPLICATE_API_TOKEN is missing, returns an actionable error telling the user how to set it.
Invalid model IDs return Replicate's error message verbatim.
| Name | Required | Description | Default |
|---|---|---|---|
| seed | No | Random seed for reproducible outputs. | |
| model | No | Either a curated key (flux-schnell, flux-dev, flux-pro, sd-3.5-large, recraft-v3, recraft-v4.1, flux-2-max, seedream, ideogram-v2, imagen-3) or a Replicate identifier like "owner/name" or "owner/name:version". | flux-schnell |
| prompt | Yes | Text prompt describing the image to generate. | |
| download | No | Whether to download the generated files locally. Default true. When false, only Replicate URLs are returned (URLs expire after ~24h). | |
| timeout_ms | No | Max ms to wait for the prediction. If exceeded, returns the prediction ID so you can poll via replicate_get_prediction. Default: 300000 (5min). | |
| extra_input | No | Additional model-specific inputs merged into the request (e.g. {guidance: 3.5}). Use replicate_get_model_schema to see what a model accepts. | |
| num_outputs | No | Number of images to generate (1-4). | |
| aspect_ratio | No | Aspect ratio. Supported by Flux models. Default 1:1. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description reveals multiple behavioral traits beyond annotations: URLs expire in ~24h, download behavior, timeout with polling fallback, error handling for missing API token, and the return structure with status fields. It also notes the display requirement for embedding images. 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 well-structured: purpose, usage, display requirement, args, returns, examples, error handling. It is front-loaded with the core action. While somewhat lengthy, each section is justified and no redundant sentences.
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 (8 parameters, nested object, no output schema), the description covers all essential aspects: input details, return structure, error cases, polling mechanism, and even display instructions. It is comprehensive for an AI agent to invoke 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 coverage is 100% (all 8 parameters described), so baseline is 3. The description adds value by explaining defaults (model, aspect_ratio, download), providing examples, and guiding use of extra_input with replicate_get_model_schema. It goes beyond schema repetition.
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 generates images from text prompts and specifies it handles 'draw/create/generate an image of' requests. It distinguishes from sibling tools like replicate_generate_audio or replicate_generate_video by focusing on image generation.
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 provides clear context on when to use the tool ('any draw/create/generate an image of request') and mentions the default model (Flux Schnell) for speed. It does not explicitly exclude alternatives but the domain is clearly image generation, which is sufficient given sibling tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
replicate_generate_speechGenerate Speech (TTS) with ReplicateA
Convert text to natural-sounding speech.
DISPLAY REQUIREMENT — after this tool returns successfully, include the URL printed in the tool's text content as a markdown link [Speech](URL) in your reply so the user can play it. URLs expire in ~24h.
Args:
text (string, 1-5000): Text to synthesize.
model (string, default "kokoro"): Curated key (kokoro, minimax-speech, chatterbox, gemini-tts, grok-tts) or "owner/name[:version]".
voice (string, optional): Voice ID. For Kokoro: af_bella, af_sarah, am_adam, am_michael, bf_emma, bf_isabella, etc. (a-f = American female, b-f = British female, a-m = American male, b-m = British male).
speed (0.5-2.0, optional): Speech rate.
extra_input (object, optional): Model-specific extras (e.g. {audio_prompt: ""} for voice cloning with Chatterbox).
download (boolean, default true).
timeout_ms: Default 300000.
Returns: PredictionResult. local_paths contain WAV/MP3 files.
| Name | Required | Description | Default |
|---|---|---|---|
| text | Yes | Text to synthesize. | |
| model | No | Either a curated key (kokoro, minimax-speech, chatterbox, gemini-tts, grok-tts) or a Replicate identifier. | kokoro |
| speed | No | Speech speed multiplier (0.5-2.0). | |
| voice | No | Voice identifier. Kokoro examples: af_bella, am_adam, bf_emma. Check model docs for full list. | |
| download | No | Whether to download the generated files locally. Default true. When false, only Replicate URLs are returned (URLs expire after ~24h). | |
| timeout_ms | No | Max ms to wait for the prediction. If exceeded, returns the prediction ID so you can poll via replicate_get_prediction. Default: 300000 (5min). | |
| extra_input | No | Additional model-specific inputs. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate non-readonly, open world, non-idempotent, non-destructive. Beyond that, the description adds valuable context: URL expiration (~24h), timeout behavior with polling fallback, voice cloning capability via extra_input, and download behavior. 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?
Well-structured with clear sections: purpose, display requirement, parameter list, return info. Each sentence is purposeful, no redundancy. Slightly verbose but appropriate for the complexity.
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 most aspects but lacks detailed return value documentation (no output schema). Missing error handling or rate limit info. The description mentions local_paths and URL behavior but does not fully describe PredictionResult structure.
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%, providing baseline 3. Description adds significant meaning: lists curated model keys, explains voice naming convention, gives concrete example for extra_input, and details timeout_ms behavior. Goes beyond 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?
The description clearly states 'Convert text to natural-sounding speech,' providing a specific verb and resource. It does not explicitly differentiate from sibling tools like replicate_generate_audio or replicate_clone_voice, but the function 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?
No direct guidance on when to use this tool versus alternatives. The description implies usage for TTS but lacks explicit comparisons or exclusionary criteria, limiting agent decision-making.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
replicate_generate_videoGenerate Video with ReplicateA
Generate a video clip from a text prompt (and optionally a starting image). Video generation is slow — typically 1-5 minutes per clip.
DISPLAY REQUIREMENT — after this tool returns successfully, include the URL(s) printed in the tool's text content so the user can open the video. URLs expire in ~24h.
Args:
prompt (string): Text description of the video.
model (string, default "kling-pro"): Curated key (kling-pro, minimax-video, hunyuan-video, luma-ray, wan-2.2, grok-video, seedance) or "owner/name[:version]".
image_url (string, optional): Starting frame for image-to-video. Not all models support this.
duration_seconds (1-60, optional): Desired duration. Model-dependent.
aspect_ratio ("16:9" | "9:16" | "1:1", optional): Aspect ratio.
extra_input (object, optional): Additional model-specific inputs.
download (boolean, default true): Download the MP4 locally.
timeout_ms: Max wait. Default 300000 (5min). For very long videos, increase or rely on the pending+poll flow.
Returns: PredictionResult (see replicate_generate_image for shape). The local_paths will contain .mp4 files when downloaded.
Tip: If timeout_ms is exceeded, the result will have pending=true and a prediction_id. Wait a minute, then call replicate_get_prediction.
| Name | Required | Description | Default |
|---|---|---|---|
| model | No | Either a curated key (kling-pro, minimax-video, hunyuan-video, luma-ray, wan-2.2, grok-video, seedance) or a Replicate identifier. | kling-pro |
| prompt | Yes | Text prompt describing the video. | |
| download | No | Whether to download the generated files locally. Default true. When false, only Replicate URLs are returned (URLs expire after ~24h). | |
| image_url | No | Optional starting image URL for image-to-video. Not all models support this — check model schema. | |
| timeout_ms | No | Max ms to wait for the prediction. If exceeded, returns the prediction ID so you can poll via replicate_get_prediction. Default: 300000 (5min). | |
| extra_input | No | Additional model-specific inputs. | |
| aspect_ratio | No | Aspect ratio. | |
| duration_seconds | No | Desired duration in seconds. Model-dependent. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description discloses key behaviors beyond annotations: video generation is slow (1-5 min), URLs expire in ~24h, timeout handling returns pending=true and prediction_id for polling, and download defaults to true. Annotations only indicate readOnlyHint=false and openWorldHint=true; the description adds critical operational details.
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: purpose first, then display requirement, then parameters in list form, then returns, then tip. It is somewhat long but every sentence adds value. Minor redundancy in parameter listing (mirrors schema) could be trimmed but still functional.
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 8 parameters (1 required) and no output schema, the description covers the async workflow, timeout and polling, download behavior, and display requirement. It references the return shape from replicate_generate_image, which is acceptable. The tips for handling long videos complete the picture.
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%, providing detailed parameter descriptions. The description adds value by explaining the model parameter format ('owner/name[:version]'), noting image_url support varies by model, and advising on timeout_ms for long videos. This operational context goes 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?
The description clearly states it generates a video clip from a text prompt and optionally an image. The verb 'generate' and resource 'video' are specific. It distinguishes from siblings (e.g., replicate_generate_image, replicate_generate_audio) by focusing on video generation.
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 implies the tool is for video generation, but it does not explicitly compare it to alternatives like replicate_generate_image or replicate_run_model. There is no 'when-to-use' or 'when-not-to-use' guidance. The tip about polling after timeout is useful post-call, not for initial decision.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
replicate_get_deploymentInspect a Replicate deploymentARead-onlyIdempotent
Get the configuration of one deployment: its current model + version, hardware, and autoscaling min/max instances.
Args:
deployment: "owner/name" of the deployment.
Returns structuredContent: DeploymentSummary.
| Name | Required | Description | Default |
|---|---|---|---|
| deployment | Yes | Deployment identifier as "owner/name". |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate readOnlyHint, idempotentHint, and non-destructive. The description adds that it returns 'structuredContent: DeploymentSummary' with specific fields, providing context beyond 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 exceptionally concise: one sentence plus a brief parameter list. It front-loads the key purpose and uses efficient formatting.
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 tool with one parameter and no output schema, the description is complete. It covers what the tool returns, and additional details (errors, pagination) are unnecessary.
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 a clear description of the 'deployment' parameter. The description repeats this info without adding new semantics, so 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 clearly states 'Get the configuration of one deployment' and lists specific fields (model, version, hardware, autoscaling min/max). It distinguishes from sibling tools like 'replicate_list_deployments' (list all) and 'replicate_run_deployment' (execute).
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?
No explicit when-to-use or when-not-to-use guidance is provided. The usage is implied by the name and description, but alternatives like listing deployments are not mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
replicate_get_model_schemaGet Replicate Model Input SchemaARead-onlyIdempotent
Retrieve metadata and the OpenAPI input/output schema for a specific Replicate model. Use this before replicate_run_model to know which fields the model accepts and what they mean.
Args:
model (string): "owner/name" or "owner/name:version".
Returns structuredContent: { "model": string, "description": string | undefined, "visibility": string | undefined, "latest_version_id": string | undefined, "input_schema": object | undefined, // OpenAPI schema for inputs "output_schema": object | undefined, // OpenAPI schema for outputs "example_url": string | undefined // Replicate page with examples }
| Name | Required | Description | Default |
|---|---|---|---|
| model | Yes | Model identifier in "owner/name" or "owner/name:version" form. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and destructiveHint, so the safety profile is clear. The description adds value by detailing the structured content returned, including schema and metadata fields, which is beyond the annotation info.
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 concise and well-structured with clear 'Args' and 'Returns' sections. Every sentence serves a purpose, and the main use case is front-loaded. No unnecessary words.
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 has one parameter, comprehensive annotations, and no output schema, the description compensates by fully specifying the return structure. It is complete enough for an agent to understand what the tool does and what to expect.
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 the baseline is 3. The description adds minor clarity by specifying the parameter format 'owner/name' or 'owner/name:version', but the schema already includes that. No significant additional meaning 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?
The description clearly states 'Retrieve metadata and the OpenAPI input/output schema for a specific Replicate model.' It uses a specific verb (retrieve) and resource (schema), and distinguishes the tool from siblings like `replicate_run_model` by noting it should be used before running a model.
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 'Use this before replicate_run_model to know which fields the model accepts and what they mean.' This provides clear context and an alternative tool. It does not mention when not to use, but the guidance is strong enough.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
replicate_get_predictionGet Replicate Prediction StatusARead-onlyIdempotent
Retrieve the current status and (if available) outputs of a Replicate prediction by its ID. Use this when a previous generate_* or run_model call returned pending=true (timed out before completion).
Args:
prediction_id (string): The ID returned by a previous call.
download (boolean, default true): If the prediction has succeeded, download its outputs locally.
Returns: PredictionResult — same shape as replicate_generate_image. If still running, status will be "processing" or "starting" and pending will be true.
Typical flow:
Call replicate_generate_video → returns pending=true with prediction_id=abc123.
Wait ~1 minute.
Call replicate_get_prediction with prediction_id=abc123 → returns succeeded + URLs + local_paths.
| Name | Required | Description | Default |
|---|---|---|---|
| download | No | If the prediction has succeeded, whether to download outputs locally. | |
| prediction_id | Yes | Prediction ID returned by a generate_* or run_model call that timed out. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already provide readOnlyHint, idempotentHint, destructiveHint. The description adds detailed behavioral context: it explains return shape (PredictionResult same as replicate_generate_image), possible statuses ('processing', 'starting', succeeded), and the behavior of the download parameter. The typical flow further illustrates the polling pattern.
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: purpose sentence, bullet-pointed args, returns section, and numbered typical flow. It is concise with no extraneous information, front-loading key usage 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?
Given no output schema, the description explains the return shape and possible statuses. The typical flow completes the picture. Missing details like error handling or exact local download paths, but overall complete for a polling 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 parameters are documented. The description adds value by explaining that prediction_id comes from a previous call and that download only works if the prediction has succeeded. This provides meaningful context beyond the schema descriptions.
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 'Retrieve the current status and (if available) outputs of a Replicate prediction by its ID.' It uses a specific verb (retrieve) and resource (prediction by ID), and the typical flow distinguishes it from sibling tools like replicate_batch_status or replicate_get_training.
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 'Use this when a previous generate_* or run_model call returned pending=true (timed out before completion).' This provides clear context for when to use the tool. It lacks explicit exclusions of alternatives but the guidance is strong.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
replicate_get_trainingGet a Replicate training by IDARead-onlyIdempotent
Retrieve the current state of a training run: status, the resulting trained model version (once it succeeds), and any error.
Args:
training_id: ID returned by replicate_create_training.
Returns structuredContent: TrainingSummary.
| Name | Required | Description | Default |
|---|---|---|---|
| training_id | Yes | ID of the training run to inspect (returned by replicate_create_training). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already provide idempotent, read-only, and non-destructive hints. The description adds that the tool returns status, model version, and error, giving further insight into the response structure. No contradictions.
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 concise, with a clear purpose statement, an Args section, and a Returns note. Every sentence adds value, and the structure is easy to parse.
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 has only one parameter and no output schema, the description fully explains what the tool does and what it returns (TrainingSummary with status, version, error). No gaps remain.
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 input schema has 100% coverage with a description for training_id. The description adds that the ID comes from replicate_create_training, providing context beyond the schema's description of 'ID of the training run to inspect'.
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 retrieves the current state of a training run, listing specific data: status, trained model version, and errors. It distinguishes from siblings like replicate_create_training and replicate_list_trainings by focusing on a single training's detailed 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?
Specifies that training_id must come from replicate_create_training, implying this tool is used after creation to check progress. While it does not explicitly exclude alternatives like replicate_list_trainings or replicate_cancel_training, the context makes its use case clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
replicate_inpaintInpaint / outpaint an image with a maskA
Fill masked regions of an image based on a text prompt. Works for both inpainting (replace inside) and outpainting (extend canvas) when the mask covers the target area.
DISPLAY REQUIREMENT — embed the result inline using one of the three blocks (iframe / / markdown) printed by the tool.
Args:
image (URL): Source image.
mask (URL): Mask image. White = keep, black/transparent = repaint.
prompt: Describes what should appear in the masked region.
model (default "flux-fill-pro"): Curated (flux-fill-pro, sd-inpaint, ideogram-v2-edit) or "owner/name".
extra_input (object, optional): Model-specific extras (e.g. {guidance: 30} for flux-fill-pro).
| Name | Required | Description | Default |
|---|---|---|---|
| mask | Yes | URL of the mask. White areas are kept; black/transparent areas are inpainted. | |
| image | Yes | URL of the source image. | |
| model | No | Inpaint model. Curated: flux-fill-pro, sd-inpaint, ideogram-v2-edit. Or "owner/name". | flux-fill-pro |
| prompt | Yes | Text describing what to paint in the masked area. | |
| download | No | ||
| timeout_ms | No | Max ms to wait for the prediction. If exceeded, returns the prediction ID so you can poll via replicate_get_prediction. Default: 300000 (5min). | |
| extra_input | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate non-read-only and non-destructive nature. The description adds context about display requirements (embed result inline) but does not disclose other behavioral traits like rate limits, auth needs, or failure modes. 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?
Description is structured with two paragraphs and a bullet list, front-loading the purpose. It could be slightly more concise (e.g., timeout explanation is verbose), but overall effective.
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?
Missing output schema means the description should clarify return format; it only mentions display requirements. With 7 parameters and 71% schema coverage, the description covers key ones but leaves gaps (e.g., no error handling or polling details for timeout).
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 71%, and the description adds meaningful context beyond the schema, such as clarifying mask semantics (white=keep, black=repaint) and model examples (flux-fill-pro). However, it omits details on timeout_ms and download, which are in the schema but not reinforced.
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 'Fill masked regions of an image based on a text prompt' and distinguishes between inpainting and outpainting, making the tool's purpose specific and differentiated from sibling image tools like replicate_generate_image or replicate_remove_background.
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?
No explicit guidance on when to use this tool vs alternatives (e.g., replicate_generate_image for full image generation). The description implies use for inpainting/outpainting but lacks 'when not to use' or references to other tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
replicate_lipsyncLipsync / talking avatar with ReplicateA
Animate a portrait image to speak — either from a text script (model does TTS + lipsync) or from a driving audio file. Produces an MP4 video.
DISPLAY REQUIREMENT — after this tool returns successfully, include the URL(s) so the user can open the video. URLs expire in ~24h.
Args:
image_url (URL): Portrait or face image to animate. Use replicate_upload_file for local files.
text (string, optional): Script for the avatar to speak. Used by video-avatar (maps to voice_script). At least one of text or audio_url is required.
audio_url (URL, optional): Driving audio for lipsync. Required for sadtalker; optional override for video-avatar. At least one of text or audio_url is required.
model (string, default "video-avatar"): Curated key (video-avatar, sadtalker) or "owner/name[:version]".
extra_input (object, optional): Model-specific extras (e.g. {voice_prompt: "speak slowly"} for video-avatar).
download (boolean, default true): Download the MP4 locally.
timeout_ms: Default 300000.
Returns: PredictionResult. local_paths contain .mp4 files.
Examples:
image_url="<portrait.jpg>", text="Hello! Welcome to our product demo." → video-avatar (TTS + lipsync)
image_url="<face.jpg>", audio_url="<speech.wav>", model="sadtalker" → audio-driven lipsync
| Name | Required | Description | Default |
|---|---|---|---|
| text | No | Text script for the avatar to speak. Required for models that do TTS+lipsync (video-avatar). Ignored when audio_url is provided. | |
| model | No | Lipsync model. Curated: video-avatar, sadtalker. Or "owner/name". | video-avatar |
| download | No | ||
| audio_url | No | URL of the driving audio. Required for audio-only lipsync models (sadtalker). Optional override when model can do TTS. | |
| image_url | Yes | URL of the portrait or face image to animate. Use replicate_upload_file for local files. | |
| timeout_ms | No | Max ms to wait for the prediction. If exceeded, returns the prediction ID so you can poll via replicate_get_prediction. Default: 300000 (5min). | |
| extra_input | No | Additional model-specific inputs. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate non-readonly, non-destructive. The description adds that it produces MP4 video, URLs expire in ~24h, and that timeout returns prediction ID for polling. No contradictions. This context is valuable beyond 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?
Well-structured with overview, display requirement, parameter list, and examples. Every sentence adds value, though it's a bit long. No wasted words; front-loaded with the core action.
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?
No output schema, but description explains return type (PredictionResult with mp4 files) and display requirement. It covers timeout handling and model-specific extras. For a complex tool with 7 params and nested objects, it is sufficiently 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?
Schema coverage is high (86%), so baseline 3. The description adds meaning beyond schema: text maps to 'voice_script', extra_input usage, model defaults, and timeout_ms behavior. It compensates for the 14% uncovered (like timeout_ms details) and provides examples.
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 it animates a portrait to speak using either text (TTS+lipsync) or audio driving. It distinguishes from sibling tools like replicate_generate_video and replicate_generate_speech by focusing on lipsync. The verb 'animate' and resource 'portrait image' are specific.
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 explains when to use text vs audio_url, and that at least one is required. It mentions using replicate_upload_file for local files, and shows examples for both modes. However, it does not explicitly exclude cases like when model selection is inappropriate, but the overall guidance is clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
replicate_list_deploymentsList your Replicate deploymentsARead-onlyIdempotent
List the deployments on the authenticated Replicate account. A deployment is a private, autoscaled endpoint pinned to a specific model + hardware.
Args:
limit (1-100, default 20): How many deployments to return.
Returns structuredContent: { count: number, deployments: DeploymentSummary[] }. Each DeploymentSummary has owner, name, and current_release { model, version, hardware, min_instances, max_instances }.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Number of deployments to return (1–100). Default 20. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already provide readOnly, idempotent, not destructive. Description adds authentication context, return format details (structuredContent with DeploymentSummary fields), and explains what a deployment is. No contradiction.
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 efficient sentences for purpose/definition, then clear args and return. Every sentence adds value. Front-loaded with main action.
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 purpose, parameter, return structure. For a list tool with one param and no output schema, it is mostly complete. Could mention that multiple pages may exist (openWorldHint), but not critical.
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 covers limit parameter fully with description, default, min, max. Description mirrors this without adding significant new meaning. Baseline 3 due to high schema coverage.
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?
Description clearly states 'List the deployments on the authenticated Replicate account' and defines what a deployment is, distinguishing it from siblings like get_deployment (singular) and run_deployment (execute).
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?
Implied usage (when you want to list all deployments) but no explicit when-not or alternative references to get_deployment for a specific deployment.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
replicate_list_predictionsList recent Replicate predictionsARead-onlyIdempotent
Return the most recent predictions on the authenticated Replicate account. Useful to recover a prediction ID, audit recent calls, or check what's still running.
Args:
limit (1-100, default 10): How many predictions to return.
Returns structuredContent: { count: number, predictions: PredictionSummary[] } Each PredictionSummary has id, model, status, created_at, completed_at, url.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Number of recent predictions to return (1–100). Default 10. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, etc. The description adds that it returns predictions from the authenticated account and includes the return structure, providing behavioral context beyond 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 concise (three sentences) and well-structured: purpose first, then parameter, then return format. No unnecessary words.
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 list tool with one parameter and good annotations, the description covers purpose, parameter behavior, and return structure (compensating for missing output schema). It is complete and self-contained.
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 describes the limit parameter fully. The description repeats the same info, adding no new meaning beyond what the schema provides. 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 clearly states the tool returns the most recent predictions on the authenticated account, with specific use cases (recover prediction ID, audit, check running). It is distinct from siblings that deal with single predictions or trainings.
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 provides explicit use cases (listing recent predictions for recovery, audit, or status check), helping the agent decide when to invoke. It does not name alternatives, but the context is clear enough given the large sibling list.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
replicate_list_trainingsList recent Replicate trainingsARead-onlyIdempotent
Return the most recent training runs on the authenticated account.
Args:
limit (1-100, default 10): How many trainings to return.
Returns structuredContent: { count: number, trainings: TrainingSummary[] }.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Number of recent training runs to return (1–100). Default 10. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, openWorldHint=true, idempotentHint=true, and destructiveHint=false, so the tool's safety is clear. The description adds the scope 'most recent' but does not elaborate on ordering, time limits, or pagination behavior beyond the limit parameter.
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 very concise, with the core purpose front-loaded. The Args section is brief but includes necessary detail. No wasted sentences.
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 list tool with one parameter, rich annotations, and many similar siblings, the description adequately covers the purpose and basic usage. It could mention return type structure more explicitly but is otherwise 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?
Schema coverage is 100% for the single parameter limit, including default and range. The description restates the schema info, adding no new meaning beyond 'How many trainings to return.' Baseline score applies.
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 it returns recent training runs for the authenticated account, using specific verb and resource. It distinguishes itself from siblings like replicate_get_training (single training) and replicate_create_training (create).
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?
No guidance on when to use this tool versus alternatives like replicate_get_training or replicate_create_training. The description lacks context for selection among many sibling tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
replicate_pipeline_startStart Async Pipeline (DAG of predictions)A
Run a directed acyclic graph (DAG) of Replicate predictions as a background job. Returns a pipeline_id immediately. Poll replicate_pipeline_status for per-step progress and results.
Independent steps run concurrently. Downstream steps auto-start when their dependencies complete. Use "$stepId.field[n]" template strings to pass one step's output as another step's input.
IMPORTANT: model must be a full Replicate identifier ("owner/name" or "owner/name:version"). Curated shortcuts (e.g. "flux-schnell") are not supported — look up the full id via replicate_get_model_schema.
Template reference syntax: "$gen.urls[0]" → first URL output of step "gen" "$gen.urls" → full URLs array "$gen.local_paths[0]" → first downloaded local path "$gen.text_output[0]" → first text output (for LLMs)
Args:
steps (array, 1–20): Pipeline steps. Each: { id, model, input, depends_on? }. depends_on is inferred from $ref patterns in input when omitted.
concurrency (1–5, default 3): Max simultaneous steps.
download (boolean, default true): Download step outputs locally.
timeout_ms_per_step (default 300000): Per-step timeout.
ttl_hours (1–72, default 1): How long to keep results in memory. Lost on server restart.
Returns: { pipeline_id, total, message }
Example — generate + upscale + remove background in parallel: steps=[ { "id": "gen", "model": "black-forest-labs/flux-schnell", "input": { "prompt": "a fox" } }, { "id": "upscale", "model": "nightmareai/real-esrgan", "input": { "image": "$gen.urls[0]", "scale": 4 } }, { "id": "no_bg", "model": "lucataco/remove-bg", "input": { "image": "$gen.urls[0]" } } ] upscale and no_bg both depend on gen, run in parallel after gen completes.
| Name | Required | Description | Default |
|---|---|---|---|
| steps | Yes | Pipeline steps. 1–20 steps. | |
| download | No | Download step outputs locally. Default: true. | |
| ttl_hours | No | How long to keep pipeline results in memory (1–72h). Default: 1h. State is lost if the server restarts. | |
| concurrency | No | Max simultaneous steps (1–5). Default: 3. | |
| timeout_ms_per_step | No | Per-step prediction timeout ms (5000–1800000). Default: 300000 (5min). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Discloses async nature, polling needed, parallel execution, template syntax for dependencies, per-step timeout, TTL with state loss on restart, and download option. Adds substantial context beyond annotations indicating a mutation.
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?
Well-structured with summary, important note, template reference, args, return, and example. Slightly lengthy but front-loaded and each sentence serves a purpose. Minor redundancy could be trimmed.
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 all parameters, dependencies, timeouts, TTL, download, and return value. Includes polling guidance and example. No output schema but explains what to expect. Complete for a complex pipeline 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%, but description adds significant value: explains template syntax for step dependencies, automatic dependency inference, and provides a detailed example. Baseline 3 exceeded due to extra context.
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?
Description clearly states it runs a DAG of predictions as a background job, returning a pipeline_id immediately. It distinguishes from siblings like replicate_run_model by emphasizing concurrent step execution and dependency handling.
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 advises that model must be a full Replicate identifier and not shortcuts, directing to replicate_get_model_schema for lookup. Provides an example but does not explicitly contrast with sibling tools like replicate_batch_start.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
replicate_pipeline_statusGet Pipeline StatusARead-onlyIdempotent
Poll the status of a pipeline started with replicate_pipeline_start.
Args:
pipeline_id (string): Pipeline ID returned by replicate_pipeline_start.
include_outputs (boolean, default true): Include full PredictionResult per step. Set false for a counts-only summary while the pipeline is running.
Returns structuredContent: { pipeline_id, overall_status, total, succeeded, failed, skipped, running, pending, created_at, expires_at, steps: [{ id, model, status, prediction_id, result?, error?, skip_reason?, started_at, completed_at }] }
overall_status: "running" — steps still executing "completed" — all steps succeeded "partial" — all done, at least one failed or was skipped (failed dependency or budget error)
Note: pipeline-level errors (cycle detected, unknown depends_on) are rejected at replicate_pipeline_start with an error response — they never produce a pollable pipeline.
Tip: Poll every 10–30 seconds until overall_status is "completed" or "partial".
| Name | Required | Description | Default |
|---|---|---|---|
| pipeline_id | Yes | Pipeline ID returned by replicate_pipeline_start. | |
| include_outputs | No | Include full PredictionResult per step. Set false for counts-only summary while pipeline is running. Default: true. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations indicate read-only, idempotent, non-destructive. Description adds behavior details: polling loop, include_outputs toggle for performance, and that pipeline-level errors are caught at start, not here. No contradiction.
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?
Description is structured with sections (Args, Returns, Tip), but is somewhat long. Every sentence provides value, including the example structure and note about pipeline errors.
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?
Comprehensive for a status poller: explains return structure, statuses (running, completed, partial), and usage pattern. No output schema, but the description provides detailed structure.
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 covers both params (100% coverage). Description adds context: pipeline_id origin, include_outputs default and effect (full vs counts-only), beyond 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?
Description clearly states it polls status of a pipeline started with replicate_pipeline_start, lists return fields and statuses, distinguishing it from the start tool.
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 to poll after starting a pipeline and gives polling interval tip (10-30s). Does not explicitly compare to other status tools among siblings, but usage is clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
replicate_recommend_modelRecommend the Best Model for a TaskARead-onlyIdempotent
Rank the curated models in a category by a priority (speed, cost, quality, or balanced) and return recommendations with cost estimates and reasoning. This does NOT run anything — it advises which model to use.
Workflow: call this to pick a model, then call the matching generate tool (e.g. replicate_generate_image) with model set to the recommended key.
Args:
category (required): One of image, video, audio, tts, llm, vision, upscale, bg, stt, inpaint, segment, embed, voiceclone, threed, lipsync.
priority (default "balanced"): "speed" (fastest), "cost" (cheapest), "quality" (best), or "balanced" (weighted).
task_description (optional): Free text. Keyword hints like "quick draft" or "professional logo" nudge balanced ranking.
max_cost_usd (optional): Exclude models estimated above this cost.
duration_seconds (optional, 1–600): For per-second-priced categories (video, audio), used in cost estimation.
Returns structuredContent: { category, priority, recommendations: [{ key, model_id, speed, est_cost_usd, score, reason }], // top 5 count }
Examples:
category="image", priority="speed" → flux-schnell first
category="image", priority="quality" → highest-fidelity model first
category="video", priority="cost", duration_seconds=5 → cheapest per-5s clip
| Name | Required | Description | Default |
|---|---|---|---|
| category | Yes | Which model category to recommend within. | |
| priority | No | Optimization target. speed=fastest, cost=cheapest, quality=best, balanced=weighted blend. Default: balanced. | balanced |
| max_cost_usd | No | Optional cap — exclude models whose estimated cost exceeds this. Models with unknown pricing are always included regardless of this cap. | |
| duration_seconds | No | For per-second-priced categories (video, audio), the expected duration used in cost estimation. | |
| task_description | No | Optional task description. Keyword hints (e.g. 'quick draft' or 'professional logo') nudge balanced-mode ranking. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations indicate readOnlyHint, idempotentHint, and destructiveHint are all appropriately set. The description adds: 'This does NOT run anything — it advises which model to use,' aligning with annotations and providing extra clarity. No contradictions.
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 concise and well-structured: intro, workflow, args, return format, examples. Every sentence adds value 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 no output schema, the description provides a structured return format example. It covers inputs, outputs, and workflow, making it complete for an advisory 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%, and the description reiterates each parameter with additional context and examples. It explains the enum values, defaults, and optional behavior, adding significant value 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?
The description clearly states the tool ranks curated models by priority and returns recommendations. It uses specific verbs (rank, recommend) and identifies the resource (models in a category). It distinguishes itself from sibling tools like replicate_generate_* by explicitly noting it does not run anything.
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 includes a workflow: call this to pick a model, then call a generate tool. This provides clear guidance on when to use it. However, it does not explicitly mention when not to use or contrast with alternatives like replicate_estimate_cost.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
replicate_refresh_modelsDiscover New Popular Replicate ModelsARead-only
Search Replicate for popular models NOT yet in the curated registry. Returns suggestions only — does not modify code.
Use this to find new models worth adding. Then ask Claude to edit src/models.ts with the ones you want.
Args:
categories (string[], optional): Which categories to check. Default: all 15 (image, video, audio, tts, llm, vision, upscale, bg, stt, inpaint, segment, embed, voiceclone, threed, lipsync).
min_run_count (integer, optional): Minimum run_count threshold. Default: 1000.
limit_per_category (integer, optional): Max suggestions per category (1-20). Default: 5.
Returns structuredContent: { "checked_at": string, "categories_checked": string[], "suggestions": [{ category, owner, name, model_id, run_count, description, replicate_url }], "already_curated": number, "total_suggestions": number }
Examples:
"Check for new popular models" → all categories, min 1000 runs
categories=["image","video"], min_run_count=10000 → only top-tier image/video models
| Name | Required | Description | Default |
|---|---|---|---|
| categories | No | Categories to check. Default: all 15 (image, video, audio, tts, llm, vision, upscale, bg, stt, inpaint, segment, embed, voiceclone, threed, lipsync). | |
| min_run_count | No | Minimum run_count to surface a model. Default: 1000. | |
| limit_per_category | No | Max suggestions per category (1–20). Default: 5. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Adds behavioral context beyond annotations: explains it returns suggestions only, does not modify code, and details the search scope (popular models not in curated registry). Annotations already provide readOnlyHint and destructiveHint.
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?
Well-structured with one-line summary, usage advice, parameter list with defaults, return structure, and examples. No redundant sentences.
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?
Comprehensive for a read-only search tool with three optional parameters. Describes output structure in detail, compensating for missing output schema. Annotations support safe usage.
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%, but description elaborates with default values, full list of category options, and practical examples. Adds meaning beyond schema descriptions.
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?
Clearly states it searches for popular Replicate models not in the curated registry and returns suggestions without modifying code. Distinguishes from siblings by focusing on uncurated popular 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?
Provides explicit usage advice: 'Use this to find new models worth adding. Then ask Claude to edit src/models.ts with the ones you want.' Does not explicitly exclude alternatives but context is clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
replicate_remove_backgroundRemove the background from an imageA
Produce a transparent-background version (PNG) of an image.
DISPLAY REQUIREMENT — after this tool returns successfully, embed the cut-out image inline using one of the three blocks (iframe / / markdown) printed by the tool.
Args:
image (string URL): URL of the source image.
model (string, default "rembg"): Curated key (rembg, birefnet, briaai-rmbg) or "owner/name".
extra_input (object, optional): Model-specific extras.
download (boolean, default true): Download the cut-out PNG locally.
Returns: PredictionResult with urls + local_paths to a transparent PNG.
Examples:
image="" → rembg quick cut
image="", model="birefnet" → sharper edge for hair
| Name | Required | Description | Default |
|---|---|---|---|
| image | Yes | URL of the image whose background to remove. | |
| model | No | Background remover. Curated: rembg, birefnet, briaai-rmbg. Or "owner/name". | rembg |
| download | No | ||
| timeout_ms | No | Max ms to wait for the prediction. If exceeded, returns the prediction ID so you can poll via replicate_get_prediction. Default: 300000 (5min). | |
| extra_input | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations indicate readOnlyHint=false and openWorldHint=true. Description adds that the output is a PNG and notes local download, but does not elaborate on timeout behavior (though mentioned in schema), side effects, or rate limits. Adequate but not comprehensive.
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 stated first, followed by a crucial display requirement, then concise parameter list, return type, and examples. No unnecessary words; every sentence earns its place.
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?
Examples and return type help, but no output schema exists and description doesn't detail the PredictionResult structure or error scenarios. For a tool with 5 params and nested objects, more detail would be beneficial.
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?
Description explains image, model (curated keys vs custom), extra_input, and download meaningfully. However, it omits the timeout_ms parameter. With 60% schema coverage, the description adds value for most parameters.
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 produces a transparent-background PNG, with examples differentiating from siblings like replicate_generate_image or replicate_inpaint. The title also reinforces the specific function.
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 display instructions for embedding the result, but does not specify when to use this tool versus alternatives like replicate_segment or replicate_inpaint. No prerequisites or exclusions are given.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
replicate_run_deploymentRun a prediction on a Replicate deploymentA
Run a prediction against a deployment's current release. WAITS for the prediction to finish and (by default) auto-downloads the outputs locally — same UX as the curated generate_* tools.
Args:
deployment: "owner/name" of the deployment to run.
input: model input parameters as a JSON object (same shape the deployment's underlying model expects).
download (default true): download output files locally.
timeout_ms (optional): max ms to wait before returning a pending result you can poll with replicate_get_prediction.
Returns the standard prediction result (inline image preview / text output, URLs, local_paths, prediction_id).
| Name | Required | Description | Default |
|---|---|---|---|
| input | No | Model input parameters as a JSON object — same shape the deployment's underlying model expects. | |
| download | No | Whether to download the generated files locally. Default true. When false, only Replicate URLs are returned (URLs expire after ~24h). | |
| deployment | Yes | Deployment to run, as "owner/name". Inspect it first with replicate_get_deployment. | |
| timeout_ms | No | Max ms to wait for the prediction. If exceeded, returns the prediction ID so you can poll via replicate_get_prediction. Default: 300000 (5min). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description fully discloses that the tool is a blocking write operation (non-readonly), auto-downloads by default, supports optional timeout, and returns a standard prediction result with inline previews, URLs, local paths, and prediction ID. This adds value beyond the annotations (readOnlyHint=false) and schema by detailing the synchronous execution behavior and return format.
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 concise and well-structured: a clear opening sentence followed by a bulleted Args block. Every sentence is informative with no redundancy. The structure aids quick scanning for the agent.
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 has 4 parameters, no output schema, and moderate complexity, the description covers all essential aspects: the action, blocking behavior, download behavior, timeout handling, and return value components. It also mentions URL expiration for download=false, which is not in the schema. The description is fully adequate for agent understanding.
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 description essentially restates the schema parameter descriptions (e.g., deployment as 'owner/name', input as JSON object, download boolean, timeout optional with max wait). The description does not add significant new meaning beyond clarifying that the input shape matches the underlying model's expectations. Baseline score 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 runs a prediction against a deployment's current release, and distinguishes it from siblings like replicate_run_model by noting the deployment context and the auto-download behavior. The verb 'run' and resource 'deployment' are specific and 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 explains that the tool blocks until completion and auto-downloads outputs, mirroring the curated generate_* tools. It also notes that a timeout parameter can return a pending result for polling via replicate_get_prediction. However, it does not explicitly state when to use this tool versus alternatives like replicate_run_model, which may be confusing in some contexts.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
replicate_run_modelRun Any Replicate ModelA
Generic escape hatch: run ANY model in the Replicate catalog by its "owner/name" identifier. This tool gives Claude access to the entire Replicate model catalog — anything not covered by the curated specialised tools (image, video, audio, speech, chat, vision, upscale, remove-bg) can be reached from here.
DISPLAY REQUIREMENT — if the result includes image URLs, paste ONE of the embed blocks the tool prints (iframe / / markdown — try in order) verbatim in your reply so the image renders inline in the chat.
Use this for any category WITHOUT a curated specialised tool, including but not limited to:
Embeddings (sentence-transformers, BGE, Jina)
Segmentation (SAM, Segment Anything)
Depth estimation (MiDaS, ZoeDepth, Marigold)
Inpainting / outpainting (LaMa, Stable Diffusion Inpaint, controlnet-inpaint)
ControlNet variants (canny, depth, openpose, normal-map)
Face / pose / hand detection (insightface, mediapipe, etc.)
3D generation (TripoSR, Wonder3D, InstantMesh)
Audio-to-text / speech recognition (whisper, Distil-Whisper)
Audio separation / stem splitting (Demucs, MDX)
Style transfer, colourisation, deblurring, denoising
Code completion / instruction-tuned code models (CodeLlama, DeepSeek-Coder)
Music continuation / source separation
ANY newly released model not yet in the curated registries
Workflow:
(Optional) Call replicate_search_models to discover models by keyword (e.g. "image segmentation", "speech to text").
(Recommended) Call replicate_get_model_schema with "owner/name" to inspect required inputs.
Call this tool with the model id and an input object matching that schema.
Args:
model (string): "owner/name" (latest official version) or "owner/name:version_hash" (pinned).
input (object): Model-specific input parameters.
download (boolean, default true): Download outputs locally.
timeout_ms: Default 300000.
Returns: PredictionResult.
Examples:
Upscale an image: model="nightmareai/real-esrgan", input={"image": "https://example.com/in.png", "scale": 4}
Remove background: model="lucataco/remove-bg", input={"image": ""}
Run an LLM (output is text, not a file, so local_paths will be empty): model="meta/meta-llama-3-70b-instruct", input={"prompt": "Explain quantum entanglement in two sentences."}
| Name | Required | Description | Default |
|---|---|---|---|
| input | Yes | Model input parameters as a JSON object. Use replicate_get_model_schema first if unsure what a model accepts. | |
| model | Yes | Replicate model identifier. Either "owner/name" (uses latest official version) or "owner/name:version_hash" (pins a specific version). Examples: "black-forest-labs/flux-schnell", "meta/meta-llama-3-70b-instruct". | |
| download | No | Whether to download the generated files locally. Default true. When false, only Replicate URLs are returned (URLs expire after ~24h). | |
| timeout_ms | No | Max ms to wait for the prediction. If exceeded, returns the prediction ID so you can poll via replicate_get_prediction. Default: 300000 (5min). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate openWorldHint=true and destructiveHint=false. Description adds value by explaining timeout behavior (returns prediction ID if exceeded), download default and effect, and that it runs any model. No contradictions.
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?
Description is lengthy but well-structured with sections, workflow, examples, and display requirement. Every sentence serves a purpose. Minor redundancy could be trimmed, but overall it is organized and front-loaded with key points.
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 generality (no output schema), the description thoroughly covers return value (PredictionResult), behavior for images, timeout handling, and workflow. It is complete enough for an agent to use correctly without additional cues.
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 baseline 3. Description adds rich context: for model parameter explains format and version pinning; for input recommends using get_model_schema first; for download explains when to use false; for timeout explains max and behavior. This significantly aids correct invocation.
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 runs 'ANY model' in the Replicate catalog by identifier, distinguishing it from curated specialized tools. It provides a specific verb and resource, and directly differentiates from siblings by listing categories without curated tools.
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?
Explicit guidance on when to use (categories without curated tool) and when not to use (prefer curated tools). Recommends a workflow: search, get schema, then run. Provides examples of appropriate use cases and clear alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
replicate_search_modelsSearch Replicate Model CatalogARead-onlyIdempotent
Search the Replicate catalog by free-text query. Returns up to 25 matching models with names, descriptions, and URLs.
Args:
query (string, 1-200 chars): Free-text search. Examples: "image upscaler", "voice cloning", "depth estimation", "code generation".
Returns structuredContent: { "count": number, "models": [ { "owner": string, "name": string, "description": string | undefined, "url": string, "run_count": number | undefined, "cover_image_url": string | undefined } ] }
Tip: Once you find a promising model, call replicate_get_model_schema with "owner/name" to see its inputs before calling replicate_run_model.
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes | Free-text search across the Replicate model catalog. Examples: "image upscaler", "voice cloning", "background removal". |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations indicate readOnlyHint=true, destructiveHint=false, and idempotentHint=true, which are consistent. The description adds transparency by stating the return limit and structure, enhancing understanding beyond 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 concise, well-structured with clear sections (summary, args, returns, tip), and includes a practical usage tip without extraneous 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?
Given low parameter count, high schema coverage, and rich annotations, the description completes the picture with return structure details and workflow guidance, fully informing agent usage.
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 a single parameter described with min/max length and examples. The description reinforces these constraints and provides additional examples, adding value 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?
The description clearly states it searches the Replicate catalog by free-text query, returning up to 25 matching models. It uses a specific verb and resource, distinguishing it from sibling tools like replicate_get_model_schema and replicate_recommend_model.
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 provides a tip suggesting to call replicate_get_model_schema after finding a promising model, guiding the agent on proper workflow. However, it does not explicitly state when not to use this tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
replicate_segmentSegment an image (SAM 2 / Grounded-SAM)A
Produce a segmentation mask of an image. Use SAM 2 for point/box-prompt masks (auto-mask everything when no prompt given) or Grounded-SAM for text-prompt masking like "the red car".
DISPLAY REQUIREMENT — embed the mask result inline using one of the three blocks printed by the tool.
Args:
image (URL): Source image.
prompt (string, optional): Text prompt for grounded segmentation. Required for grounded-sam.
model (default "sam-2"): Curated (sam-2, grounded-sam) or "owner/name".
extra_input (object, optional): SAM-specific tuning (e.g. {points_per_side: 32}).
| Name | Required | Description | Default |
|---|---|---|---|
| image | Yes | URL of the image to segment. | |
| model | No | Segmentation model. Curated: sam-2, grounded-sam. Or "owner/name". | sam-2 |
| prompt | No | Text-prompt for grounded segmentation (e.g. 'the red car'). Required for grounded-sam. | |
| download | No | ||
| timeout_ms | No | Max ms to wait for the prediction. If exceeded, returns the prediction ID so you can poll via replicate_get_prediction. Default: 300000 (5min). | |
| extra_input | No | Model-specific extras (e.g. {points_per_side: 32} for SAM 2 auto-mask). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Discloses async behavior with timeout and polling fallback via replicate_get_prediction, and display requirement for embedding results. Annotations are consistent (non-read-only, not idempotent, not destructive).
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?
Concise with front-loaded purpose and structured args. Slight redundancy with schema but minimal waste.
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 key aspects: mask result display, timeout/async behavior, model selection. No output schema, but description explains how to use the result. Adequate for complexity level.
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?
Adds meaning beyond schema: explains prompt required for grounded-sam, model curated options, extra_input for SAM tuning. Doesn't enrich download parameter, but overall compensates for schema coverage (83%).
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?
Description clearly states the tool produces segmentation masks, distinguishes between SAM 2 (point/box-prompt) and Grounded-SAM (text-prompt), and differentiates from sibling tools like replicate_generate_image or replicate_inpaint.
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 clear usage context: when to use SAM 2 vs Grounded-SAM, and that prompt is required for Grounded-SAM. Lacks explicit exclusions or when-not-to-use guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
replicate_transcribe_audioTranscribe Audio / Video with WhisperA
Transcribe an audio or video file to text using Whisper-family models on Replicate.
Args:
audio (URL): URL of the audio (or video) to transcribe.
model (default "incredibly-fast-whisper"): Curated key (whisper, incredibly-fast-whisper, whisperx, scribe) or "owner/name".
language (string, optional): ISO-639 hint (e.g. "en", "it"). Default: auto-detect.
translate_to_english (bool, optional): Translate the transcript to English instead of preserving source language.
extra_input (object, optional): Model-specific extras (e.g. {batch_size: 24} for incredibly-fast-whisper).
Returns: PredictionResult with text_output containing the transcript.
| Name | Required | Description | Default |
|---|---|---|---|
| audio | Yes | URL of the audio (or video) file to transcribe. | |
| model | No | Speech-to-text model. Curated: whisper, incredibly-fast-whisper, whisperx, scribe. Or "owner/name". | incredibly-fast-whisper |
| download | No | Output is text — default false. | |
| language | No | ISO-639 language hint (e.g. 'en', 'it'). Default: auto-detect. | |
| timeout_ms | No | Max ms to wait for the prediction. If exceeded, returns the prediction ID so you can poll via replicate_get_prediction. Default: 300000 (5min). | |
| extra_input | No | ||
| translate_to_english | No | If true, translate the transcript to English. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations indicate readOnlyHint=false and destructiveHint=false, which are consistent with the description (creates a prediction, not destructive). The description adds details on return format (PredictionResult with text_output), timeout behavior (returns prediction ID if exceeded), and model options, providing context beyond 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 concise and front-loaded with the main purpose. It lists parameters clearly without redundancy. It could be slightly more structured (e.g., separating description from args), but it is efficient and focused.
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 complexity (7 parameters, nested objects, no output schema), the description covers the return type, timeout behavior, and optional parameters. It does not specify file size limits or supported formats, but these are likely implied by the Replicate platform.
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 86% schema coverage, the baseline is 3. The description adds value by explaining the model parameter (curated keys vs 'owner/name'), the translate_to_english boolean, and the extra_input object for model-specific options, which supplements the schema descriptions.
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 'Transcribe an audio or video file to text using Whisper-family models on Replicate', with a specific verb (transcribe) and resource (audio/video to text). It distinguishes itself from sibling tools like replicate_generate_speech (text-to-speech) and replicate_vision (image processing).
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 implies usage for transcription tasks and explains parameters like model selection, language hint, and translation. However, it does not explicitly mention when not to use this tool (e.g., for real-time transcription) or compare to alternatives like replicate_run_model with custom models.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
replicate_upload_fileUpload a file (path or base64) to ReplicateA
Upload a file to Replicate's file storage and get back a URL valid for ~24 hours. Pass the returned URL as a model input (e.g. image for upscale/inpaint/vision, image_url for video, reference_audio_url for voice clone).
Two input modes — provide EXACTLY ONE:
file_path: absolute local path of a file on the machine running the server.
base64_data: the file's bytes as base64 (a bare base64 string OR a full "data:;base64,..." URI). Use this when you hold bytes in memory but have no local path — e.g. an image a user dropped into the chat that a code container can read and base64-encode. NOTE: an MCP client (Claude Desktop) generally cannot reproduce a large dragged-in image's exact bytes as a tool argument — base64 mode is for callers that genuinely have the bytes (web container, programmatic clients).
Args:
file_path (string, optional): Absolute local path. Provide this OR base64_data.
base64_data (string, optional): base64 contents or data: URI. Provide this OR file_path.
mime_type (string, optional): MIME override (e.g. 'image/png'). Auto-detected from the path extension or a data: URI; defaults to application/octet-stream for raw base64.
file_name (string, optional): Name for a base64 upload.
Returns structuredContent: { url, file_id, name }
url: Replicate-hosted URL (~24h expiry) — pass this as a model input.
Examples:
file_path="C:/Users/me/photo.png"
base64_data="data:image/png;base64,iVBORw0KG...", → uploads, returns URL
| Name | Required | Description | Default |
|---|---|---|---|
| file_name | No | Optional name for a base64 upload. Ignored when file_path is used (the basename is taken from the path). | |
| file_path | No | Absolute local path of the file to upload. Provide either this OR base64_data. | |
| mime_type | No | MIME type override (e.g. 'image/png'). Auto-detected from file extension (file_path) or the data URI; defaults to application/octet-stream for raw base64. | |
| base64_data | No | File contents as base64 (a bare base64 string or a full 'data:<mime>;base64,...' URI). Use this when you have bytes in memory but no local path — e.g. a code container that read a chat-uploaded image. Provide either this OR file_path. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations providing hints, the description fully covers behavioral traits: the file upload operation, the ~24-hour URL expiry, the two input modes and their constraints, and limitations of base64 mode for certain clients. No contradictions with annotations are present.
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 with clear sections, bullet points, and examples. Every sentence adds value, and key information is front-loaded. It is appropriately sized for a tool with multiple modes and parameters.
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 no output schema, the description adequately explains the return format (structuredContent with url, file_id, name) and the URL expiry. It covers all necessary details for an agent to select and invoke the tool correctly, including examples.
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 schema provides 100% parameter coverage with descriptions. The description adds further meaning: explains exclusivity of file_path and base64_data, auto-detection of mime_type, and the behavior of file_name. It clarifies edge cases and usage patterns 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?
The description clearly states the specific verb and resource: 'upload a file to Replicate's file storage and get back a URL'. It distinguishes this tool from its siblings, which are about predictions, models, and other 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?
The description explains when to use file_path vs base64_data, and notes that base64 is for callers with bytes in memory. It provides examples and clarifies the returned URL's usage. However, it lacks explicit when-not-to-use guidance or alternatives, though contextually it is clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
replicate_upscale_imageUpscale / restore an image with ReplicateA
Upscale an image to higher resolution. Optional face restoration for photos.
DISPLAY REQUIREMENT — after this tool returns successfully, embed the upscaled image inline using one of the three blocks (iframe / / markdown) printed by the tool. Place it BEFORE descriptive prose. URLs expire ~24h.
Args:
image (string URL): URL of the source image.
model (string, default "real-esrgan"): Curated key (real-esrgan, clarity-upscaler, swinir, gfpgan) or "owner/name".
scale (1-10, optional): Upscale factor. Default 4 for real-esrgan; 2 for gfpgan; 2 for clarity-upscaler.
extra_input (object, optional): Model-specific extras (e.g. {face_enhance: true} for real-esrgan).
download (boolean, default true): Download upscaled file locally.
Returns: PredictionResult with urls + local_paths to the upscaled image.
Examples:
image="", scale=4 → real-esrgan
image="", model="gfpgan", scale=2 → restoration
image="", model="clarity-upscaler", scale=2
| Name | Required | Description | Default |
|---|---|---|---|
| image | Yes | URL of the image to upscale. | |
| model | No | Upscaler. Curated: real-esrgan, clarity-upscaler, swinir, gfpgan, clarity-pro. Or "owner/name". | real-esrgan |
| scale | No | Upscale factor (1–10). Model-dependent; default 4 for real-esrgan. | |
| download | No | ||
| timeout_ms | No | Max ms to wait for the prediction. If exceeded, returns the prediction ID so you can poll via replicate_get_prediction. Default: 300000 (5min). | |
| extra_input | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations are sparse, but description adds important behaviors: display requirement, URL expiry, download option, timeout handling, and model-specific defaults.
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?
Well-structured with sections and examples, though slightly verbose. Purpose is front-loaded.
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 inputs well but lacks detail on output structure (PredictionResult) and error handling. No output schema exists.
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?
Description adds meaning beyond schema by explaining default scale values per model, extra_input example, and timeout behavior. Schema coverage is 67%, so description compensates.
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?
Description clearly states the tool upsamples images with optional face restoration, distinguishing it from sibling tools like replicate_generate_image or replicate_inpaint.
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?
Examples provide use cases but no explicit guidance on when to choose this over other image tools like replicate_inpaint or replicate_remove_background.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
replicate_visionAnalyse / caption an image with a vision modelA
Run a vision-language model to describe, caption, or answer questions about an image.
Args:
image (string URL): URL of the image to analyse.
prompt (string, optional): Question or instruction (e.g. "describe this image", "count the people"). Default is a generic caption.
model (string, default "llava-13b"): Curated key (llava-13b, llava-v1.6-34b, blip-2, qwen-vl) or "owner/name".
max_tokens (1-4096, optional): Response length.
extra_input (object, optional): Model-specific extras.
Returns: PredictionResult with text_output containing the model's textual answer.
Examples:
image="https://example.com/photo.jpg", prompt="What objects are visible?"
image="", prompt="Read the values off this chart and list them.", model="llava-v1.6-34b"
| Name | Required | Description | Default |
|---|---|---|---|
| image | Yes | URL of the image to analyse / caption. | |
| model | No | Vision model. Curated: llava-13b, llava-v1.6-34b, blip-2, qwen-vl. Or "owner/name". | llava-13b |
| prompt | No | Optional question or instruction (e.g. 'describe this image', 'count the people'). Default is a generic caption. | |
| download | No | ||
| max_tokens | No | ||
| timeout_ms | No | Max ms to wait for the prediction. If exceeded, returns the prediction ID so you can poll via replicate_get_prediction. Default: 300000 (5min). | |
| extra_input | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations indicate readOnlyHint=false (mutation) and openWorldHint=true (non-standard output). The description adds context: it returns PredictionResult with text_output, explains timeout behavior (default 5 min, polling via replicate_get_prediction), and mentions model-specific extras. 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 purpose and uses a clear Args/Returns/Examples structure. Every sentence adds value. Minor wasted space: could combine the two bullet sentences under Args. Overall efficient.
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 description covers core functionality, return type, examples, and key parameters. It lacks mention of error handling, auth requirements, or cost information. However, for a 7-param tool with no output schema, it is reasonably 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?
Despite 57% schema coverage, the description adds significant meaning beyond the schema. It clarifies the model field (curated keys vs 'owner/name'), gives examples, explains the prompt default, specifies max_tokens range, and details timeout with polling fallback. This greatly aids correct invocation.
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's purpose: 'Run a vision-language model to describe, caption, or answer questions about an image.' The title reinforces 'Analyse / caption an image with a vision model.' This distinguishes it from sibling tools like replicate_generate_image (generation) and replicate_remove_background (editing), making the specific verb+resource obvious.
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 provides clear context, including optional prompt, default model, and examples for usage. It implies the tool is for understanding images, not generating them. However, it does not explicitly state when not to use it (e.g., for image editing or audio tasks) or compare with alternatives like replicate_chat for text-only queries.
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.
36 tool updates
v3.2.3- First observed
replicate_batch_start - First observed
replicate_batch_status - First observed
replicate_cancel_prediction - First observed
replicate_cancel_training - First observed
replicate_chat - First observed
replicate_clone_voice - First observed
replicate_create_training - First observed
replicate_embed_text - First observed
replicate_estimate_cost - First observed
replicate_generate_3d - First observed
replicate_generate_audio - First observed
replicate_generate_image - First observed
replicate_generate_speech - First observed
replicate_generate_video - First observed
replicate_get_deployment - First observed
replicate_get_model_schema - First observed
replicate_get_prediction - First observed
replicate_get_training - First observed
replicate_inpaint - First observed
replicate_lipsync - First observed
replicate_list_deployments - First observed
replicate_list_predictions - First observed
replicate_list_trainings - First observed
replicate_pipeline_start - First observed
replicate_pipeline_status - First observed
replicate_recommend_model - First observed
replicate_refresh_models - First observed
replicate_remove_background - First observed
replicate_run_deployment - First observed
replicate_run_model - First observed
replicate_search_models - First observed
replicate_segment - First observed
replicate_transcribe_audio - First observed
replicate_upload_file - First observed
replicate_upscale_image - First observed
replicate_vision
TDQS
Each tool has a clearly distinct purpose, even within the same domain (e.g., image generation vs. inpainting vs. upscaling). The specialized tools cover specific tasks, and the generic replicate_run_model serves as an escape hatch for anything else, avoiding ambiguity.
All tools follow a consistent 'replicate_verb_noun' pattern in snake_case, with verbs like generate, get, create, list, etc. The naming is predictable and intuitive, making it easy for an agent to infer function from name.
With 36 tools, the server is on the heavier side, but it covers a vast range of AI model categories (image, video, audio, 3D, LLMs, etc.) and includes advanced features like batching and pipelines. The count is justified by the breadth of functionality, though it could potentially be streamlined.
The server provides comprehensive coverage of Replicate's capabilities: generation, editing, analysis, training, deployments, cost estimation, search, file management, batching, and pipelines. There are no obvious missing operations for the intended domain.
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
Multi-model AI image and video generator. 14 models behind one OAuth-secured MCP endpoint.
MCP server for Clipkit — gives AI agents a video toolbox via the Clipkit schema.
MCP server for Hailuo (MiniMax) AI video generation
MCP server for progressive tool usage at any scale (see https://klavis.ai)
Related MCP Servers
- AlicenseAqualityAmaintenanceProduction-grade MCP server for image and video understanding and generation across Gemini, OpenAI, and Grok.54Apache 2.0
- AlicenseAqualityBmaintenanceOne MCP server for music, image, video, and audio generation across Suno, Grok Imagine, Seedance, Kling, Hailuo, Wan, VEO, Ideogram, and GPT Image 2. Generate, edit, upscale, reframe, and master through one API key and one credit pool.161206MIT
- AlicenseAqualityCmaintenanceMulti-provider media generation MCP server that generates images, videos, audio, and transcriptions from text prompts using OpenAI, xAI, Gemini, ElevenLabs, and BFL through a single unified interface.6741MIT
- AlicenseAqualityBmaintenanceMulti-provider AI video, speech, music, and transcription MCP server enabling video generation, image-to-video, TTS, music creation, and speech-to-text via a unified interface.3MIT
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/sena-labs/replicate-mcp-server'
If you have feedback or need assistance with the MCP directory API, please join our Discord server