gridpane-mcp
# gridpane-mcp
A [Model Context Protocol (MCP)](https://modelcontextprotocol.io/) server for the [GridPane](https://gridpane.com/) hosting platform API. Manage your WordPress servers and sites through Claude, Cursor, or any MCP-compatible client.
## Features
### Server Management
- **list_servers** — List all servers with IPs, status, and site counts
- **get_server** — Get detailed server info by ID
- **search_server** — Find servers by name (partial match)
- **restart_nginx** — Restart Nginx on a server
- **restart_php** — Restart PHP-FPM for a specific PHP version
- **restart_mysql** — Restart MySQL/MariaDB/Percona
### Site Management
- **list_sites** — List all WordPress sites across all servers
- **get_site** — Get detailed site info by ID
- **search_site** — Find sites by domain name (partial match)
- **toggle_ssl** — Toggle SSL on/off
- **toggle_site_cache** — Toggle Nginx caching
- **purge_site_cache** — Purge all server-level caches
- **toggle_debug** — Toggle WordPress debug mode
- **change_php_version** — Change PHP version (7.4, 8.0, 8.1, 8.2, 8.3)
- **get_sso_link** — Get a Single Sign-On link to wp-admin
- **trigger_backup** — Trigger a manual backup
## Prerequisites
- A [GridPane](https://gridpane.com/) account (Developer plan or above)
- A GridPane API token (Settings > GridPane API > Create New Token)
## Installation
```bash
pip install gridpane-mcp
```
Or with [uv](https://docs.astral.sh/uv/):
```bash
uv pip install gridpane-mcp
```
## Configuration
Set your GridPane API token as an environment variable:
```bash
export GRIDPANE_API_TOKEN="your_token_here"
```
### Claude Code
```bash
claude mcp add gridpane -e GRIDPANE_API_TOKEN=your_token_here -- gridpane-mcp
```
### Claude Desktop
Add to your `claude_desktop_config.json`:
```json
{
"mcpServers": {
"gridpane": {
"command": "gridpane-mcp",
"env": {
"GRIDPANE_API_TOKEN": "your_token_here"
}
}
}
}
```
### Cursor
Add to your Cursor MCP settings:
```json
{
"mcpServers": {
"gridpane": {
"command": "gridpane-mcp",
"env": {
"GRIDPANE_API_TOKEN": "your_token_here"
}
}
}
}
```
## Usage Examples
Once connected, you can ask your AI assistant things like:
- "List all my GridPane servers"
- "Find sites with 'supple' in the domain"
- "Purge cache for site ID 661035"
- "Restart Nginx on the accesshealth server"
- "What PHP version is accesshealth.com.au running?"
- "Toggle debug mode on site 661035"
## Environment Variables
| Variable | Default | Description |
|----------|---------|-------------|
| `GRIDPANE_API_TOKEN` | (required) | Your GridPane API personal access token |
| `GRIDPANE_API_URL` | `https://my.gridpane.com/oauth/api/v1` | GridPane API base URL |
## License
MIT
TDQS
Scored across 16 tools
Most tools have clearly distinct purposes, but there is slight overlap between list_servers/search_server and list_sites/search_site. However, descriptions clarify the difference (full list vs partial match), so overall ambiguity is low.
All tools follow a consistent verb_noun pattern with lowercase and underscores, e.g., change_php_version, list_servers, toggle_ssl. No mixed conventions or irregularities.
16 tools cover a wide range of server and site management operations without being excessive. Each tool serves a distinct purpose and the count is well-scoped for the domain.
The tool set covers essential operations like server/site info, cache, SSL, PHP, backups, and service restarts. Missing are lifecycle operations (create/delete) and backup status, but the set is sufficient for typical admin tasks.