Skip to content
Scalpels home

Scalpels is officially launching on October 31, 2026. Special early adopter pricing is available now.

← All documentation

Documentation

Crate

Agents

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.