MCP Server
latere cella mcp is a Model Context Protocol server over stdio. Drop the latere binary into a Claude Code (or any MCP client) configuration and the host can drive Cella as a background runtime.
Install
The latere binary ships everything — CLI + MCP server — in one install:
curl -fsSL https://latere.ai/install.sh | sh
Or build from source:
go install github.com/latere-ai/latere-cli/cmd/latere@latest
Wire it up
// ~/.config/claude/claude_desktop_config.json
{
"mcpServers": {
"latere-cella": {
"command": "latere",
"args": ["cella", "mcp"]
}
}
}
The server reads the access token from ~/.config/latere/token.json (the file latere auth login writes), and points at cella.latere.ai by default.
Tools
| Tool | Args | Returns |
|---|---|---|
cella_create |
image, tier?, disk_gb?, name? |
{ id, slug, state } |
cella_run |
cella, argv, env?, cwd? |
{ command_id, phase } |
cella_wait |
cella, command_id, timeout_seconds? |
{ phase, exit_code? } |
cella_logs |
cella, command_id, since_cursor? |
{ bytes, next_cursor, phase, exit_code? } |
cella_export |
cella, paths?, src_dir? |
{ tar_base64, bytes } |
cella_import |
cella, tar_base64, dest? |
{ imported, bytes, dest } |
cella_delete |
cella |
{ ok } |
Every tool maps 1:1 to an HTTP endpoint described in the rest of these docs. cella_run always sends detach=true — sync execution doesn't fit MCP's request/response model. Pair it with cella_wait and cella_logs to follow a job to completion.
A complete loop
A typical Claude Code conversation:
- Create.
cella_create({ image: "ghcr.io/latere-ai/sandbox-claude:main", tier: "ephemeral" })returns a slug. - Push code.
cella_import({ cella: slug, tar_base64: <…> })pushes the work tree. - Run.
cella_run({ cella: slug, argv: ["go", "test", "./..."] })returns acommand_id. - Wait.
cella_wait({ cella: slug, command_id, timeout_seconds: 300 }). - Tail.
cella_logs({ cella: slug, command_id })— Claude reads the test output. - Pull.
cella_export({ cella: slug, paths: ["./report.json"] })returns base64 tar. - Clean up.
cella_delete({ cella: slug }). Or rely on the ephemeral tier's auto-delete.
Why MCP
The MCP server is the only way to give Claude Code (or another LLM agent) durable state across turns. Without it, every "build the app" turn starts from scratch. With it, Claude keeps a cella warm, invokes long jobs without holding the chat session, and pulls back artifacts the way a human would.
For the platform, MCP is also the cheapest path to a "third audience": no new API surface, no new auth flow — just a thin client over endpoints we already shipped, packaged as a latere subcommand so one install covers the CLI and the MCP host.