basicdeploy-mcp
Advanced tools
+21
| MIT License | ||
| Copyright (c) 2026 Akacia (KVK 99629569, Netherlands) | ||
| Permission is hereby granted, free of charge, to any person obtaining a copy | ||
| of this software and associated documentation files (the "Software"), to deal | ||
| in the Software without restriction, including without limitation the rights | ||
| to use, copy, modify, merge, publish, distribute, sublicense, and/or sell | ||
| copies of the Software, and to permit persons to whom the Software is | ||
| furnished to do so, subject to the following conditions: | ||
| The above copyright notice and this permission notice shall be included in all | ||
| copies or substantial portions of the Software. | ||
| THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR | ||
| IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, | ||
| FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE | ||
| AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER | ||
| LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, | ||
| OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE | ||
| SOFTWARE. |
+2
-3
| { | ||
| "name": "basicdeploy-mcp", | ||
| "version": "1.0.2", | ||
| "version": "1.0.3", | ||
| "description": "MCP server for BasicDeploy - lets AI coding agents deploy and manage containers", | ||
@@ -8,4 +8,3 @@ "type": "module", | ||
| "type": "git", | ||
| "url": "git+https://github.com/AkaciaNL/basicdeploy.git", | ||
| "directory": "mcp" | ||
| "url": "git+https://github.com/AkaciaNL/basicdeploy-mcp.git" | ||
| }, | ||
@@ -12,0 +11,0 @@ "homepage": "https://basicdeploy.com/docs", |
+46
-45
@@ -0,42 +1,19 @@ | ||
| <p align="center"><img src="./logo.svg" width="96" alt="BasicDeploy"></p> | ||
| # BasicDeploy MCP Server | ||
| The persistent runtime your agent deploys to — DB, storage, URL, one MCP call. | ||
| **The persistent runtime your agent deploys to — a database, object storage, and a public URL, one MCP call.** | ||
| An [MCP (Model Context Protocol)](https://modelcontextprotocol.io) server that lets AI coding agents — Claude Code, Cursor, and any other MCP client — deploy and manage [BasicDeploy](https://basicdeploy.com) containers directly: create containers, deploy apps from a tarball, run commands, read logs, and share or delete containers. | ||
| An [MCP (Model Context Protocol)](https://modelcontextprotocol.io) server that lets AI coding agents — Claude Code, Cursor, and any MCP client — create and manage [BasicDeploy](https://basicdeploy.com) containers directly. Every container comes with a PostgreSQL database, S3‑compatible object storage, 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, set always‑on, and share or delete containers. | ||
| ## Install | ||
| - 🌐 Site: https://basicdeploy.com | ||
| - 📦 npm: https://www.npmjs.com/package/basicdeploy-mcp | ||
| - 📚 Docs: https://basicdeploy.com/docs | ||
| Requires Node.js >= 18. | ||
| ## Quick start | ||
| ```bash | ||
| cd mcp | ||
| npm install | ||
| ``` | ||
| Requires Node.js ≥ 18. No install needed — `npx` fetches it on demand. | ||
| You can also run it via `npx`/the `basicdeploy-mcp` bin once published, or point your MCP client at `node /path/to/mcp/src/index.js`. | ||
| Get an API key at **https://basicdeploy.com/api-keys** (it looks like `bd_…`, shown once), then add this to your MCP client: | ||
| ## Get an API key | ||
| 1. Log in to the BasicDeploy dashboard. | ||
| 2. Go to **API Keys** and click **Create**. | ||
| 3. Copy the key (it looks like `bd_<40 characters>`) — it is shown only once. | ||
| The server reads two environment variables: | ||
| | Variable | Required | Description | | ||
| |---|---|---| | ||
| | `BASICDEPLOY_API_KEY` | Yes | Your API key (`bd_...`). The server refuses to start without it. | | ||
| | `BASICDEPLOY_URL` | No | API base URL. Defaults to `https://basicdeploy.com`. | | ||
| ## Configure Claude Code | ||
| ```bash | ||
| claude mcp add basicdeploy \ | ||
| --env BASICDEPLOY_API_KEY=bd_your_key_here \ | ||
| --env BASICDEPLOY_URL=https://basicdeploy.com \ | ||
| -- node /absolute/path/to/mcp/src/index.js | ||
| ``` | ||
| ## Configure via `mcpServers` JSON (Cursor, Claude Desktop, etc.) | ||
| ```json | ||
@@ -46,6 +23,6 @@ { | ||
| "basicdeploy": { | ||
| "command": "node", | ||
| "args": ["/absolute/path/to/mcp/src/index.js"], | ||
| "command": "npx", | ||
| "args": ["-y", "basicdeploy-mcp@latest"], | ||
| "env": { | ||
| "BASICDEPLOY_API_KEY": "bd_your_key_here", | ||
| "BASICDEPLOY_API_KEY": "bd_your_api_key", | ||
| "BASICDEPLOY_URL": "https://basicdeploy.com" | ||
@@ -58,2 +35,18 @@ } | ||
| Claude Code: | ||
| ```bash | ||
| claude mcp add basicdeploy \ | ||
| --env BASICDEPLOY_API_KEY=bd_your_api_key \ | ||
| --env BASICDEPLOY_URL=https://basicdeploy.com \ | ||
| -- npx -y basicdeploy-mcp@latest | ||
| ``` | ||
| ### Environment variables | ||
| | Variable | Required | Description | | ||
| |---|---|---| | ||
| | `BASICDEPLOY_API_KEY` | Yes | Your API key (`bd_…`). The server refuses to start without it. | | ||
| | `BASICDEPLOY_URL` | No | API base URL. Defaults to `https://basicdeploy.com`. | | ||
| ## Tools | ||
@@ -64,17 +57,25 @@ | ||
| | `list_containers` | — | List your containers: subdomain, status, URL, id, createdAt. | | ||
| | `create_container` | — | Create a new container. Database + S3 bucket are provisioned automatically. | | ||
| | `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. | | ||
| | `exec_command` | `containerId`, `command` | Run a shell command inside the container; returns output and exit code. | | ||
| | `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. | | ||
| | `deploy_app` | `containerId?`, `tarballPath` | Deploy a `.tar`/`.tar.gz`/`.tgz`/`.zip` from disk. Auto-detects Node/Python/Go. Creates a new container when `containerId` is omitted. | | ||
| | `share_container` | `containerId`, `email`, `expiresInHours?` | Share a container with another user by email; they are emailed a sign-in link. Optional `expiresInHours` expires the share (omit for unlimited). | | ||
| | `set_always_on` | `containerId`, `enabled` | Turn a container's 24/7 always‑on flag on/off. | | ||
| | `get_account` | — | 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. | | ||
| ## Runtime | ||
| Deployed apps must listen on `0.0.0.0:8080` — that's the port the public URL serves. `DATABASE_URL` and `S3_ENDPOINT` / `S3_ACCESS_KEY` / `S3_SECRET_KEY` / `S3_BUCKET` are preset in the container environment. Startup output goes to `/workspace/deploy.log`. | ||
| ## Example prompts | ||
| Once configured, you can ask your agent things like: | ||
| - "Create a 1GB always‑on container and deploy `./dist/app.tar.gz` to it — give me the URL." | ||
| - "Show the last 100 log lines of my `blue-fox` container." | ||
| - "What plan am I on and how many containers can I run?" | ||
| - "Share my container with teammate@example.com for 24 hours." | ||
| - "Deploy `./dist/app.tar.gz` to BasicDeploy and give me the URL." | ||
| - "Show me the last 100 log lines of my `blue-fox` container." | ||
| - "Run `ls -la /app` inside container `<id>`." | ||
| - "Share my container with teammate@example.com." | ||
| ## License | ||
| MIT. BasicDeploy is a product of Akacia (KVK 99629569, Netherlands). |
23728
9.22%5
25%79
1.28%