Cloudways MCP (Model Context Protocol) Server is a feature that allows AI assistants to interact directly with your Cloudways platform using simple, natural language.
Instead of manually navigating the platform, you can ask an AI tool to perform actions for you. The MCP server connects your AI assistant with Cloudways and converts your requests into actual operations on your servers and applications.
It works by providing structured tools that MCP-compatible clients such as Claude, Cursor, Visual Studio Code Copilot, ChatGPT, and others can use to perform tasks automatically.
How Cloudways MCP Works?
Cloudways MCP works with any tool that supports the Model Context Protocol (MCP), which is an open standard designed to connect AI systems with external platforms.
Below is a simple step-by-step overview of how it works:
Connect your MCP-compatible client to the Cloudways MCP server by following the setup instructions.
Enter your request in the client interface (for example: “List all my servers”).
The client sends your request to the Cloudways MCP server.
The MCP server identifies the required action, verifies your account using your credentials, and performs the task.
The results are returned to your client in a clear and structured format.
This process allows you to manage your Cloudways platform without switching between different tools or dashboards.
Recommended LLM for Cloudways MCP
Cloudways MCP is designed to work with any Large Language Model (LLM). This means you can use it with different AI models depending on your preference.
However, the quality and accuracy of responses may vary based on the model you choose. For better results, we recommend using the following models:
Claude Opus 4
Claude Sonnet 4
GPT-5
ChatGPT o3
Gemini 2.5 Pro
Claude Sonnet 3.5
GPT-4.1
GPT o4-mini
GPT-4o
Gemini 2.5 Flash
Why Should You Use Cloudways MCP?
The main benefit of Cloudways MCP is that it removes the need to switch between multiple tools or dashboards.
Cloudways MCP acts as a bridge between your AI assistant and the Cloudways platform. This allows you to stay in your preferred environment while the AI handles infrastructure-related tasks.
With MCP, Cloudways provides a set of tools through a standard interface. Your AI client uses these tools to perform actions such as managing servers, handling applications, or retrieving information.
As a result, you can:
Manage your infrastructure using simple, conversational commands
Perform tasks faster without manual navigation
Get clear and structured responses from your AI tool
All operations are executed using Cloudways-native capabilities, ensuring accuracy and reliability.
For security, authentication is handled using your email and API key. These credentials are securely transmitted as encrypted data over HTTPS, ensuring safe communication between your client and the Cloudways platform.
What You Can Do With Cloudways MCP?
Cloudways MCP provides a set of tools that are directly connected to actions available on the Cloudways platform.
Each tool performs a specific task behind the scenes using Cloudways APIs. Instead of manually making API calls or navigating the platform, you can simply describe what you want to do in plain language, and the MCP client will handle the rest.
For example, when you request an action, the MCP client automatically selects the correct tool, performs the operation, and returns the result in a structured format.
Server Management
Cloudways MCP allows you to manage your servers easily through AI-assisted commands.
With server management tools, you can:
Create and set up new servers
Start, stop, or restart servers
Scale server resources as needed
Manage backups and restore points
Track the status of ongoing operations (such as server creation or scaling)
These tools help you handle all key server-related tasks without needing to manually interact with the Cloudways platform interface.
Tool | Description |
server_list | List all servers with their status, cloud provider, region, IP, and app count. |
server_get | Get detailed info about a specific server including all hosted apps and configuration. |
server_create | Create a new server on DigitalOcean, AWS, GCE, Vultr, or Linode with an initial application. |
server_start | Start a stopped server. |
server_stop | Stop a running server. |
server_restart | Restart a server to apply configuration changes. |
server_delete | Permanently delete a server and all its data. |
server_backup | Create a full backup of a server. |
server_scale | Upgrade or downgrade server size (CPU/RAM). |
server_update_label | Rename a server. |
operation_status | Check the status of an async operation. |
server_clone | Clone an existing server to a new server with the same applications and, optionally, settings, app domains, cron jobs, and SSL certificates. |
server_scale_volume | Change the data volume size on a server (available for Amazon and GCE servers only). |
server_disk_usage_fetch | Initiate a disk usage fetch operation for a server. |
server_snapshot_frequency_update | Configure the snapshot backup frequency (in hours) for AWS and GCE servers. Send an empty or null value to disable. |
server_backup_settings_update | Update the backup settings for a server, including frequency of automatic backups, retention period, off-server storage, local backups, and more. |
server_local_backup_delete | Delete the local backups stored on the server itself. |
server_package_update | Install, uninstall, or upgrade packages on a server (PHP, MySQL/MariaDB versions, etc.). Use server_packages to discover available packages. |
server_maintenance_window_get | Retrieve the configured maintenance window settings for a server (days of the week and time slot) during which Cloudways may apply updates. |
server_maintenance_window_update | Update the maintenance window settings for a server by setting the days of the week and preferred time slot. |
server_master_username_update | Update the master username for a server (used for SSH/SFTP access). |
server_master_password_update | Update the master password for a server (used for SSH/SFTP access). |
server_storage_attach
| Attach a Block Storage volume to a server (DigitalOcean servers only). |
server_storage_scale | Resize the Block Storage volume attached to a server (DigitalOcean servers only). |
Application Management
Tools for managing applications hosted on Cloudways servers, including creation, cloning, deletion, backups, and security insights.
Tool | Description |
app_list | List all applications on a specific server. |
app_get | Get detailed information about a specific application. |
app_create | Create a new application (WordPress, Laravel, Magento, etc.). |
app_delete | Permanently delete an application and its data. |
app_clone | Clone an application on the same server. |
app_clone_to_server | Clone an application to a different server. |
app_backup | Create a backup of an application. |
app_credentials | Get SSH/SFTP credentials for an application. |
app_purge_cache | Clear all cache layers for an application. |
app_update_label | Rename an application. |
app_vulnerabilities_list | List WordPress vulnerabilities with severity scores. |
app_vulnerabilities_refresh | Trigger a new vulnerability scan. |
staging_app_clone | Clone a staging application to the same server.
|
staging_app_clone_to_server
| Clone a staging application to a different existing server.
|
app_cname_update
| Update an application's primary domain (CNAME).
|
app_cname_delete
| Delete an application's primary domain (CNAME), reverting to the default Cloudways URL.
|
app_restore
| Restore an application to a previous backup version (local or remote).
|
app_restore_rollback
| Roll back the last backup restore action, returning the application to its pre-restore state.
|
app_backup_status_get
| Get the status of an in-progress application backup operation.
|
app_local_backup_delete
| Delete the local backup created as part of a restore operation.
|
app_aliases_update
| Update application aliases (secondary domains pointing to the same application).
|
app_cron_list_get
| Retrieve the list of cron jobs scheduled for an application on a server.
|
app_cron_list_update
| Update the list of cron jobs scheduled for an application on a server.
|
app_db_password_update
| Update the database password used by the application to connect to its MySQL/MariaDB database.
|
app_symlink_update
| Update the symlink target for an application by changing where public_html points.
|
app_webroot_update
| Update the webroot of an application (e.g., point Nginx to /public_html/public for Laravel).
|
app_cors_headers_update
| Update CORS (cross-origin resource sharing) headers for an application |
app_webp_redirection_update
| Enable or disable WebP redirection and automatically serve WebP versions of images to supported browsers.
|
app_enforce_https_update
| Enable or disable HTTPS redirection for an application (forces HTTP traffic to HTTPS).
|
app_reset_permissions
| Reset file and folder permissions for an application, fixing ownership and modes after manual changes.
|
app_fpm_settings_update
| Configure PHP-FPM settings for an application (workers, max children, request memory, etc.).
|
app_fpm_settings_get
| Retrieve the current PHP-FPM configuration for an application.
|
app_varnish_settings_get
| Retrieve the Varnish configuration (TTL, cacheable paths, exclusions) for an application.
|
app_varnish_settings_update
| Update the Varnish configuration (TTL, cacheable paths, exclusions) for an application
|
app_credentials_create
| Create a new SSH/SFTP access credential for an application (in addition to the master credential).
|
app_credentials_delete
| Delete a specific application access credential.
|
app_credentials_update
| Update a specific application access credential ( rename it, change its password, or both).
|
app_ssh_access_get
| Retrieve the current SSH access status for an application (enabled or disabled).
|
app_ssh_access_update
| Enable or disable SSH access for an application.
|
app_access_state_get
| Retrieve the access state of an application ( publicly accessible or in maintenance mode).
|
app_settings_get
| Retrieve current values of application setting flags (XML-RPC, GEO-IP header, device detection, etc.).
|
app_access_state_update
| Update the access state of an application (public or maintenance mode).
|
app_geo_ip_header_update
| Enable or disable the GEO-IP header. Note that Cloudways injects the visitor's country into the request.
|
app_xmlrpc_update
| Enable or disable WordPress XML-RPC for an application (recommended off for security).
|
app_device_detection_update
| Enable or disable Device Detection for an application (separates desktop and mobile cache buckets).
|
app_ignore_query_string_update
| Enable or disable the Ignore Query String cache rule for an application.
|
app_php_direct_execution_update | Enable or disable direct PHP file execution from wp-content/uploads (WordPress security setting).
|
app_cron_optimizer_update
| Enable or disable the Cron Optimizer. This replaces WP-Cron with system cron for improved reliability.
|
app_admin_password_update
| Update the admin password of the installed application (e.g., the WordPress admin user's password).
|
app_password_protection_get
| Retrieve the current password protection (htpasswd / HTTP Basic Auth) configuration for an application.
|
app_password_protection_update
| Enable or update password protection (HTTP Basic Auth) for an application.
|
app_wp_multisite_update
| Enable or update the WordPress Multisite configuration (subdomain or subdirectory network).
|
app_stack_update
| Update the application stack version (v1 Hybrid/Apache or v2 Lightning/NGINX).
|
app_object_cache_update
| Enable or disable the WordPress Object Cache (OCP) feature for an application. |
Service Management
Tools for managing infrastructure-level services such as web servers, databases, and caching layers. These operations directly impact application availability and performance.
Tool | Description |
service_status | Check the status of all services on a server. |
service_restart | Restart a specific service (nginx, mysql, php-fpm, etc.). |
service_start | Start a stopped service. |
service_stop | Stop a running service. |
varnish_manage | Enable, disable, or purge Varnish cache at server level. |
varnish_app_manage | Enable or disable Varnish cache per application. |
Add-on Management
Tools for managing Cloudways add-ons at both account and server levels, including activation, deactivation, and configuration of services like SMTP and DNS.
Tool | Description |
addon_list | List all available add-ons with status and pricing. |
addon_activate | Activate an add-on on your account. |
addon_deactivate | Deactivate an add-on from your account. |
addon_activate_on_server | Enable an add-on on a specific server. |
addon_deactivate_on_server | Remove an add-on from a server. |
Cloudflare CDN
Tools for integrating and managing Cloudflare CDN at the application level, including domain onboarding and verification workflows.
Tool | Description |
cloudflare_add_domain | Add a domain to Cloudflare CDN for an application. |
cloudflare_get_details | View CDN status, configuration, and usage. |
cloudflare_get_txt_records | Retrieve DNS TXT records for domain verification. |
DNS Made Easy
Tools for managing DNS zones and records through the DNS Made Easy add-on, including domain lifecycle operations and traffic usage insights.
Tool | Description |
dns_made_easy_list_domains | List all managed domains. |
dns_made_easy_add_domains | Add domains for DNS management. |
dns_made_easy_delete_domains | Delete domains from DNS Made Easy. |
dns_made_easy_get_domain_status | Check domain status. |
dns_made_easy_list_records | List DNS records for a domain. |
dns_made_easy_add_records | Add DNS records. |
dns_made_easy_delete_records | Delete DNS records. |
dns_made_easy_update_record | Update DNS records. |
dns_made_easy_get_domain_usage | View DNS usage statistics. |
Server Settings
Tools for viewing and modifying server-level configuration, including PHP settings, MySQL parameters, and automated maintenance operations like disk cleanup.
Tool | Description |
server_settings_get | View server and PHP configuration. |
server_settings_update | Update PHP and MySQL settings. |
server_disk_cleanup_settings_get | View disk cleanup settings. |
server_disk_cleanup_settings_update | Configure automated cleanup. |
server_disk_cleanup_execute | Execute disk cleanup manually. |
Monitoring & Analytics
Tools for retrieving infrastructure metrics, application performance data, and traffic analytics. These support debugging, optimization, and capacity planning workflows.
Tool | Description |
monitoring_server_summary | View server bandwidth and disk usage. |
monitoring_server_usage | Refresh server usage statistics. |
monitoring_server_graph | Retrieve monitoring graphs (CPU, memory, etc.). |
monitoring_app_summary | View application-level usage metrics. |
analytics_app_traffic | Analyze traffic patterns and sources. |
analytics_app_traffic_details | Get detailed traffic data for custom ranges. |
analytics_app_php | Analyze PHP performance and slow pages. |
analytics_app_mysql | Analyze MySQL queries and performance. |
analytics_app_cron | View cron job execution analytics. |
Copilot Insights
Tools that provide AI-driven insights and alerts about infrastructure health, risks, and optimization opportunities based on Cloudways Copilot analysis.
Tool | Description |
copilot_insights_list | Retrieve insights, alerts, and recommendations for your infrastructure. |
Projects
Tools for organizing servers and applications into logical groups. These operations help you structure your Cloudways fleet for easier navigation, client management, and team collaboration.
Tool | Description |
project_list | List all Projects on the account (with their IDs, names, and the servers / apps grouped under each). |
project_create | Create a new Project on the account (give it a name and an initial set of application members). |
project_update | Update an existing Project by its ID by renaming or changing which applications belong to the project. |
project_delete | Delete a Project by its ID (This only removes the grouping. The underlying servers and applications are not deleted). |
Git Deployment
Tools for managing Git-based deployments on your applications. These operations enable source-controlled code delivery, from setting up SSH deploy keys and linking repositories to pulling the latest commits and reviewing deployment history.
Tool | Description |
git_generate_key | Generate a fresh SSH deploy key for an application (Cloudways creates a new key pair on the server; the public half is then registered with the Git repository host so Cloudways can pull from it without a password). |
git_key_get | Retrieve the contents of the public SSH key generated for an application. Copy/paste this value into your Git host (GitHub / GitLab / Bitbucket) as a deploy key. |
git_branches_get | Refresh and return the list of branches available in the linked Git repository. This can be used to populate a branch selector before cloning or pulling. |
git_clone | Clone a Git repository (specific branch) into an application's web root and deploy the initial code. Use this once when first linking a repo. Note that subsequent updates go through git_pull. |
git_pull | Pull the latest commits from the linked Git branch and deploy them onto the application. |
git_history_get | Retrieve the recent Git deployment history for an application (timestamped list of clone / pull operations with commit hashes and status) to review what was deployed and when. |
SSH Key Management
Tools for managing SSH public keys across servers, applications, and system users. These operations control who can authenticate via SSH or SFTP, enabling secure access provisioning and revocation without requiring password-based login.
Tool | Description |
ssh_key_create | Add (upload) an SSH public key to a server, an application, or a system user so that the holder of the corresponding private key can SSH/SFTP into that target. |
ssh_key_delete | Delete (revoke) a previously added SSH key by its ssh_key_id, removing the holder's ability to SSH/SFTP into the associated server, application, or user. |
ssh_key_update | Rename an existing SSH key by its ssh_key_id (updates the label only). To rotate the key material, delete the old key (ssh_key_delete) and add a new one (ssh_key_create). |
How to Connect to Cloudways MCP?
Important Prerequisites:
To use Cloudways MCP, you must have a valid Cloudways account with access to the infrastructure resources you intend to use or manage.
You will also need a compatible MCP client.
You will need the following to use the Cloudways MCP server:
Registered Email Address
Node.js (v24.14.1 or higher) installed on your machine.
Required Headers
Every request to the Cloudways MCP server must include the following headers:
Header | Description | Example |
X-CW-Email | Your Cloudways account email | |
X-CW-Api-Key | Your Cloudways API key | abc123def456... |
X-Mcp-Host | The MCP host you are connecting from | cursor, windsurf, claude-desktop, claude-code, vs-code, gemini-cli, codex, codex-cli |
Step #1: Generate Cloudways API Credentials
Log in to platform.cloudways.com
Open the API Integration section from the bottom left
Click Generate API Key (or copy an existing key)
Copy:
Your account email
Your API key
These will be used in your MCP client configuration.
Step #2: Configure Your MCP Client
Below are client-specific configuration examples. Each client must define:
MCP server endpoint
Authentication headers
1. Cursor
One-click install:
Click the button below to open Cursor with the Cloudways MCP server pre-configured. You will only need to fill in your Cloudways email and API key in the form that appears, then click Install.
Manual setup:
Config file: ~/.cursor/mcp.json
Open Cursor.
Go to Settings → Tools & MCP → New MCP Server.
This opens
~/.cursor/mcp.json. Add the following configuration:
{
"mcpServers": {
"cloudways": {
"url": "https://mcp.cloudways.com/mcp/",
"headers": {
"X-CW-Email": "<your-cloudways-email>",
"X-CW-Api-Key": "<your-cloudways-api-key>",
"X-Mcp-Host": "cursor"
}
}
}
}
4. Save the file.
5. Go back to Settings → Tools & MCP and verify that the Cloudways server shows a green dot.
Tip: If you see a red dot, restart Cursor and ensure the JSON syntax is valid.
Alternative configuration (stdio via mcp-remote):
If the native HTTP configuration above does not work for you (e.g., connection issues or proxy restrictions), you can use the mcp-remote bridge instead. This requires Node.js (v24+) to be installed on your machine.
Replace the cloudways entry in ~/.cursor/mcp.json with:
{
"mcpServers": {
"cloudways": {
"command": "npx",
"args": [
"--yes", "mcp-remote@latest",
"https://mcp.cloudways.com/mcp/",
"--header", "X-CW-Email: <your-cloudways-email>",
"--header", "X-CW-Api-Key: <your-cloudways-api-key>",
"--header", "X-Mcp-Host: cursor"
]
}
}
}
Save the file and restart Cursor. The server should show a green dot in Settings → Tools & MCP.
2. Windsurf
Config file: ~/.codeium/windsurf/mcp_config.json
Open Windsurf.
Click the MCPs icon in the top-right menu of the Cascade panel, or go to Windsurf Settings → Cascade → MCP Servers.
Click "Add custom server" to open
mcp_config.json, or edit it directly at the path above.Add the following configuration:
{
"mcpServers": {
"cloudways": {
"serverUrl": "https://mcp.cloudways.com/mcp/",
"headers": {
"X-CW-Email": "<your-cloudways-email>",
"X-CW-Api-Key": "<your-cloudways-api-key>",
"X-Mcp-Host": "windsurf"
}
}
}
}
5. Save the file. Windsurf will detect the change automatically.
Tip:
Windsurf supports environment variable interpolation. You can use ${env:CW_EMAIL} and ${env:CW_API_KEY} in place of hardcoded values if you prefer to keep credentials in your shell environment.
3. Claude Desktop
Config file locations:
macOS:
~/Library/Application Support/Claude/claude_desktop_config.jsonWindows:
%APPDATA%\Claude\claude_desktop_config.json
Claude Desktop does not natively support remote HTTP MCP servers in its JSON configuration. You need mcp-remote, a Node.js bridge that handles the connection.
This requires Node.js (v24+) to be installed on your machine.
Open the
claude_desktop_config.jsonfile at the path above.Add the following configuration:
{
"mcpServers": {
"cloudways": {
"command": "npx",
"args": [
"mcp-remote",
"https://mcp.cloudways.com/mcp/",
"--header", "X-CW-Email:<your-cloudways-email>",
"--header", "X-CW-Api-Key:<your-cloudways-api-key>",
"--header", "X-Mcp-Host:claude-desktop"
]
}
}
}
3. Save the file and restart Claude Desktop.
Verifying the connection
In Claude Desktop, go to Profile → Settings → Developer.
Under Local MCP Servers, you should see the cloudways server with a Running status.
If the server is not running, click View logs next to it to see detailed error logs and diagnose the issue.
Also double-check that your
claude_desktop_config.jsoncontains valid JSON (a missing comma or bracket will prevent the server from starting).
Important: Do not add spaces around the colon (:) in header values passed via --header arguments. For example, use X-CW-Email:[email protected], not X-CW-Email: [email protected].
4. Claude Code
Claude Code supports remote HTTP MCP servers natively via the CLI.
Run the following command in your terminal:
claude mcp add --transport http \
--header "X-CW-Email: <your-cloudways-email>" \
--header "X-CW-Api-Key: <your-cloudways-api-key>" \
--header "X-Mcp-Host: claude-code" \
-s user \
cloudways https://mcp.cloudways.com/mcp/
The -s user flag stores the configuration at the user level so it persists across all your projects.
To verify it was added:
claude mcp list
To remove it later:
claude mcp remove cloudways
5. VS Code (GitHub Copilot)
Config file: ~/Library/Application Support/Code/User/mcp.json (macOS) or %APPDATA%\Code\User\mcp.json (Windows)
Step-by-step setup:
Open VS Code.
Open the Command Palette (Ctrl+Shift+P on Windows/Linux, Cmd+Shift+P on macOS) and type MCP: Add Server.
Select HTTP (HTTP or Server-Sent Events) from the list.
When prompted for the server URL, enter:
5. When prompted for a Server ID, enter:
cloudways
6. VS Code will open the mcp.json file and may show a "Dynamic Client Registration not supported" dialog. Click Cancel, and if a second prompt appears asking for client registration details, press Esc to dismiss it.
7. Replace the entire contents of mcp.json with the following:
{
"servers": {
"cloudways": {
"type": "http",
"url": "https://mcp.cloudways.com/mcp/",
"headers": {
"X-CW-Email": "<your-cloudways-email>",
"X-CW-Api-Key": "<your-cloudways-api-key>",
"X-Mcp-Host": "vs-code"
}
}
},
"inputs": []
}
8. Save the file.
9. Click the Restart button that appears above the "cloudways" server entry in the editor to start the server.
Verifying the connection
Open the right sidebar (
Opt+Cmd+Bon macOS,Ctrl+Alt+Bon Windows/Linux) or click the Copilot Chat icon.Click the Settings (gear) icon at the top-right corner of the sidebar.
Go to the MCP Servers section and confirm that the Cloudways server shows a Running status with a green indicator.
Tip:
If the server does not show as running, click on the cloudways entry in the MCP Servers list, then Disable and Enable it again. If it still does not start, verify the JSON syntax and ensure your credentials are correct.
Note:
The VS Code MCP configuration uses "servers" (not "mcpServers") and requires a "type": "http" field. This is different from other MCP hosts.
6. Gemini CLI
Config file: ~/.gemini/settings.json
Open or create the
~/.gemini/settings.jsonfile.Add the following configuration inside the file:
{
"mcpServers": {
"cloudways": {
"httpUrl": "https://mcp.cloudways.com/mcp/",
"headers": {
"X-CW-Email": "<your-cloudways-email>",
"X-CW-Api-Key": "<your-cloudways-api-key>",
"X-Mcp-Host": "gemini-cli"
}
}
}
}3. Save the file.
4. Run Gemini in your terminal. The Cloudways tools will be discovered automatically.
Note:
Gemini CLI uses "httpUrl" (not "url" or "serverUrl") for Streamable HTTP servers. Using "url" will attempt an SSE connection instead.
7. Codex
Codex (the IDE extension) shares its configuration with Codex CLI via config.toml.
Config file: ~/.codex/config.toml
Open or create the
~/.codex/config.tomlfile.Add the following configuration:
[mcp_servers.cloudways]
url = "https://mcp.cloudways.com/mcp/"
[mcp_servers.cloudways.http_headers]
X-CW-Email = "<your-cloudways-email>"
X-CW-Api-Key = "<your-cloudways-api-key>"
X-Mcp-Host = "codex"
3. Save the file. The Cloudways MCP server will be available in both the Codex IDE extension and the CLI.
8. Codex CLI
Codex CLI shares the same config.toml as the Codex IDE extension. You can configure it either by editing the file directly (see Codex above) or via the CLI:
codex mcp add cloudways --url https://mcp.cloudways.com/mcp/
After adding the server, open ~/.codex/config.toml and add the custom headers under the [mcp_servers.cloudways] section:
[mcp_servers.cloudways]
url = "https://mcp.cloudways.com/mcp/"
[mcp_servers.cloudways.http_headers]
X-CW-Email = "<your-cloudways-email>"
X-CW-Api-Key = "<your-cloudways-api-key>"
X-Mcp-Host = "codex-cli"
To verify:
codex mcp list
To remove:
codex mcp remove cloudways
9. Other JSON-configured clients
Any client that supports the MCP JSON config format can connect using the same JSON snippet from the Cursor section above.
Step #3: Verify the Connection
Once configured:
Open your MCP-enabled client
Run a simple prompt:
Show me all my serversExpected behavior:
If the connection is working, you will see a list of your Cloudways servers with their status, cloud provider, region, and IP addresses.
Configuration Reference
A quick reference of the configuration format for each MCP host:
MCP Host | Config File | Server URL Key | Headers Key | Transport |
Cursor | ~/.cursor/mcp.json | url | headers | Auto-detected |
Windsurf | ~/.codeium/windsurf/mcp_config.json | serverUrl | headers | Auto-detected |
Claude Desktop | claude_desktop_config.json | via mcp-remote args | via --header args | stdio bridge |
Claude Code | CLI / ~/.claude.json | positional arg | --header flags | http |
VS Code | .vscode/mcp.json | url | headers | http |
Gemini CLI | ~/.gemini/settings.json | httpUrl | headers | Streamable HTTP |
Codex | ~/.codex/config.toml | url | http_headers | Streamable HTTP |
Codex CLI | ~/.codex/config.toml | url | http_headers | Streamable HTTP |
Cannot See All MCP Tools?
Your MCP client (Cursor, Claude Desktop, Windsurf, Cline, or any other MCP-compatible client) caches the tools list when it first connects to the Cloudways MCP server. To pick up the new updated tools list, do one of the following:
Quickest: open your MCP client's server settings, toggle the Cloudways MCP server off, then back on.
If toggling isn't available: fully quit and restart the MCP client.
Reconnect the client to pick up the new tools.
Pick the instructions matching your client:
MCP client | How to reload the Cloudways MCP server |
Cursor | Settings → MCP → find "cloudways" in the list → click the toggle to disable, wait one second, click again to re-enable. Or quit Cursor (Cmd-Q on macOS) and reopen. |
Claude Desktop | Settings → Developer → MCP Servers → toggle "cloudways" off, then on. If you don't see a toggle, fully quit Claude Desktop (Cmd-Q on macOS / Quit from the system tray on Windows) and reopen. Note: clicking the red close button is not enough. You must fully quit. |
Windsurf | Settings → MCP → click the refresh icon next to "cloudways". If the icon isn't available, restart Windsurf. |
Cline (VS Code extension) | Open the Cline panel → settings (gear icon) → MCP Servers → toggle "cloudways" off and back on. |
Other MCP-compatible clients | Look for an MCP server settings / integrations panel and toggle the Cloudways entry off and on. If that isn't available, fully quit and reopen the client. |
Confirm your agent sees the new tools.
Open a fresh conversation and paste this prompt:
"List all of my Cloudways projects”
A correctly-reloaded client will answer that and list all of your projects in your Cloudways account.
If the agent says that tool to fetch the list of projects is not available, the client is still using the cached v1.0.0 tools list. To fix this, make sure you're doing a full quit (not just closing the window) before reopening.
Troubleshooting Guide
Here are the most common issues and how to fix them:
Issue | Resolution |
Connection failed / red indicator | Verify the MCP URL is exactly https://mcp.cloudways.com/mcp/ (trailing slash included) |
401 Unauthorized | Double-check that your email and API key are correct and copied from the API portal |
Tools not appearing | Restart your MCP host after saving the configuration file |
Timeout errors | Retry after a few moments, as transient network issues can cause timeouts |
mcp-remote not found (Claude Desktop) | Ensure Node.js v18+ is installed and npx is available in your PATH |
Codex initialization failure | Make sure the |
See Cloudways MCP in Action
Now that you have the Cloudways MCP working with your client, you can try the following queries to see the capabilities first-hand.
Quick Lookups
What You Want to Do | Enter in the Client | What Happens Behind the Scenes |
See your fleet | "Show me all my running servers" | Calls server_list and filters by active status. Returns server names, IPs, providers, and app counts. |
Inspect a server | "Show details of server 12345" | Calls server_get. Returns full config, hosted apps, and current state. |
Check services | "Are all services healthy on my production server?" | Calls service_status. Returns the status of NGINX, MySQL, PHP-FPM, and more. |
Get credentials | "I need SSH credentials for my staging app" | Calls app_credentials. Returns host, port, username, and password. |
Check operation | "Is my backup finished?" | Calls operation_status. Returns current progress of async operations. |
Day-to-Day Management
What You Want to Do | Enter in the Client | What Happens Behind the Scenes |
Scale up for traffic | "Scale my server to 4GB RAM" | Calls server_scale. Resizes the server (brief downtime may occur). |
Clear cache | "Purge all caches for my WordPress blog" | Calls app_purge_cache. Clears application, Varnish, and object caches. |
Create a staging copy | "Clone my production app to create a staging version" | Calls app_clone. Creates an exact copy on the same server. |
Restart PHP | "Restart PHP-FPM on server 12345" | Calls service_restart with the php-fpm parameter. |
Backup before deploy | "Back up my production app before I push changes" | Calls app_backup. Initiates a point-in-time backup. |
Performance Troubleshooting
What You Want to Do | Enter in the Client | What Happens Behind the Scenes |
Diagnose high CPU | "Show CPU usage for my server over the last 24 hours" | Calls monitoring_server_graph. Returns CPU utilization metrics. |
Find traffic spikes | "Show top IPs hitting my store in the last hour" | Calls analytics_app_traffic. Identifies traffic patterns and sources. |
Find slow pages | "Which PHP pages are slowest on my app?" | Calls analytics_app_php. Returns pages ranked by execution time. |
Check slow queries | "Show slow MySQL queries for my app" | Calls analytics_app_mysql. Returns queries sorted by duration. |
Security check | "Scan my WordPress site for vulnerabilities" | Calls app_vulnerabilities_refresh then app_vulnerabilities_list. Returns findings with severity scores. |
Infrastructure Provisioning
What You Want to Do | Enter in the Client | What Happens Behind the Scenes |
Spin up a new server | "Create a 2GB DigitalOcean server in NYC with WordPress" | Calls server_create. Provisions the server with your chosen cloud provider and pre-installs the app. |
Deploy a new app | "Add a Laravel app to server 12345" | Calls app_create. Deploys and configures the application. |
Move an app | "Clone my app from server A to server B" | Calls app_clone_to_server. Replicates the app to a different server. |
Clean up resources | "Delete the old staging server I’m not using anymore" | Calls server_delete. Permanently removes the server and all data. |
Tips for Getting the Most Out of Cloudways MCP
Be Specific in Your Prompts
Provide clear and detailed instructions when making a request. The more context you include, the more accurate the response will be.
For example, instead of writing “Check my server,” you can write “Show CPU and memory usage for server 12345 over the last 7 days.”
Whenever possible, include details such as server IDs, application names, or time ranges.
Start with Read Operations
If you are new to Cloudways MCP, begin with basic read-only actions.
You can start by listing your servers, checking service status, or viewing application details.
This helps you understand how the system works before performing actions that make changes, such as scaling or deleting resources.
Use It for Incident Response
Cloudways MCP can help you quickly troubleshoot issues without navigating the platform manually.
You can use simple commands to check CPU usage, identify unusual traffic, review slow queries, and take necessary actions.
This is especially useful when you need to respond to issues quickly.
Automate Repetitive Tasks
If you regularly perform the same set of actions, you can turn them into a repeatable workflow.
For example, you can create a sequence to check backups, review disk usage, and clear cache.
Some MCP clients also allow you to save these sequences as templates for quick reuse.
Keep Your Credentials Updated
For security, regularly update your Cloudways API key, especially if it has been shared or used on multiple devices.
After updating your API key, make sure to update it in your MCP client settings as well.
Cloudways MCP Server FAQs
What is Cloudways MCP?
Cloudways MCP (Model Context Protocol) is an interface that enables AI assistants to interact with Cloudways infrastructure using natural language.
Instead of manually using dashboards or APIs, developers can describe actions in plain language, let an MCP-compatible client translate them into API-backed operations, and then receive structured, actionable responses.
What is an MCP client?
An MCP client is the environment used to interact with the Cloudways MCP server. These clients send prompts to the MCP server and display structured responses. Supported environments include:
Cursor IDE
Claude Desktop
Visual Studio Code
ChatGPT
Do I need to learn Cloudways APIs to use MCP?
No. Cloudways MCP handles API abstraction. However, you must understand Cloudways Infrastructure concepts (servers, apps, services) and operational impact of services and add-on operations (for instance, scaling, deletion, restarts).
Does Cloudways MCP replace DevOps workflows?
No. Cloudways MCP improves execution speed and accessibility but does not replace the underlying requirements for risk assessment and optimization of production environment components for maximum performance and security for your business operations.
What are the prerequisites for using Cloudways MCP?
You need:
A valid Cloudways account
API credentials (email + API key)
An MCP-compatible client
Node.js (required for some clients like Claude Desktop)
Why is Node.js required in some setups?
Certain clients (for instance, Claude Desktop) rely on tools like npx to run MCP proxies (usually mcp-remote) for connecting to remote MCP servers.
How does authentication work in Cloudways MCP?
Authentication is handled via the following two HTTP headers that are securely over HTTPS with each request:
X-CW-Email
X-CW-Api-Key
Where do I configure Cloudways MCP connection details?
Configuration is client-specific. There are two popular methods:
via JSON config files (for instance, .cursor/mcp.json)
via Client UI settings (for instance, Windsurf)
Why is my MCP configuration not working?
We suggest checking for the following common causes:
Invalid JSON syntax (missing commas/brackets)
Incorrect file placement
Missing client restart
Incorrect server URL
What is the correct MCP server endpoint?
The correct Cloudways MCP server endpoint is:
Note that incorrect variants will fail silently.
How do I interact with Cloudways MCP?
Once you have properly configured the connection, enter the interface of your MCP client and enter a natural language request, such as show CPU usage for server 12345 over the last 24 hours.
Do I need to know tool names included in the Cloudways MCP?
No. Cloudways MCP resolves natural language input to the correct tool(s). However, we suggest exploring the MCP tool list because understanding available tools and operations can significantly improve the accuracy of the responses and results.
Why are some responses incorrect or unexpected?
MCP depends on prompt clarity, context completeness, and the use of properly formatted identifiers (server ID, app name). Ambiguous or incomplete prompts can produce unintended results.
What makes a good MCP prompt?
A strong prompt includes target resource (server/app), intended action, and complete context (time range, environment) for the request. Consider this example:
Show memory usage for production server 12345 over the last 7 days
Can Cloudways MCP execute multiple actions from one prompt?
Yes. Cloudways MCP can chain operations if the intent is clear. Consider this example that uses multiple MCP tools in a stacked chain for achieving the intent outcome:
Back up my app and restart the server
What happens if I don’t specify a server or application in a request?
If you omit crucial details, such as server ID or application name, Cloudways MCP may ask for clarification and missing details. However, there is always the risk that the MCP may infer the missing details incorrectly. As such, we strongly recommend double-checking for essential details in requests.
Can Cloudways MCP perform destructive actions?
Yes. Cloudways MCP can perform destructive actions such as server and application deletion. Note that these actions are irreversible.
Why do some commands not complete instantly?
Infrastructure operations require time for provisioning and execution. MCP triggers the process when it receives the request. However, the actual time for completion depends on factors outside the MCP's scope.
How do I verify if an operation succeeded?
Most MCP clients provide direct success indication when they show the output of the request. In addition, you can also verify the success of specific server, application, and add-on actions in the Cloudways Platform.
Can multiple users use Cloudways MCP on the same account?
Yes. However, you should note that shared API keys introduce risk, and there is no granular access control at MCP layer.
Why am I getting authentication errors?
In case of authentication errors in your MCP client, we suggest you check for API key validity, and header names and values (header names and values are case-sensitive). You should also review your organization's API key rotation policy to make sure you are using a valid one.
Why is my MCP client not connecting?
Common reasons behind client connectivity issues are incorrect server URL, missing Node.js (for proxy-based clients), and misconfigured headers (check for proper case formatting).
I upgraded but my agent says the new tools don't exist"
This is almost always a stale-cache issue in the MCP client, not a server-side bug. Walk through this checklist:
Did you fully quit the client? Closing the window (the red X / red dot) usually only minimises the app on macOS and on Windows with system-tray apps. Use Cmd-Q on macOS, File → Exit on Windows, or right-click the tray icon → Quit for tray apps. Then reopen.
If your client supports toggling, use that over a full restart as it's faster and tells you immediately whether the reconnect succeeded.
That’s it! We hope this article was useful.
Need Help?
If you need assistance, feel free to:
Visit the Cloudways Support Center.
Chat with us: Need a Hand > Send us a Message.
Or create a support ticket anytime.
We're here 24/7 to help you!

