Canner started as the simplest possible thing: drop a project, get a live URL. That is still the front door. But once a project is live, you often want to do more without opening a browser — redeploy from a script, read a failing build log from your editor, or let an AI agent ship a fix while you watch. As of this week, all of that has a proper, documented surface.
We shipped three things: a REST API with an OpenAPI spec, a meaningfully upgraded command-line tool, and a Model Context Protocol server so AI agents can drive Canner as a native tool. All of it runs on the same Quebec infrastructure as the rest of the platform.
A documented REST API
Everything the dashboard does, your own code can now do too: create and configure projects, trigger deployments, read build metrics and logs, manage environment variables, attach custom domains, provision a database, and check billing. The stable, documented surface lives under /v1, and there is an interactive reference you can click through — powered by an OpenAPI 3.1 specification you can feed straight into code generators or agent tool definitions.
It behaves the way you expect a modern API to behave. Authentication is a bearer token (cnr_…) you create in the dashboard. Errors come back in one consistent shape — a stable code, a human message, and a request_id you can quote to support. Every response carries rate-limit headers, and the list endpoints are paginated with a cursor. The full guide, with copy-paste curl examples, is on the developer page.
curl https://api.canner.ca/v1/projects \
-H "Authorization: Bearer cnr_your_token_here"A CLI that speaks JSON
The @canner-ca/clialready let you deploy the current directory from any terminal. It now does more, and — importantly for scripts and agents — it can speak --json. Add the flag to any command and you get a single machine-readable object instead of a formatted table, ready to pipe into jq or hand to a program.
canner projects --json | jq -r '.[].slug'
canner token create ci
canner env set API_KEY=secret --sensitive
canner domains add www.example.comNew token, env, and domains commands round it out, so the common things you used to open the dashboard for now have a one-line equivalent. The full command list is on the CLI page.
An MCP server for AI agents
This is the part we are most excited about. The Model Context Protocol is the open standard that lets AI agents call tools, and Canner now ships an MCP server: @canner-ca/mcp. Point Claude Desktop, Cursor, or any MCP client at it and your agent gets eleven native tools — list projects, read a deployment's build log, trigger a deploy, set an environment variable, attach and verify a domain.
Concretely: you can tell your agent “the build for my-site failed, find out why and redeploy,” and it reads the build log, reasons about the error, and triggers a new deploy — without you copying a single command. Setup is one block of config and a token; the MCP page has the exact snippets for Claude Desktop and Cursor.
Two deliberate choices. First, the server has zero dependencies— it implements the protocol by hand and pulls in no third-party packages. That is the same supply-chain discipline as the rest of Canner, where where your code runs and what it trusts both matter. The code you run inside your agent ships nothing extra to audit. Second, it is safe by default: only reads and safe writes are exposed, so an agent can deploy and configure but cannot delete a project or revoke a token by mistake.
Still Canadian, all the way down
None of this changes where anything runs. The API answers from the same infrastructure in Montreal that serves your projects; your environment variables and databases never leave Quebec because you reached them from a script or an agent instead of a browser. Automating Canner does not quietly route your data through someone else's cloud — the whole point, as on the sovereignty page, is that it doesn't.
If you build with agents, the llms.txt file describes Canner for language models, and the OpenAPI spec is ready for tool definitions. Start on the developer page, grab a token from your dashboard, and deploy your next project from wherever you already work — the terminal, your code, or a conversation with an agent.