About basicdeploy-mcp
basicdeploy-mcp lets coding agents deploy and manage BasicDeploy containers. Each container includes PostgreSQL, object storage, Kafka, and a public HTTPS URL, with tools for app deployment, command execution, and log access.
Key features
- 01Create and manage containers
- 02Deploy Node, Python, Go, or Docker apps
- 03Provision PostgreSQL and object storage
- 04Manage Kafka topics
- 05Run commands and inspect logs
- 06Share, wake, or sleep containers
Use cases
- 01Deploy an app and obtain a public URL
- 02Inspect logs from a deployed container
- 03Manage Kafka topics for an app
- 04Share a container with another person
MCP support
The MCP server exposes container creation, deployment, and management tools to Claude Code, Cursor, and other MCP clients.
Configuration
Local server config is the same for every client. Copy it into your client’s MCP config file.
npx -y basicdeploy-mcpBASICDEPLOY_API_KEYSecretYour BasicDeploy API key (bd_...). Create one at https://basicdeploy.com/api-keys — required to call any tool (the server still starts without it so clients can introspect the tool list).BASICDEPLOY_URLBasicDeploy API base URL.Local servers need a runtime on your machine (e.g. Node.js 18+). Config file locations differ by client; see your client’s docs.
Tools
12Saved tool list · updated 2w ago
This tool takes no parameters.
Details
From the project READMEBasicDeploy MCP Server
The persistent runtime your agent deploys to: a database, object storage, a Kafka broker, and a public URL, one MCP call.
An MCP (Model Context Protocol) server that lets AI coding agents (Claude Code, Cursor, and any MCP client) create and manage BasicDeploy containers directly. Every container comes with a PostgreSQL database, S3‑compatible object storage, a Kafka broker, environment variables, and a public HTTPS URL, all provisioned automatically. Your agent can create containers, deploy apps (Node, Python, Go, or Docker, auto‑detected), run commands, read logs, manage Kafka topics, check who it is authenticated as, set always‑on, and share or delete containers.
- 🌐 Site: https://basicdeploy.com
- 📦 npm: https://www.npmjs.com/package/basicdeploy-mcp
- 📚 Docs: https://basicdeploy.com/docs
Quick start
Requires Node.js ≥ 18. No install needed. npx fetches it on demand.
Get an API key at https://basicdeploy.com/api-keys (it looks like bd_…, shown once), then add this to your MCP client:
{
"mcpServers": {
"basicdeploy": {
"command": "npx",
"args": ["-y", "basicdeploy-mcp@latest"],
"env": {
"BASICDEPLOY_API_KEY": "bd_your_api_key",
"BASICDEPLOY_URL": "https://basicdeploy.com"
}
}
}
}
Claude Code:
claude mcp add basicdeploy \
--env BASICDEPLOY_API_KEY=bd_your_api_key \
--env BASICDEPLOY_URL=https://basicdeploy.com \
-- npx -y basicdeploy-mcp@latest
Claude Code plugin (this repo doubles as a plugin marketplace):
/plugin marketplace add AkaciaNL/basicdeploy-mcp
/plugin install basicdeploy-mcp@basicdeploy
Then set BASICDEPLOY_API_KEY in your environment (the plugin reads it via ${BASICDEPLOY_API_KEY}).
OpenAI Codex CLI:
codex mcp add basicdeploy \
--env BASICDEPLOY_API_KEY=bd_your_api_key \
--env BASICDEPLOY_URL=https://basicdeploy.com \
-- npx -y basicdeploy-mcp@latest
or add it directly to ~/.codex/config.toml:
[mcp_servers.basicdeploy]
command = "npx"
args = ["-y", "basicdeploy-mcp@latest"]
env = { BASICDEPLOY_API_KEY = "bd_your_api_key", BASICDEPLOY_URL = "https://basicdeploy.com" }
Environment variables
| Variable | Required | Description |
|---|---|---|
BASICDEPLOY_API_KEY | Yes | Your API key (bd_…). Required to call any tool (the server still starts and lists its tools without it, so clients can introspect it). |
BASICDEPLOY_URL | No | API base URL. Defaults to https://basicdeploy.com. |
Tools
| Tool | Arguments | Description |
|---|---|---|
list_containers | (none) | List your containers: subdomain, status, URL, id, createdAt. |
create_container | memoryMb? (256/512/1024/2048), alwaysOn? | Create a container. Database + S3 bucket provisioned automatically. Larger sizes need Pro/Scale; always‑on on Free uses a paid add‑on slot. |
get_container | containerId | Full details: URL, status, ports, DB name/user, S3 bucket, volume path. |
deploy_app | tarballPath, containerId? | Deploy a .tar/.tar.gz/.tgz/.zip from disk. Unpacks to /workspace, auto‑detects the runtime, and starts the app on :8080. Omit containerId to create a new container; pass one to deploy into an existing container. |
exec_command | containerId, command | Run a shell command inside the container; returns output + exit code. |
get_logs | containerId, tail? (default 200) | Fetch recent container logs. |
set_always_on | containerId, enabled | Turn a container's 24/7 always‑on flag on/off. |
wake_container | containerId | Wake a slept container so it serves traffic again. |
sleep_container | containerId | Sleep a running container to free memory (wakes on next request). |
get_account | (none) | Your plan, container limit (plan + add‑ons), selectable memory sizes, storage limit, and add‑ons. |
share_container | containerId, email, expiresInHours? | Share a container with another user by email (they get a sign‑in link). Omit expiresInHours for an unlimited share. |
delete_container | containerId | Permanent: destroys the container, its database, and all files. |
whoami | (none) | The account this connection is authenticated as (email + id). |
get_kafka | (none) | Kafka connection details (SASL/SCRAM): internal + external bootstrap, username/password, consumer‑group prefix, topics, usage and limits. Provisions on first call. |
create_topic | label? | Create a Kafka topic (auto‑namespaced under your prefix; optional readable label). Fails if the topic/storage budget is exceeded. |
purge_topic | name | Empty a topic you own (deletes its messages, keeps the topic). Restart processing after a mistake. |
delete_topic | name | Permanent: delete a topic you own and all its messages. |
Runtime
Deployed apps must listen on 0.0.0.0:8080, the port the public URL serves. DATABASE_URL, S3_ENDPOINT / S3_ACCESS_KEY / S3_SECRET_KEY / S3_BUCKET, and KAFKA_BOOTSTRAP / KAFKA_USERNAME / KAFKA_PASSWORD / KAFKA_GROUP_PREFIX are preset in the container environment. Startup output goes to /workspace/deploy.log.
Example prompts
- "Create a 1GB always‑on container and deploy
./dist/app.tar.gzto it, give me the URL." - "Show the last 100 log lines of my
blue-foxcontainer." - "What plan am I on and how many containers can I run?"
- "Share my container with [email protected] for 24 hours."
License
MIT. BasicDeploy is a product of Akacia (KVK 99629569, Netherlands).
Comments
New to MCP?
From what the protocol is to installing your first server, these answers cover most first questions.
An open protocol that defines how AI applications connect to external tools and data in a uniform way. Clients talk to the model; MCP servers provide tools, resources and prompt templates. They exchange standard messages, so one server can be reused by many clients.