Provides read-only access to Cloudways hosting resources, allowing retrieval of servers, applications, monitoring data, projects, team members, alerts, SSH keys, and available providers/regions/server sizes from the Cloudways API.
🚀 Cloudways MCP Server
An MCP (Model Context Protocol) server for seamless integration with the Cloudways API. This server enables AI assistants like Claude to access and manage your Cloudways infrastructure.
✨ Key Features
🔒 Security & Isolation
- Customer Isolation: Each customer gets encrypted, isolated data storage
- Encrypted API Keys: All sensitive data encrypted at rest using Fernet encryption
- Token Auto-Renewal: Proactive token refresh prevents authentication failures
- Rate Limiting: Token bucket algorithm with per-customer limits (90 req/min)
⚡ Performance & Reliability
- Connection Pooling: Optimized HTTP and Redis connection pools for high concurrency
- Background Token Refresh: Zero-downtime token renewal with race condition protection
- Distributed Locking: Redis-based locks prevent concurrent token refresh conflicts
- Graceful Fallbacks: Robust error handling with fallback mechanisms
📊 Monitoring & Observability
- Structured Logging: Comprehensive logging with structured data for debugging
- Token Status Monitoring: Real-time token health and expiration tracking
- Rate Limit Monitoring: Per-customer rate limit status and usage analytics
- Customer Analytics: Track customer usage patterns and last activity
🛠️ Current Capabilities (Read-Only)
- ✅ Server Management: List, monitor, and inspect server configurations
- ✅ Application Management: Access app details, credentials, and settings
- ✅ Monitoring Data: Bandwidth, disk usage, and performance metrics
- ✅ Team & Projects: View team members, projects, and organizational structure
- ✅ Infrastructure Discovery: Available providers, regions, sizes, and packages
- ✅ Alerting: Access all system alerts and notifications
🚧 Future Roadmap
- 🔄 Write Operations: Create, modify, and delete resources
- 🎛️ Server Management: Start, stop, restart, and scale servers
- 📦 Application Deployment: Deploy new applications and manage existing ones
- ⚙️ Configuration Management: Update server and application settings
- 🔐 Security Operations: Manage SSH keys, SSL certificates, and firewall rules
🏗️ Architecture
🚀 Quick Start
Prerequisites
- Python 3.8+ - For running the MCP server
- Node.js 18+ and NPM - Required for Claude Desktop to connect via
npx mcp-remote
- Redis server - For production features (token management, rate limiting, customer isolation)
- Cloudways account with API access
- Homebrew (macOS) - For easy installation of dependencies
Installation
1. Install System Dependencies (macOS)
Install Node.js and NPM:
Install and Setup Redis:
Alternative Redis Setup:
2. Clone and Setup Project
Clone the repository:
Create Python virtual environment:
Install Python dependencies:
3. Configure Environment Variables
Create a .env
file in the project root:
4. Start the MCP Server
The server will start on http://127.0.0.1:7000/mcp
and you should see:
5. Verify Setup
Test Redis Connection:
Test MCP Server:
Check Server Logs: The server logs will show successful startup and any connection attempts from Claude Desktop.
🔧 Claude Desktop Integration
Configuration File Location
- macOS:
~/Library/Application Support/Claude/claude_desktop_config.json
- Windows:
%APPDATA%/Claude/claude_desktop_config.json
Example Configuration
Getting Your API Key
- Log into Cloudways Platform
- Go to Account Settings → API
- Generate or copy your API key
🛠️ Available Tools
🖥️ Server Operations
Tool | Description | Example Usage |
---|---|---|
list_servers | Get all servers in your account | "Show me all my servers" |
get_server_details | Get detailed server information | "Show details for server ID 12345" |
get_ssh_keys | Get SSH keys for a server | "What SSH keys are on server 12345?" |
📱 Application Operations
Tool | Description | Example Usage |
---|---|---|
get_app_details | Get application details | "Show me app 67890 on server 12345" |
get_app_credentials | Get app login credentials | "What are the credentials for app 67890?" |
get_app_settings | Get application settings | "Show settings for my WordPress app" |
get_app_monitoring_summary | Get app performance metrics | "How much bandwidth is app 67890 using?" |
📊 Monitoring & Analytics
Tool | Description | Example Usage |
---|---|---|
get_server_details | Server bandwidth and disk usage | "Show server 12345 resource usage" |
get_app_monitoring_summary | Application metrics | "App performance for the last month" |
get_alerts | All system alerts | "Show me any critical alerts" |
👥 Organization & Projects
Tool | Description | Example Usage |
---|---|---|
list_projects | Get all projects | "What projects do I have?" |
list_team_members | Get team member list | "Who has access to my account?" |
🌐 Infrastructure Discovery
Tool | Description | Example Usage |
---|---|---|
get_available_providers | Cloud providers (AWS, DO, etc.) | "What cloud providers are available?" |
get_available_regions | Available regions per provider | "Show me AWS regions" |
get_available_server_sizes | Server size options | "What server sizes can I choose?" |
get_available_apps | Installable applications | "What apps can I install?" |
get_available_packages | Available packages & versions | "Show me PHP versions available" |
🔧 System & Debugging
Tool | Description | Example Usage |
---|---|---|
ping | Test connectivity | "Test my connection" |
customer_info | Your account information | "Show my account details" |
get_token_status | Token health and expiry info | "Check my authentication status" |
rate_limit_status | API usage and limits | "How many API calls have I made?" |
💬 Example Claude Conversations
Server Management
Application Management
Infrastructure Planning
🔒 Security & Privacy
Data Protection
- Encryption at Rest: All API keys encrypted using Fernet symmetric encryption
- Customer Isolation: Each customer's data is completely isolated and namespaced
- No Data Persistence: Tokens and sensitive data have automatic expiration
- Memory-Safe: Sensitive data cleared from memory after use
Authentication Flow
- Header-Based Auth: Credentials passed via headers
- Token Exchange: API key exchanged for short-lived access tokens
- Proactive Renewal: Tokens refreshed 5 minutes before expiry
- Race Protection: Distributed locks prevent concurrent refresh attempts
Rate Limiting
- Per-Customer Limits: 90 requests per minute per customer
- Token Bucket Algorithm: Smooth traffic distribution
- Graceful Degradation: Clear error messages when limits exceeded
Debug Mode
Enable verbose logging:
🔧 Troubleshooting
Common Issues and Solutions
Node.js/NPM Issues
Problem: zsh: command not found: node
Problem: npx: command not found
Redis Issues
Problem: Connection refused
when testing Redis
Problem: Redis connection timeout
MCP Server Issues
Problem: ModuleNotFoundError
when starting server
Problem: Port 7000 already in use
Problem: Server starts but Claude Desktop can't connect
Claude Desktop Connection Issues
Problem: MCP server not recognized by Claude Desktop
- Restart Claude Desktop completely
- Check the configuration file location:
- macOS:
~/Library/Application Support/Claude/claude_desktop_config.json
- macOS:
- Verify JSON syntax is valid
- Ensure the MCP server is running before starting Claude Desktop
Problem: Authentication errors
- Verify your Cloudways credentials are correct
- Check that your API key has proper permissions
- Test credentials manually via Cloudways API
Cloudways API Issues
Problem: Invalid API key
errors
Problem: Rate limiting errors
- The server implements 90 requests/minute per customer
- Wait a minute and try again
- Check server logs for rate limit status
Getting Help
Enable Debug Logging:
Check Server Status:
🆘 Support
- Issues: Open a GitHub issue for bugs or feature requests
⚠️ Current Limitation: This server currently supports read-only operations only. Write operations (create, update, delete) are planned for future releases to ensure maximum safety and reliability.
This server cannot be installed
remote-capable server
The server can be hosted and run remotely because it primarily relies on remote services or has no dependency on the local environment.
A simple MCP server that provides read-only access to Cloudways hosting resources, including servers, applications, monitoring data, and team management features.
Related MCP Servers
- AsecurityAlicenseAqualityAn MCP server that provides access to project files and their contents, allowing users to retrieve file data from specified project directories with error handling and configuration options.Last updated -14TypeScriptMIT License
- -securityAlicense-qualityThe MCP server provides access to Clever Cloud's documentation, allowing users to query and interact with it through Model Context Protocol clients like Claude Desktop.Last updated -TypeScriptMIT License
- AsecurityAlicenseAqualityAn MCP server that provides tools for reading, writing, and editing files on the local filesystem.Last updated -11,387PythonApache 2.0
- -securityFlicense-qualityA simplified MCP server that provides a streamlined way to interact with AWS CloudWatch resources (log groups, log queries, and alarms) through the MCP protocol.Last updated -2Python