No description
- JavaScript 72.1%
- TypeScript 25.3%
- Shell 2.6%
- Complete MCP server implementation for Ploi.io API - Server, site, script, and database management tools - Authentication via macOS keychain or environment variables - Full documentation in README.md and SKILL.md - TypeScript source code with proper build configuration |
||
|---|---|---|
| src | ||
| .gitignore | ||
| package-lock.json | ||
| package.json | ||
| ploi-mcp.sh | ||
| README.md | ||
| SKILL.md | ||
| test-server.js | ||
| test-server.ts | ||
| tsconfig.json | ||
Ploi MCP Server
An MCP (Model Context Protocol) server implementation for Ploi.io hosting platform.
Overview
This server exposes Ploi.io API functionality as MCP tools that can be used by AI agents to manage servers, sites, databases, and execute scripts.
Features
- Server management (list, get, status, restart)
- Site management (list, get, deploy, deployment status)
- Script execution on servers
- Database operations (list, create, backup)
Prerequisites
- Node.js >= 18.0.0
- A Ploi.io account with API access
- An API token stored in macOS keychain:
security add-generic-password -s ploi-api-token -a $USER -w YOUR_API_TOKEN
Installation
npm install
npm run build
Usage
The server can be run directly:
node dist/index.js
Testing
Test the server by sending a JSON-RPC request:
echo '{"jsonrpc":"2.0","id":1,"method":"tools/list"}' | node dist/index.js
Integration
To integrate with OpenClaw, add this to your openclaw.json:
{
"ploi-mcp": {
"command": "node",
"args": ["~/.openclaw/workspace/skills/ploi-mcp/dist/index.js"],
"env": {
"PLOI_API_KEY": "{{keychain:ploi-api-token}}"
}
}
}
Project Structure
ploi-mcp/
├── src/
│ ├── index.ts # Main entry point
│ ├── ploi-client.ts # API client wrapper
│ ├── tools/ # Tool type definitions
│ │ └── index.ts
├── dist/ # Compiled output
├── package.json
├── tsconfig.json
├── SKILL.md # Documentation
└── README.md # This file
Development
To develop and test changes:
- Make changes to TypeScript files in
src/ - Compile with
npm run build - Test with
echo '{"jsonrpc":"2.0","id":1,"method":"tools/list"}' | node dist/index.js