# Ploi MCP Server
An MCP (Model Context Protocol) server that exposes [Ploi.io](https://ploi.io) API functionality as tools for AI assistants like Claude.
Deploy your sites with a simple "deploy" command - no clicking around in dashboards!
## Features
- **One-command deployments** - Just say "deploy" and watch it happen
- **Auto-wait** - Deployments wait for completion and report success/failure
- **Project linking** - Link projects to Ploi sites with `.ploi.json`
- **Full server management** - List, restart, view logs
- **Site management** - Deploy, suspend, resume, view logs
- **Database management** - List databases, create backups
## Installation
### Option 1: Global Install (Recommended)
```bash
npm install -g ploi-mcp
```
### Option 2: No Install (using npx)
Skip installation - npx will download and run it automatically when configured.
## Quick Start
### Step 1: Get your API token
Get your token from [ploi.io/profile/api-keys](https://ploi.io/profile/api-keys)
### Step 2: Configure Claude Code
Add to `~/.claude.json`:
**If you installed globally:**
```json
{
"mcpServers": {
"ploi": {
"type": "stdio",
"command": "ploi-mcp",
"args": ["--token", "YOUR_TOKEN"]
}
}
}
```
**If using npx (no install):**
```json
{
"mcpServers": {
"ploi": {
"type": "stdio",
"command": "npx",
"args": ["-y", "ploi-mcp", "--token", "YOUR_TOKEN"]
}
}
}
```
### Step 3: Restart Claude Code
Close and reopen Claude Code for the MCP server to load.
### Step 4: Link your project
In Claude Code, say:
```
"Link this project to mydomain.com"
```
### Step 5: Deploy anytime
Just say:
```
"deploy"
```
That's it! The deployment will run and notify you when complete.
## Configuration
### Claude Code
Add to `~/.claude.json`:
```json
{
"mcpServers": {
"ploi": {
"type": "stdio",
"command": "ploi-mcp",
"args": ["--token", "YOUR_TOKEN"]
}
}
}
```
Or using environment variable:
```json
{
"mcpServers": {
"ploi": {
"type": "stdio",
"command": "ploi-mcp",
"env": {
"PLOI_API_TOKEN": "YOUR_TOKEN"
}
}
}
}
```
### Claude Desktop
Add to config file:
- **macOS**: `~/Library/Application Support/Claude/claude_desktop_config.json`
- **Windows**: `%APPDATA%\Claude\claude_desktop_config.json`
```json
{
"mcpServers": {
"ploi": {
"command": "ploi-mcp",
"args": ["--token", "YOUR_TOKEN"]
}
}
}
```
## Usage
### Command Line Options
```bash
ploi-mcp --token YOUR_TOKEN
ploi-mcp -t YOUR_TOKEN
PLOI_API_TOKEN=YOUR_TOKEN ploi-mcp
```
### Project Setup
Link a project to its Ploi site for one-command deployments:
```
"Link this project to mydomain.com"
```
This creates `.ploi.json` in your project:
```json
{
"server_id": 12345,
"site_id": 67890
}
```
Now just say `"deploy"` and it will:
1. Trigger deployment
2. Wait for completion (polling every 5 seconds)
3. Report success or failure
## Available Tools
### Project Tools
| Tool | Description |
|------|-------------|
| `deploy_project` | Deploy current project and wait for completion |
| `init_project` | Link project to a Ploi site by domain |
| `get_project_deploy_status` | Check deployment status |
### Server Management
| Tool | Description |
|------|-------------|
| `list_servers` | List all servers |
| `get_server` | Get server details |
| `restart_server` | Restart a server |
| `get_server_logs` | Get server logs (auth, error, lastlog, syslog) |
### Site Management
| Tool | Description |
|------|-------------|
| `list_sites` | List sites on a server |
| `get_site` | Get site details |
| `deploy_site` | Deploy a site and wait for completion |
| `get_site_logs` | Get deployment logs |
| `suspend_site` | Suspend a site |
| `resume_site` | Resume a suspended site |
| `find_site_by_domain` | Search for a site by domain |
### Database Management
| Tool | Description |
|------|-------------|
| `list_databases` | List databases on a server |
| `create_database_backup` | Create a database backup |
## Example Commands
```
"List my servers"
"Deploy"
"Deploy mydomain.com"
"Link this project to staging.mydomain.com"
"Show deployment logs"
"Restart the server"
"Create a backup of the production database"
```
## Development
```bash
git clone https://github.com/sudanese/ploi-mcp.git
cd ploi-mcp
npm install
npm run build
npm link
```
## License
MIT