Deploy an app to Antideploy from a coding agent. No Dockerfile, no YAML, no cloud console.
Runs on your machine from its package; the steps are below.
At most: moves money, runs code or commands, deletes data, or sends messages for you.
Odel charges nothing per call. The publisher may charge for its own service.
Runs locally over stdio
This server isn't hosted — your MCP client launches it from a package registry. Use one of the commands below, or drop the config into your client (e.g. Claude Desktop).
Run
npx -y antideploy-mcp
MCP client config
{
"mcpServers": {
"antideploy": {
"command": "npx",
"args": [
"-y",
"antideploy-mcp"
]
}
}
}Deploy an application to Antideploy from inside a coding agent. Claude Code, Cursor, Windsurf, Codex, anything that speaks MCP.
You describe what you want built. The agent writes it, then deploys it, without either of you writing a Dockerfile, a YAML file, or touching a cloud console.
you ─▶ agent writes the app ─▶ deploy ─▶ https://your-app.antideploy.com
Nothing to install. The agent runs it with npx.
claude mcp add antideploy -e ANTIDEPLOY_API_KEY=ad_your_key -- npx -y antideploy-mcp
mcp.json{
"mcpServers": {
"antideploy": {
"command": "npx",
"args": ["-y", "antideploy-mcp"],
"env": { "ANTIDEPLOY_API_KEY": "ad_your_key" }
}
}
}
Create an application at antideploy.com, then create an API key for it. The key identifies the application, so you never pass an application id: one key, one app. That is deliberate: this key ends up pasted into a project directory, which means it will eventually be committed or screenshotted, so it is scoped to a single application, can write secrets but never read them back, and can be revoked on its own.
Deploying somewhere new means a new app and a new key.
| Tool | What it does |
|---|---|
deploy | Packages the project directory and deploys it. Returns a taskId. |
deployment_status | Progress for one deploy: steps, the analyzed spec, warnings, hazards. |
list_env | Environment variable names. Values are never returned. |
set_env | Store or replace environment variables. |
api_info | The platform API's own description of itself. |
Deploys are asynchronous. deploy hands back a taskId; poll
deployment_status until it reports succeeded or failed.
The whole directory is sent, not just the entry point. The single most common way to break a deploy on this platform is to upload one file: it builds fine, starts fine, and then serves a page whose every asset 404s.
A .env in the directory is uploaded on purpose. Its values go into
Antideploy's encrypted secret store and the file itself is dropped from the build
context, so you don't retype nine API keys you already have on disk. If that is
not what you want, move the file before deploying.
Skipped automatically: node_modules, .git, build output (dist, build,
.next, target, …), virtualenvs, editor and tool caches, and private keys
(*.pem, *.key, id_rsa, …).
| Files | 4,000 |
| Per file | 5 MB |
| Total upload | 28 MB |
| Concurrent deploys | 1 per application |
Checked locally before anything is uploaded, so hitting one costs you an error rather than a transfer.
| Variable | |
|---|---|
ANTIDEPLOY_API_KEY | Required. The key for the application to deploy. |
ANTIDEPLOY_URL | Optional. Defaults to https://antideploy.com. |
Reads the source and works out the runtime, framework, build and start commands,
the port, and every environment variable the code references, deterministically,
citing the file each conclusion came from, not by asking a model to guess. Then
provisions what the app needs, including a Postgres database with DATABASE_URL
injected and migrations run before the app starts rather than after it has
already crashed. Then builds a container with buildpacks, releases it behind
HTTPS, and keeps it running: health checks, logs, and rollback to an
already-built image in about forty seconds.
Full documentation: antideploy.com/docs
MIT