# Zeabur PaaS MCP

> Zeabur PaaS Deployment lets your AI agent manage cloud services, run container commands, and send emails directly from natural conversation. Deploy full application stacks using YAML templates or pre-packaged ZIP files, download specific runtime logs, and handle complex transactional email campaigns—all without logging into a dashboard.

## Overview
- **Category:** developer-tools
- **Price:** Free
- **Tags:** paas, deployment, container-management, transactional-email, cloud-hosting

## Description

You can use this MCP to automate the entire lifecycle of your cloud infrastructure, treating deployment and communication like simple conversations with your agent. Need to deploy a new backend service? Just give the YAML template, and the agent handles the whole process. Want to debug an issue? The agent fetches real-time build logs so you don't have to leave your chat window. You can run arbitrary shell commands inside a running container or download specific files for inspection. Beyond deployments, it handles all email traffic: sending single messages, scheduling future sends, and managing batch personalized emails. Because these operations involve sensitive credentials and critical system calls, Vinkius enforces the use of a zero-trust proxy. This means your API keys pass through only in transit; they never sit on disk. You just focus on what needs to happen.

## Tools

### create_upload_stage
Establishes a temporary upload area required for deploying pre-packaged application files.

### deploy_template
Deploys an entire service using raw YAML specification files.

### download_file
Retrieves a specific file from any active service container.

### execute_command
Runs arbitrary shell commands inside a live service container environment.

### get_build_logs
Fetches the real-time build output and logs for any given deployment attempt.

### prepare_deployment
Completes the setup phase after a file upload, making the application ready for actual deployment.

### schedule_email
Sets up an email to be sent at a specific time in the future.

### send_batch_emails
Sends multiple personalized emails to a group of recipients simultaneously.

### send_email
Dispatches a single, personalized transactional email immediately.

## Prompt Examples

**Prompt:** 
```
Deploy a new service using this YAML template: [YAML content]
```

**Response:** 
```
I've initiated the deployment using `deploy_template`. The service is being created in your project. You can track the progress using the provided Service ID.
```

**Prompt:** 
```
Get the build logs for deployment 'dep-123' in project 'proj-456'.
```

**Response:** 
```
Fetching logs via `get_build_logs`... I've retrieved the build output. It seems the build failed at the 'npm install' step due to a missing dependency.
```

**Prompt:** 
```
Run 'ls -la /app' in service 'srv-789' environment 'env-000'.
```

**Response:** 
```
Executing command via `execute_command`... The output shows the following files in the /app directory: package.json, src, and node_modules.
```

## Capabilities

### Deploy Services by Template
Pushes new services live using raw YAML specifications, bypassing manual console input.

### Run Container Commands
Executes shell commands within a running service container to check status or modify data.

### Download Runtime Files
Pulls specific files out of an active service container for local inspection or modification.

### Handle Deployments Lifecycle
Manages the full process for large application uploads, from creating staging areas to final deployment preparation.

### Send Transactional Emails
Sends immediate or scheduled batch emails using personalized content and specific API endpoints.

## Use Cases

### Rolling back a broken feature flag
A developer runs into production errors and asks the agent to check the logs. The agent uses `get_build_logs`, determines the last stable state, and initiates a targeted rollback via `deploy_template`.

### Sending quarterly status reports
The marketing team needs to notify 50 clients about new features. The agent uses `send_batch_emails`, pulling personalized data for each recipient and sending the full communication without manual CSV uploads.

### Investigating a container leak
An ops engineer suspects memory usage is spiking in a service container. They instruct the agent to run `execute_command` (e.g., 'top -b') and get the live output for immediate diagnosis.

### Preparing assets for a new app version
A front-end team needs to deploy their latest ZIP package. They first use `create_upload_stage`, then `prepare_deployment` before calling `deploy_template` to ensure the service is fully ready.

## Benefits

- Deploy services using `deploy_template`, which lets you manage entire backend stacks just by providing a YAML file, cutting out the manual step-by-step console setup.
- When debugging code, use `get_build_logs` to pull real-time build output directly into your chat. You don't need to switch tabs or copy/paste error chunks.
- `execute_command` lets you run shell commands inside a running container. This is critical for quick diagnostics when the application isn't throwing clear errors.
- Managing email campaigns becomes simple. Instead of writing code, use `send_batch_emails` to send personalized updates to hundreds of contacts at once.
- The full deployment process is covered. Start with `create_upload_stage`, then use `prepare_deployment` before the final push, giving you control over every step.
- It handles scheduling too. If an email needs to go out next Tuesday morning, just ask your agent to run `schedule_email`.

## How It Works

The bottom line is you manage complex cloud tasks—deploying code, running commands, sending emails—using only natural language prompts.

1. Subscribe to this MCP and provide your Zeabur API Token (and email token if needed).
2. Tell your agent the goal, like 'Deploy service X using this YAML' or 'Send a reminder batch for Q3'.
3. The agent executes the required steps through the necessary tools and reports back status updates.

## Frequently Asked Questions

**How do I use send_email with this MCP?**
You simply ask your agent to send an email and provide the necessary details, like recipient list and subject line. The tool handles the API call, making it a single-step action.

**Can I run multiple commands in one go using execute_command?**
Yes, you can chain sequential commands by listing them as arguments to `execute_command`. However, be careful: if any command fails, the entire sequence stops. Keep diagnostics simple.

**Is there a better way than using deploy_template?**
`deploy_template` is for structured deployments based on YAML specs. If you have a fully built application in a ZIP file, start by calling `create_upload_stage`, then use the full lifecycle via `prepare_deployment`.

**What if I need to check logs after deployment?**
Use `get_build_logs`. You just need to reference the specific deployment ID or service name, and the agent pulls the entire build output history for you. It's a reliable way to confirm success.

**How does the MCP handle sensitive credentials when I use a tool like `deploy_template`?**
Your keys pass through a zero-trust proxy. They are only used while transferring data; they never sit on disk. This keeps your actual API tokens safe and contained throughout the process.

**What is the correct sequence of calls when I need to deploy a pre-packaged application using `create_upload_stage`?**
You must first execute `create_upload_stage` to establish the necessary deployment environment. After that, you pass the unique stage ID it returns into `prepare_deployment`.

**If I use `download_file`, what format is the retrieved content in?**
The output is provided as a raw binary stream. You'll get the actual file contents from inside the service container, which your agent can then save or process.

**What’s the difference between using `send_email` and `schedule_email`?**
`send_email` sends a transactional message immediately through the Zeabur API. Conversely, `schedule_email` queues that message to send at a specific future time or date.

**Can I run shell commands inside my running services?**
Yes! Use the `execute_command` tool by providing the Service ID, Environment ID, and the command array (e.g., `["ls", "-la"]`). Your agent will return the output from the container.

**How do I debug a failed deployment using this server?**
You can use the `get_build_logs` tool with the Project ID and Deployment ID. It will fetch the logs so your AI can analyze the errors and suggest fixes.

**Does this support deploying pre-packaged ZIP files?**
Yes. First, use `create_upload_stage` to get a presigned URL and upload ID. After uploading your file, use `prepare_deployment` to trigger the actual deployment process.