mcp-cloud-deploy
MCP server for deploying projects to multiple cloud platforms (Vercel, Railway, Neon, MongoDB Atlas, Docker) and running local dev servers, with orchestration for full-stack deployments.
README
MCP Cloud Deploy
Model Context Protocol server for deploying projects to multiple cloud platforms via CLI.
Deploy your projects to Vercel, Railway, Neon (PostgreSQL), MongoDB Atlas, Docker (local), or run them as local dev servers — all through natural language commands from any MCP-compatible client (Kiro, Claude Desktop, etc.).
Features
| Tool | Description |
|---|---|
deploy_to_vercel |
Deploy frontend/fullstack apps to Vercel |
deploy_to_railway |
Deploy apps to Railway with database plugins |
provision_neon_database |
Create serverless PostgreSQL on Neon |
provision_mongodb |
Create MongoDB Atlas clusters |
deploy_docker_local |
Run with Docker Compose (auto-generates configs) |
deploy_local |
Start native local dev server |
orchestrate_deploy |
Full-stack deploy combining multiple services |
check_deploy_prerequisites |
Verify which CLIs are installed |
Quick Start
1. Install
# Clone or download this project
cd mcp-cloud-deploy
# Install dependencies
npm install
# Build
npm run build
2. Configure in your MCP client
For Kiro / Claude Desktop — add to your MCP config:
{
"mcpServers": {
"cloud-deploy": {
"command": "node",
"args": ["/absolute/path/to/mcp-cloud-deploy/dist/index.js"]
}
}
}
For development (with auto-reload):
{
"mcpServers": {
"cloud-deploy": {
"command": "npx",
"args": ["tsx", "/absolute/path/to/mcp-cloud-deploy/src/index.ts"]
}
}
}
3. Get your API tokens
| Service | Where to get token |
|---|---|
| Vercel | https://vercel.com/account/tokens |
| Railway | https://railway.app/account/tokens |
| Neon | https://console.neon.tech/app/settings/api-keys |
| MongoDB Atlas | Organization > Access Manager > API Keys |
4. Install CLIs (only the ones you need)
# Vercel
npm install -g vercel
# Railway
npm install -g @railway/cli
# Neon
npm install -g neonctl
# MongoDB Atlas
brew install mongodb-atlas-cli # macOS
# Or: https://www.mongodb.com/docs/atlas/cli/stable/install-atlas-cli/
# Docker (for local deployments)
# https://docs.docker.com/get-docker/
Usage Examples
Deploy a Next.js app to Vercel
"Deploy my project at /home/user/my-app to Vercel. Here's my token: vercel_xxxxx"
The MCP will call deploy_to_vercel with:
- Auto-detect framework (Next.js)
- Deploy as preview (or production if specified)
- Return the deployment URL
Full-stack: Vercel + Neon PostgreSQL
"Deploy my app to Vercel with a PostgreSQL database on Neon.
Vercel token: vercel_xxx
Neon API key: neon_xxx
Project name: my-saas-app"
The orchestrate_deploy tool will:
- Create a Neon project + database
- Get the connection string
- Deploy to Vercel with
DATABASE_URLinjected
Deploy everything on Railway
"Put my project on Railway with a PostgreSQL database.
Token: railway_xxx
Path: /home/user/my-api"
Railway handles app + database in one platform.
Local development with Docker
"Start my project locally with Docker, include PostgreSQL and Redis"
This will:
- Auto-generate a Dockerfile (based on project type)
- Generate docker-compose.yml with app + PostgreSQL + Redis
- Build and start all containers
- Return URLs for each service
Quick local dev server
"Run my project locally at /home/user/my-app on port 4000"
Auto-detects Node.js/Python/Go/Rust and runs the appropriate dev command.
Tools Reference
deploy_to_vercel
| Parameter | Required | Description |
|---|---|---|
projectPath |
Yes | Absolute path to project |
token |
Yes | Vercel API token |
production |
No | Deploy to production (default: false) |
teamId |
No | Vercel Team ID |
projectName |
No | Custom project name |
envVars |
No | Environment variables object |
buildCommand |
No | Custom build command |
framework |
No | Framework preset |
deploy_to_railway
| Parameter | Required | Description |
|---|---|---|
projectPath |
Yes | Absolute path to project |
token |
Yes | Railway API token |
projectName |
No | Railway project name |
serviceName |
No | Service name |
withPostgres |
No | Add PostgreSQL (default: false) |
withRedis |
No | Add Redis (default: false) |
withMongoDB |
No | Add MongoDB (default: false) |
envVars |
No | Environment variables |
region |
No | Deploy region |
provision_neon_database
| Parameter | Required | Description |
|---|---|---|
apiKey |
Yes | Neon API key |
projectName |
Yes | Neon project name |
databaseName |
No | Database name (default: main) |
roleName |
No | Role name (default: app_user) |
region |
No | Region (default: aws-us-east-1) |
schemaFile |
No | Path to .sql schema file |
runMigrations |
No | Migration command to execute |
migrationsCwd |
No | Working directory for migrations |
provision_mongodb
| Parameter | Required | Description |
|---|---|---|
publicKey |
Yes | Atlas public API key |
privateKey |
Yes | Atlas private API key |
orgId |
Yes | Atlas Organization ID |
projectName |
Yes | Atlas project name |
clusterName |
Yes | Cluster name |
tier |
No | Tier: M0 (free), M2, M5, M10... |
provider |
No | AWS, GCP, AZURE (default: AWS) |
region |
No | Region (default: US_EAST_1) |
dbName |
No | Database name (default: main) |
dbUser |
No | Username (default: app_user) |
dbPassword |
No | Password (auto-generated) |
ipAllowAll |
No | Allow all IPs (default: false) |
ipWhitelist |
No | List of IPs to whitelist |
deploy_docker_local
| Parameter | Required | Description |
|---|---|---|
projectPath |
Yes | Absolute path to project |
serviceName |
No | Docker service name (default: app) |
port |
No | Port to expose (default: 3000) |
withPostgres |
No | Include PostgreSQL container |
withMongoDB |
No | Include MongoDB container |
withRedis |
No | Include Redis container |
envVars |
No | Additional env vars |
dockerfilePath |
No | Custom Dockerfile path |
generateDockerfile |
No | Auto-generate Dockerfile (default: true) |
generateCompose |
No | Generate docker-compose.yml (default: true) |
build |
No | Build before start (default: true) |
detach |
No | Run in background (default: true) |
deploy_local
| Parameter | Required | Description |
|---|---|---|
projectPath |
Yes | Absolute path to project |
port |
No | Port (default: 3000) |
installDeps |
No | Install dependencies (default: true) |
runMigrations |
No | Migration command |
seedCommand |
No | Seed command |
envVars |
No | Environment variables |
envFile |
No | Path to .env file |
startCommand |
No | Custom start command (auto-detected) |
background |
No | Run in background (default: true) |
orchestrate_deploy
| Parameter | Required | Description |
|---|---|---|
projectPath |
Yes | Absolute path to project |
target |
Yes | One of: vercel+neon, vercel+mongodb, railway-fullstack, docker-local, local |
tokens |
Yes | Object with tokens for each service |
projectName |
Yes | Project name |
production |
No | Production mode (default: false) |
envVars |
No | Additional env vars |
dbSchema |
No | Path to DB schema file |
port |
No | Port for local targets (default: 3000) |
check_deploy_prerequisites
No parameters. Returns a table showing which CLIs are installed.
Architecture
mcp-cloud-deploy/
├── src/
│ ├── index.ts # Entry point - stdio transport
│ ├── server.ts # MCP server with all tools registered
│ ├── tools/
│ │ ├── vercel.ts # Vercel deployment logic
│ │ ├── railway.ts # Railway deployment logic
│ │ ├── neon.ts # Neon PostgreSQL provisioning
│ │ ├── mongodb.ts # MongoDB Atlas provisioning
│ │ ├── docker-local.ts # Docker Compose local deployment
│ │ ├── local.ts # Native local dev server
│ │ └── orchestrator.ts # Multi-service orchestration
│ ├── auth/
│ │ └── token-manager.ts # In-memory token handling
│ └── utils/
│ ├── cli-runner.ts # Safe CLI execution wrapper
│ └── logger.ts # Stderr logger (MCP-safe)
├── dist/ # Compiled JavaScript
├── package.json
└── tsconfig.json
Security
- Tokens are NEVER persisted to disk — they exist only in memory during the session
- Tokens are passed per-call — each tool invocation includes the token it needs
- stderr for logging — all logs go to stderr to not interfere with MCP stdio
- CLI execution is sandboxed — commands run with timeouts and buffer limits
Supported Project Types (Auto-detection)
The Docker and local tools automatically detect your project type:
| Type | Detection | Dev Command | Docker Base |
|---|---|---|---|
| Next.js | next in dependencies |
npx next dev |
Multi-stage Node 20 |
| Nuxt | nuxt in dependencies |
npx nuxt dev |
Node 20 |
| SvelteKit | @sveltejs/kit in deps |
npx vite dev |
Node 20 |
| Vite | vite in deps |
npx vite |
Node 20 |
| Express/Fastify | express/fastify in deps |
npm run dev |
Node 20 |
| Python/FastAPI | requirements.txt |
uvicorn main:app |
Python 3.12 |
| Django | manage.py exists |
python manage.py runserver |
Python 3.12 |
| Go | go.mod exists |
go run . |
Go 1.22 multi-stage |
| Rust | Cargo.toml exists |
cargo run |
Rust multi-stage |
Development
# Run in development mode (with tsx)
npm run dev
# Build for production
npm run build
# Run built version
npm start
# Clean build output
npm run clean
License
MIT
推荐服务器
Baidu Map
百度地图核心API现已全面兼容MCP协议,是国内首家兼容MCP协议的地图服务商。
Playwright MCP Server
一个模型上下文协议服务器,它使大型语言模型能够通过结构化的可访问性快照与网页进行交互,而无需视觉模型或屏幕截图。
Magic Component Platform (MCP)
一个由人工智能驱动的工具,可以从自然语言描述生成现代化的用户界面组件,并与流行的集成开发环境(IDE)集成,从而简化用户界面开发流程。
Audiense Insights MCP Server
通过模型上下文协议启用与 Audiense Insights 账户的交互,从而促进营销洞察和受众数据的提取和分析,包括人口统计信息、行为和影响者互动。
VeyraX
一个单一的 MCP 工具,连接你所有喜爱的工具:Gmail、日历以及其他 40 多个工具。
graphlit-mcp-server
模型上下文协议 (MCP) 服务器实现了 MCP 客户端与 Graphlit 服务之间的集成。 除了网络爬取之外,还可以将任何内容(从 Slack 到 Gmail 再到播客订阅源)导入到 Graphlit 项目中,然后从 MCP 客户端检索相关内容。
Kagi MCP Server
一个 MCP 服务器,集成了 Kagi 搜索功能和 Claude AI,使 Claude 能够在回答需要最新信息的问题时执行实时网络搜索。
e2b-mcp-server
使用 MCP 通过 e2b 运行代码。
Neon MCP Server
用于与 Neon 管理 API 和数据库交互的 MCP 服务器
Exa MCP Server
模型上下文协议(MCP)服务器允许像 Claude 这样的 AI 助手使用 Exa AI 搜索 API 进行网络搜索。这种设置允许 AI 模型以安全和受控的方式获取实时的网络信息。