MCP — rank_assets
Takes local file paths and uploads them for you. Best for repo-local and interactive work.
REST — POST /api/v1/rank
Takes fetchable URLs. Best for volume, scheduled jobs, and services with no client attached.
Both paths hit the same model. The difference is transport and where the files live — MCP
handles the upload step, REST expects you to have already published the assets.
The cycle
1
Collect the creatives
Gather the files you want scored. The agent works from its own filesystem — Kettio’s tools
take local paths directly. See the tool reference.
2
Rank them
Via MCP, call
rank_assets with local paths. Via REST, publish to durable https:// URLs —
or inline a data:image/ payload for small images — then call POST /api/v1/rank. Up to 20
assets either way.3
Decide from the response
Use the ordering,
copy_lift to see whether the words are earning their place,
panel_outcome to see where refinement changed the order, and
summary.scoring_evaluations to track spend.Decision rules worth encoding
These are the checks worth writing into the agent rather than leaving to a model’s judgment:Never act on a batch with silent failures
Never act on a batch with silent failures
summary.assets_failed > 0 means the ordering you are reading is incomplete. Either re-run
the failed assets or mark the result provisional.Treat near-ties as ties
Treat near-ties as ties
A small gap between rank 1 and rank 2 is not a decision. Either escalate to
/api/v1/pairwise or report both. See
Reading confidence.Budget in evaluations, not assets
Budget in evaluations, not assets
An asset with
copy_context can cost twice what a bare image costs. An agent that budgets
by asset count will hit 429 earlier than it expects. See
Limits and billing.Keep the audience fixed across a comparison
Keep the audience fixed across a comparison
Scores are relative within a batch and conditioned on the audience. Changing the audience
between runs and comparing the numbers is not a valid comparison.
Rate limit backoff
The Rank API allows 60 scoring evaluations per minute per key and returnsRetry-After on
429. Honour it rather than retrying on a fixed interval:
Related
MCP installation
Connect Claude Desktop, Codex, or any stdio MCP client.
Rank API
Goals, asset types, copy context, and refinement behavior.