Read SpinupWP servers, sites and events; purge caches, restart services, run git deploys.
Maintain this server? Claim it
Call this server's tools from your browser. Nothing to install.
Requests go through mcptry because browsers can't call most MCP servers directly. Header values are sent to the server for that request only and are never stored or logged.
Tool list from our last check. Connect live to refresh it.
WRITE: reset a site's files and folders to the permissions and ownership SpinupWP recommends (usually after a manual upload as the wrong user). Can take a while on big sites. Asynchronous: returns an event_id. POST /sites/{id}/file-permissions/correct.
SpinupWP site id.
The server marks this tool as destructive. Running it may delete or overwrite data on the server or in any account you connected with your headers.
WRITE: reset a site's files and folders to the permissions and ownership SpinupWP recommends (usually after a manual upload as the wrong user). Can take a while on big sites. Asynchronous: returns an event_id. POST /sites/{id}/file-permissions/correct.
| Argument | Type | Description |
|---|---|---|
| site_id* | integer | SpinupWP site id. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"site_id"
],
"properties": {
"site_id": {
"type": "integer",
"maximum": 9007199254740991,
"description": "SpinupWP site id.",
"exclusiveMinimum": 0
}
}
}WRITE: pull the latest commit of the site's connected git branch and run its deploy script on the server. This changes the live site's files (and may run build/migration commands); it fails if git is not connected. Asynchronous: returns an event_id. POST /sites/{id}/git/deploy.
| Argument | Type | Description |
|---|---|---|
| site_id* | integer | SpinupWP site id (a site with git connected). |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"site_id"
],
"properties": {
"site_id": {
"type": "integer",
"maximum": 9007199254740991,
"description": "SpinupWP site id (a site with git connected).",
"exclusiveMinimum": 0
}
}
}One event by id, with status and command output. Use it to see whether a purge, restart or deploy (which reply with an event_id) has finished or failed. GET /events/{id}.
| Argument | Type | Description |
|---|---|---|
| event_id* | integer | SpinupWP event id (the event_id a write tool returned). |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"event_id"
],
"properties": {
"event_id": {
"type": "integer",
"maximum": 9007199254740991,
"description": "SpinupWP event id (the event_id a write tool returned).",
"exclusiveMinimum": 0
}
}
}One server by id: provider, size, disk usage, database server, connection status, reboot/upgrade-required flags and install notes. GET /servers/{id}.
| Argument | Type | Description |
|---|---|---|
| server_id* | integer | SpinupWP server id (from spinupwp_list_servers). |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"server_id"
],
"properties": {
"server_id": {
"type": "integer",
"maximum": 9007199254740991,
"description": "SpinupWP server id (from spinupwp_list_servers).",
"exclusiveMinimum": 0
}
}
}One site by id with its full settings: domains, PHP version, page cache, HTTPS, nginx options, database reference, backup schedule and storage, WordPress update counts, git repo/branch/deploy script, basic-auth username, cron and SpinupWP subdomain. The git deploy-trigger URL is hidden. GET /sites/{id}.
| Argument | Type | Description |
|---|---|---|
| site_id* | integer | SpinupWP site id (from spinupwp_list_sites). |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"site_id"
],
"properties": {
"site_id": {
"type": "integer",
"maximum": 9007199254740991,
"description": "SpinupWP site id (from spinupwp_list_sites).",
"exclusiveMinimum": 0
}
}
}List recent events (the activity log: provisioning, restarts, deploys, cache purges) with who started them, status (queued, creating, updating, deleting, deployed, failed) and timestamps. Long command output is shortened; read one event for its full output. GET /events.
| Argument | Type | Description |
|---|---|---|
| page | integer | Page number, from 1 (default 1). Pass the previous reply's next_page. |
| limit | integer | Results per page, 1-100 (default 25). |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"page": {
"type": "integer",
"maximum": 100000,
"description": "Page number, from 1 (default 1). Pass the previous reply's next_page.",
"exclusiveMinimum": 0
},
"limit": {
"type": "integer",
"maximum": 100,
"description": "Results per page, 1-100 (default 25).",
"exclusiveMinimum": 0
}
}
}List the servers in your SpinupWP team: name, provider, region, size, IP, Ubuntu version, disk space, connection status and whether a reboot or upgrade is required. GET /servers.
| Argument | Type | Description |
|---|---|---|
| page | integer | Page number, from 1 (default 1). Pass the previous reply's next_page. |
| limit | integer | Results per page, 1-100 (default 25). |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"page": {
"type": "integer",
"maximum": 100000,
"description": "Page number, from 1 (default 1). Pass the previous reply's next_page.",
"exclusiveMinimum": 0
},
"limit": {
"type": "integer",
"maximum": 100,
"description": "Results per page, 1-100 (default 25).",
"exclusiveMinimum": 0
}
}
}The additional domains of a site, with their redirect settings (enabled, type, destination). GET /sites/{id}/domains.
| Argument | Type | Description |
|---|---|---|
| page | integer | Page number, from 1 (default 1). Pass the previous reply's next_page. |
| limit | integer | Results per page, 1-100 (default 25). |
| site_id* | integer | SpinupWP site id. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"site_id"
],
"properties": {
"page": {
"type": "integer",
"maximum": 100000,
"description": "Page number, from 1 (default 1). Pass the previous reply's next_page.",
"exclusiveMinimum": 0
},
"limit": {
"type": "integer",
"maximum": 100,
"description": "Results per page, 1-100 (default 25).",
"exclusiveMinimum": 0
},
"site_id": {
"type": "integer",
"maximum": 9007199254740991,
"description": "SpinupWP site id.",
"exclusiveMinimum": 0
}
}
}The path redirects configured on a site (from, to, type permanent/redirect). GET /sites/{id}/path-redirects.
| Argument | Type | Description |
|---|---|---|
| page | integer | Page number, from 1 (default 1). Pass the previous reply's next_page. |
| limit | integer | Results per page, 1-100 (default 25). |
| site_id* | integer | SpinupWP site id. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"site_id"
],
"properties": {
"page": {
"type": "integer",
"maximum": 100000,
"description": "Page number, from 1 (default 1). Pass the previous reply's next_page.",
"exclusiveMinimum": 0
},
"limit": {
"type": "integer",
"maximum": 100,
"description": "Results per page, 1-100 (default 25).",
"exclusiveMinimum": 0
},
"site_id": {
"type": "integer",
"maximum": 9007199254740991,
"description": "SpinupWP site id.",
"exclusiveMinimum": 0
}
}
}List sites across your servers (or one server): domain, PHP version, WordPress flag, HTTPS, page cache, backups, pending WordPress core/theme/plugin updates, git deploy settings and status. Deploy-trigger URLs are hidden. GET /sites.
| Argument | Type | Description |
|---|---|---|
| page | integer | Page number, from 1 (default 1). Pass the previous reply's next_page. |
| limit | integer | Results per page, 1-100 (default 25). |
| server_id | integer | Only sites on this server id. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"page": {
"type": "integer",
"maximum": 100000,
"description": "Page number, from 1 (default 1). Pass the previous reply's next_page.",
"exclusiveMinimum": 0
},
"limit": {
"type": "integer",
"maximum": 100,
"description": "Results per page, 1-100 (default 25).",
"exclusiveMinimum": 0
},
"server_id": {
"type": "integer",
"maximum": 9007199254740991,
"description": "Only sites on this server id.",
"exclusiveMinimum": 0
}
}
}The backup storage providers connected to the team (id, service, name). GET /storage-providers.
| Argument | Type | Description |
|---|---|---|
| page | integer | Page number, from 1 (default 1). Pass the previous reply's next_page. |
| limit | integer | Results per page, 1-100 (default 25). |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"page": {
"type": "integer",
"maximum": 100000,
"description": "Page number, from 1 (default 1). Pass the previous reply's next_page.",
"exclusiveMinimum": 0
},
"limit": {
"type": "integer",
"maximum": 100,
"description": "Results per page, 1-100 (default 25).",
"exclusiveMinimum": 0
}
}
}The team's saved SSH public keys (id, name, fingerprint, public key). Public keys only; read-only. GET /ssh-keys.
| Argument | Type | Description |
|---|---|---|
| page | integer | Page number, from 1 (default 1). Pass the previous reply's next_page. |
| limit | integer | Results per page, 1-100 (default 25). |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"page": {
"type": "integer",
"maximum": 100000,
"description": "Page number, from 1 (default 1). Pass the previous reply's next_page.",
"exclusiveMinimum": 0
},
"limit": {
"type": "integer",
"maximum": 100,
"description": "Results per page, 1-100 (default 25).",
"exclusiveMinimum": 0
}
}
}WRITE: flush the Redis object cache of one site (the site must have object caching). The cache refills on demand. Asynchronous: returns an event_id. POST /sites/{id}/object-cache/purge.
| Argument | Type | Description |
|---|---|---|
| site_id* | integer | SpinupWP site id. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"site_id"
],
"properties": {
"site_id": {
"type": "integer",
"maximum": 9007199254740991,
"description": "SpinupWP site id.",
"exclusiveMinimum": 0
}
}
}WRITE: purge the nginx page cache of one site. Pages are rebuilt on the next visit, so the site may be slower for a moment; nothing is lost. Asynchronous: returns an event_id. POST /sites/{id}/page-cache/purge.
| Argument | Type | Description |
|---|---|---|
| site_id* | integer | SpinupWP site id. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"site_id"
],
"properties": {
"site_id": {
"type": "integer",
"maximum": 9007199254740991,
"description": "SpinupWP site id.",
"exclusiveMinimum": 0
}
}
}WRITE: reboot a whole server. Every site on it is offline for the duration (typically a minute or two). Use it when spinupwp_get_server shows reboot_required. Asynchronous: returns an event_id. POST /servers/{id}/reboot.
| Argument | Type | Description |
|---|---|---|
| server_id* | integer | SpinupWP server id. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"server_id"
],
"properties": {
"server_id": {
"type": "integer",
"maximum": 9007199254740991,
"description": "SpinupWP server id.",
"exclusiveMinimum": 0
}
}
}WRITE: restart MySQL (database) on one server. All sites on the server lose database access for a short time; running queries are interrupted. Asynchronous: returns an event_id. POST /servers/{id}/services/mysql/restart.
| Argument | Type | Description |
|---|---|---|
| server_id* | integer | SpinupWP server id. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"server_id"
],
"properties": {
"server_id": {
"type": "integer",
"maximum": 9007199254740991,
"description": "SpinupWP server id.",
"exclusiveMinimum": 0
}
}
}WRITE: restart nginx (web server) on one server. Visitors may see a brief interruption. Asynchronous: returns an event_id. POST /servers/{id}/services/nginx/restart.
| Argument | Type | Description |
|---|---|---|
| server_id* | integer | SpinupWP server id. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"server_id"
],
"properties": {
"server_id": {
"type": "integer",
"maximum": 9007199254740991,
"description": "SpinupWP server id.",
"exclusiveMinimum": 0
}
}
}WRITE: restart PHP-FPM (every PHP version) on one server. Running PHP requests can fail or be cut off while it restarts. Asynchronous: returns an event_id. POST /servers/{id}/services/php/restart.
| Argument | Type | Description |
|---|---|---|
| server_id* | integer | SpinupWP server id. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"server_id"
],
"properties": {
"server_id": {
"type": "integer",
"maximum": 9007199254740991,
"description": "SpinupWP server id.",
"exclusiveMinimum": 0
}
}
}WRITE: restart Redis (object cache) on one server. Cached objects are lost and rebuilt on demand. Asynchronous: returns an event_id. POST /servers/{id}/services/redis/restart.
| Argument | Type | Description |
|---|---|---|
| server_id* | integer | SpinupWP server id. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"server_id"
],
"properties": {
"server_id": {
"type": "integer",
"maximum": 9007199254740991,
"description": "SpinupWP server id.",
"exclusiveMinimum": 0
}
}
}