Documentation
CrateAgents
Updated
Crate has two MCP servers: a read server at /mcp and a write server at /mcp/write. They let an agent see what your registry serves and queue builds. Neither can add or remove repositories, read or change source tokens, or touch credentials.
Reaching Crate from your agent
Crate allows delegated MCP access, so an agent connected to Scalpels can call it through Scalpels with the Call installed apps ability. The agent acts as you, with your role in Crate. See Agents in the Scalpels docs for how to connect an agent and what passes through Scalpels.
Read tools
served_repositories
Lists the repositories Crate serves, oldest first.
| Argument | Notes |
|---|---|
limit |
1 to 100, default 25. |
cursor |
The next_cursor from the previous page. |
Each repository has its id, name, url, type, status, has_source_credential and last_built_at. The URL is reduced to scheme, host, port and path, so a token embedded in it is never returned. next_cursor is null on the last page.
build_history
Lists builds, newest first. Build output is never returned.
| Argument | Notes |
|---|---|
limit |
1 to 100, default 25. |
cursor |
The next_cursor from the previous page. |
build_ids |
Only these builds. |
repository_names |
Only builds of these packages. |
statuses |
Any of queued, running, succeeded, failed, target_deleted. |
Each build has its id, repository (null for a full build), trigger, status, started_at and finished_at. The trigger says what started it: manual, schedule, repository-added, repository-removed, source-credential-replaced, source-credential-cleared or mcp.
Write tool
trigger_build
Queues a full build, or a build of one package when you pass repository_name.
| Argument | Notes |
|---|---|
idempotency_key |
Required, up to 191 characters. |
repository_name |
Optional. Must be a package Crate serves. |
The response has the build_id, its status, whether it was a duplicate, and a status_handle naming the build_history call that checks on it.
The idempotency key belongs to the caller. Calling again with the same key and the same request returns the original build with duplicate: true instead of queueing another. Reusing a key with a different repository_name fails with idempotency_key_conflict.
Builds requested this way are recorded before they are queued. If the queue loses one, Crate's scheduler queues it again within a minute. If the repository is removed before the build runs, the build ends as target_deleted.
Strict arguments
Every tool rejects arguments it does not know, and rejects a cursor that was not issued by the same tool.