Ploi MCP Server
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| token | No | Ploi API token (passed as a command-line argument --token or -t) | |
| PLOI_API_TOKEN | No | Ploi API token from ploi.io/profile/api-keys |
Capabilities
Features and capabilities supported by this server
| Capability | Details |
|---|---|
| tools | {
"listChanged": true
} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| list_serversA | List all servers in your Ploi account |
| get_serverA | Get details of a specific server |
| restart_serverB | Restart a server |
| get_server_logsB | Get recent server activity logs |
| list_sitesB | List all sites on a server |
| get_siteB | Get details of a specific site |
| create_siteA | Create a new site on a server (vhost, directory, system user). Provisions an empty site; install a repository/deploy separately. |
| delete_siteA | DELETE a site permanently — removes its nginx vhost, files, and system user. Irreversible. Double-check the site_id with get_site first. |
| deploy_siteA | Trigger deployment for a site and wait for it to complete. Returns status when done. |
| get_site_logsC | Get deployment/site logs |
| suspend_siteC | Suspend a site |
| resume_siteA | Resume a suspended site |
| deploy_projectA | Deploy the current project using .ploi.json config file and wait for completion. Use this when the user says 'deploy' without specifying a site. |
| get_deploy_scriptA | Read a site's deploy script (the shell commands Ploi runs on each deploy). |
| update_deploy_scriptA | Replace a site's deploy script with the given content (full-file PATCH — send the complete script, not a diff). Read it first with get_deploy_script. Ploi applies the write asynchronously, so allow a few seconds before reading it back. |
| get_site_envA | Read a site's .env file (APP_KEY, DB_*, queue/mail/Sentry config, etc.) |
| update_site_envA | Replace a site's .env file with the given content (full-file PATCH — send the complete file, not a diff). Read it first with get_site_env. Ploi applies the write asynchronously, so allow a few seconds before reading it back (an immediate get_site_env may 404 or show stale content). |
| get_project_deploy_statusA | Check deployment status for the current project using .ploi.json config |
| find_site_by_domainA | Search for a site by domain name across all servers |
| init_projectA | Initialize .ploi.json config for a project by searching for a domain. Use when user wants to link a project to a Ploi site. |
| list_databasesB | List databases on a server |
| create_databaseA | Create a new database on a server (optionally with a dedicated user/password — Ploi auto-generates both when omitted). |
| delete_databaseA | DELETE a database permanently. Irreversible — verify the database_id with list_databases first. |
| list_database_backupsA | List database backup configurations (across the account) |
| get_database_backupA | Get a database backup configuration by id |
| run_database_backupA | Run an existing database backup configuration now ('backup now'). Use list_database_backups to find the backup id. |
| create_database_backupA | Create a SCHEDULED database backup configuration. Requires a pre-existing backup destination (backup_configuration id — see Ploi 'backup configurations'). This schedules backups; use run_database_backup to trigger one immediately. |
| delete_database_backupB | Delete a database backup configuration |
| list_daemonsA | List the daemons (long-running processes like queue:work) on a server |
| create_daemonA | Create a daemon (long-running process) on a server, e.g. 'php artisan queue:work'. |
| restart_daemonA | Restart a daemon (e.g. to pick up new code after a deploy) |
| toggle_daemonA | Pause or unpause a daemon (single toggle — pauses if running, resumes if paused) |
| delete_daemonC | Delete a daemon |
| list_cronsA | List the cron jobs (crontab entries) on a server |
| create_cronB | Create a cron job on a server, e.g. the Laravel scheduler 'php /path/artisan schedule:run' at frequency '* * * * *'. |
| delete_cronC | Delete a cron job |
| list_certificatesA | List the SSL certificates on a site |
| request_certificateA | Request an SSL certificate for a site (defaults to Let's Encrypt). Provisioning is async — check list_certificates for status. |
| delete_certificateB | Delete an SSL certificate from a site |
| restart_serviceA | Restart a server service (nginx, php-fpm, mysql, redis, supervisor) to apply config changes. |
| list_queuesA | List the queue workers on a site |
| get_queueB | Get a single queue worker by id |
| create_queueA | Create a queue worker on a site (Ploi's first-class queue feature). Defaults: connection 'database', queue 'default', max-time 60s, sleep 30s, 1 process, 1 try. |
| restart_queueA | Restart a queue worker (e.g. to pick up new code after a deploy) |
| toggle_queueA | Pause or unpause a queue worker (single toggle — pauses if running, resumes if paused) |
| delete_queueB | Delete a queue worker |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
Latest Blog Posts
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/sudanese/ploi-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server