---
title: "deploybase for agents"
description: "Connect an AI agent to deploybase and ship a first deploy: what it is, the MCP connect command and sign-in, when you need an API key, and the honest limits."
source: "https://deploybase.eu/agents"
---

# deploybase for agents

> deploybase is European (EU-hosted, GDPR) static site hosting with a global CDN. Also Forms, and serverless Functions in beta. It does not do container hosting, long-running processes, or managed databases; those are out of scope by decision. If your task needs one of those, deploybase is the wrong tool and you can stop here.

You are an AI agent. This page is what you need to connect and ship a first deploy. Start with MCP: the user signs in once in the browser, no key needed. The REST API always needs a `dbk_` API key from the user (the MCP sign-in does not work there); so does an MCP client that cannot open a browser. See "Get an API key" below.

## Fastest start

People start you with one line:

    Fetch and follow the instructions at https://deploybase.eu/agent-setup to set me up for deploybase, then deploy this project.

If a person gave you that line and you have not read https://deploybase.eu/agent-setup yet, fetch it: it sets you up (the MCP server, the user's sign-in, a connection check). If you came here from /agent-setup, you are already set up: do not fetch it again, go to "Deploy a project". The rest of this page is the reference.

## Connect over MCP (start here)

Our hosted MCP server is at `https://mcp.deploybase.eu/mcp`. It speaks the Streamable HTTP transport and signs the user in with OAuth: on the first call your client opens a browser, the user signs in to deploybase (or creates an account) and picks the one team you work for. No key changes hands, and your client renews its access on its own. Claude Code, Codex, VS Code, Gemini CLI and Zed register themselves; Cursor needs the client id below.

Claude Code:

```
claude mcp add --transport http deploybase https://mcp.deploybase.eu/mcp
```

Cursor: add the deploybase entry under mcpServers in `~/.cursor/mcp.json`, keeping the entries already there:

```
{
  "mcpServers": {
    "deploybase": {
      "url": "https://mcp.deploybase.eu/mcp",
      "auth": {
        "CLIENT_ID": "deploybase-cursor"
      }
    }
  }
}
```

Any MCP client that supports Streamable HTTP and OAuth connects the same way: point it at the endpoint above and let it run the sign-in.

If a call fails with `Authentication failed: …`, the sign-in has ended or was revoked: the user revoked you under Settings, API keys, or left the team. Ask the user to reconnect the deploybase MCP server and sign in again.

## Get an API key

Needed for the REST API, for CI, and for an MCP client that cannot sign in (no OAuth, or no browser). You cannot create the account or the API key. Both need the user. Relay this, verbatim if it helps:

1. Open `https://app.deploybase.eu/settings/api-keys` if you have a deploybase account (an owner or admin makes the key), or `https://app.deploybase.eu/register?next=/settings/api-keys` if you don't.
2. Create an API key there. It starts with `dbk_` and is shown once. Copy it.
3. Paste it back to me.

Send it as `Authorization: Bearer dbk_your_key`, to the REST API or to the MCP server as a custom header. A key made for an agent expires after 90 days.

## Verify before you change anything

After connecting, make one read-only call: `list_projects`. If it returns the team's projects (an empty list is fine), you are connected. If it fails with `Authentication failed: …` (HTTP 401), sign in again by reconnecting the MCP server; with an API key, the key is wrong, revoked or expired.

If the failure says the key has expired (code `API_KEY_EXPIRED` over the REST API), ask the user to rotate it at `https://app.deploybase.eu/settings/api-keys` (an owner or admin can) and paste you the new key, then reconnect with it. Do not start setup over.

## Deploy a project

A site you already built locally does not need Git: upload the build output instead. With the `deploybase` CLI, `deploybase deploy ./dist` uploads that folder to production and prints the URL; it needs a project (create one in the dashboard, then `deploybase link`) and a sign-in. Ask the user to run `deploybase login` in their own terminal and approve the code it prints in their browser; that way neither the code nor the token passes through you. Without the CLI, the user can upload the folder in the dashboard: Projects, New project, Upload a folder. Guide: https://docs.deploybase.eu/guides/deploy-prebuilt/

To deploy from Git instead, deploybase builds on its own build servers, not on your machine. The project must be pushed to a repository deploybase can clone over HTTPS; if it is not pushed yet, ask the user to push it first. A private repository also needs an access token with read access, passed in the git_token field when you create the project. A GitLab deploy token (starting with gldt-) also needs its own username, such as gitlab+deploy-token-123, in the git_username field, and cannot deploy on push.

1. `validate_git_repo` to confirm access, then `create_project` to connect the repository. Use `check_subdomain` first to confirm the production subdomain is free.
2. `trigger_deployment`, then poll `get_deployment` every 5 to 10 seconds. On failure, read `get_build_logs`; the cause is usually near the end.
3. Every branch gets a preview URL at `{branch}-{slug}.previews.deploybase.eu`.
4. The default branch auto-promotes to production at `{subdomain}.sites.deploybase.eu`. Production is a pointer to an immutable deployment, so `promote_deployment` re-points it in seconds, and a rollback is promoting an older one.
5. `create_share_link` gives a review URL, with an optional password, before you go live.
6. A preview can be private to the team. `get_preview_access` gives you short-lived access to one: send the header it returns on scripted requests, or open its url once in a headless browser. Both are credentials; do not echo, log or store them.

A deploy already clears the CDN cache of every live address. If a page still looks old after one, `clear_project_cache` asks every location to fetch the live addresses fresh, done within about a minute. It allows 5 clears per 10 minutes.

Promotion changes what real traffic sees. Treat it like a deploy, not a dry run.

## Or call the REST API directly

The MCP tools are a thin layer over the same REST API, so anything a tool does, a REST call can do too.

- Base URL: `https://api.deploybase.eu`, versioned under `/api/v1`.
- Auth: send `Authorization: Bearer dbk_your_key` on every request.
- The calls behind those steps:
  - `/api/v1/projects` list and create projects
  - `/api/v1/projects/{id}` read one project
  - `/api/v1/projects/check-subdomain` check a subdomain is free
  - `/api/v1/projects/validate-git` validate a repository before creating
  - `/api/v1/deployments` trigger a deployment
  - `/api/v1/deployments/{id}` read deployment status
  - `/api/v1/deployments/{id}/logs` read build logs
  - `/api/v1/deployments/{id}/cancel` cancel a running deployment
  - `/api/v1/projects/{id}/promote` promote a deployment to production
  - `/api/v1/projects/{id}/previews/{previewId}/access` short-lived access to a private preview
- Full reference: https://docs.deploybase.eu/api

## What your agent can and cannot do

A signed-in agent and an API key are both capped at the `member` role, whoever connected or created them; a viewer's agent stays a viewer. As a member you can create and read projects, deploy, cancel, read build logs, promote and roll back, manage share links, set and delete environment variables (no tool ever returns a value), and read domains, forms, and the current plan.

These tools exist but return 403 for a member: `add_domain`, `verify_domain`, `remove_domain`, `delete_project`, and `list_team_invitations` (admin only). There is no tool at all for changing billing or for adding and removing team members; those are dashboard-only. A 403 here is the cap, not a bug. Do not retry it; surface it to the human.

Functions are in beta and gated per team. Check with a human before relying on them, and expect the surface to change.

## Do not hardcode this page

This is a snapshot and it can lag the server. Do not memorize the tool list or copy limits and prices out of here. After you connect, list the server's tools for the current set, and call `get_billing_plan` for the current plan, limits, and usage. Treat the live MCP tool schemas, the REST reference at https://docs.deploybase.eu/api, and https://docs.deploybase.eu/llms-full.txt as the source of truth, and this page as the starting map.

## More

- https://deploybase.eu/llms.txt: what deploybase is, features, pricing, links
- https://docs.deploybase.eu/mcp/: the full tool reference
- https://docs.deploybase.eu/llms-full.txt: full documentation for LLMs
- https://deploybase.eu/agents: the human version of this page
