Documentation
SlateMCP tools
Updated
Slate has an MCP server, so an agent can check sources and runs, fetch results and submit work. Your agent reaches it through Scalpels. Give your Scalpels agent token the Call installed apps ability, and Scalpels relays each call to your Slate deployment as you. See Use Scalpels from your agent for setup, and for what passes through Scalpels on the way.
Slate serves two MCP endpoints from the same server. /mcp allows only the read tools. /mcp-write also allows the two tools that create things.
Read tools
source_status
Takes source_id (UUID). Returns the source's id, status and rejection_reason. Statuses are the same as the API's: see Sources.
run_status
Takes run_id (UUID). Returns the run's id, status, trust and rejection_reason.
run_result_url
Takes run_id (UUID). For a succeeded run, returns id, expires_at and a signed url for the finished MP4, valid for 15 minutes. For any other run it returns the error result_not_ready. It does not return intermediates.
Write tools
Both write tools take an idempotency_key (1 to 200 characters) that you choose. Sending the same key with the same arguments returns the first call's outcome and does not repeat the work. Sending the same key with different arguments is refused with idempotency_key_reused.
A write tool returns an outcome:
| Outcome | Meaning |
|---|---|
accepted |
The work was created. The response includes its id. |
refused |
Slate declined it. reason says why. |
in_progress |
Another call with the same key is still being handled. Ask again shortly. |
outcome_unknown |
Something failed partway. Check with the read tools before retrying under a new key. |
create_remote_source
Takes idempotency_key and url. Registers a source that Slate fetches from an HTTPS URL. The rules are the same as for a remote source over the API: public address, port 443, no redirects. An unsafe URL is refused with unsafe_source_url. Agents cannot upload files directly, because there is no tool that returns an upload slot.
create_run
Takes idempotency_key, run_id (a UUID you choose) and recipe. The recipe is exactly the delivery or highlights object described in Recipes, with the same rules. Runs created this way are always untrusted and have no webhook. Refusals use the same reasons as the API, such as source_not_found, source_not_ready, malformed_recipe or operation_count_exceeded. A run_id that is already taken is refused with run_id_unavailable.
Errors
Every tool can return these errors:
invalid_arguments: an argument is missing, has the wrong type, or there is an extra argument. Tools accept only the arguments listed above.not_found: the source or run does not exist or is not yours.unavailable: Slate could not complete the call. Retry later.
Agents have their own sources and runs
Sources and runs belong to whoever created them. When Scalpels relays a call, Slate treats it as coming from you personally, which is a different owner from any installation credential your applications use. As a result:
- your agent cannot see or reuse sources and runs that your applications created through the API, and the reverse is also true;
- a run your agent creates must use sources your agent created, so in practice it can only use media that it registered with
create_remote_source.