RunCloud MCP by usefulapi

Read RunCloud servers, web apps, databases and logs; deploy, restart services, renew SSL.

Should I use this

Quality & Safety

A
Description quality
99%
Schema completeness
97%
Naming quality
99%
Poisoning risk
100%
Permission match
100%
Protocol compliance
100%

Findings (2)

  • LOWTool 'runcloud_list_atomic_deployments' name length outside 3-30 rangein runcloud_list_atomic_deployments
  • LOWTool 'runcloud_install_letsencrypt_ssl' name length outside 3-30 rangein runcloud_install_letsencrypt_ssl

Based on automated analysis of tool definitions and protocol compliance.

Context Cost

~7,481Tokens (tool definitions)
~1.4 KBTypical response size
Significant attention impact (5.84% of 128k context)

This is the approximate number of tokens consumed each time the server's tools are loaded into a model's context. Higher counts reduce the attention available for other tasks.

Install

One-Click Install

Add this to your `claude_desktop_config.json` file:

{
  "mcpServers": {
    "runcloud": {
      "url": "https://runcloud.usefulapi.io/mcp"
    }
  }
}

Remote endpoints

https://runcloud.usefulapi.io/mcpstreamable-http

What it can do

Tool inventory

Tools (36)

🟢 Read-only🟡 Write🔴 Delete⚪ Unknown
🟢runcloud_ping

Check that the API key works: RunCloud answers with a message ('pong'). GET /ping.

Input Schema

{
  "type": "object",
  "properties": {},
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢runcloud_list_servers(page, per_page)

List the servers connected to the workspace: id, name, provider, IP address, OS, stack, online/connected state, agent and PHP CLI version, auto-update settings and tags. GET /servers.

Input Schema

{
  "type": "object",
  "properties": {
    "page": {
      "description": "Page number, from 1 (default 1). Pass the previous reply's next_page.",
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 100000
    },
    "per_page": {
      "description": "Results per page, 1-40 (default 20).",
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 40
    }
  },
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢runcloud_get_server(server_id)

One server by id: provider, IP, OS and version, stack, online state, agent version, update settings, tags. GET /servers/{id}.

Input Schema

{
  "type": "object",
  "properties": {
    "server_id": {
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 9007199254740991,
      "description": "RunCloud server id (see runcloud_list_servers)."
    }
  },
  "required": [
    "server_id"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢runcloud_get_server_stats(server_id)

How many web applications, databases, cron jobs and supervisor jobs a server has, and its country. GET /servers/{id}/stats.

Input Schema

{
  "type": "object",
  "properties": {
    "server_id": {
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 9007199254740991,
      "description": "RunCloud server id (see runcloud_list_servers)."
    }
  },
  "required": [
    "server_id"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢runcloud_get_server_hardware(server_id)

Kernel version, CPU model and cores, memory and disk totals/free, load average and uptime of a server. GET /servers/{id}/hardwareinfo.

Input Schema

{
  "type": "object",
  "properties": {
    "server_id": {
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 9007199254740991,
      "description": "RunCloud server id (see runcloud_list_servers)."
    }
  },
  "required": [
    "server_id"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢runcloud_get_server_health(server_id)

The latest health sample of a server: total/available/used memory and disk space (MB) and load average. GET /servers/{id}/health/latest.

Input Schema

{
  "type": "object",
  "properties": {
    "server_id": {
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 9007199254740991,
      "description": "RunCloud server id (see runcloud_list_servers)."
    }
  },
  "required": [
    "server_id"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢runcloud_list_server_logs(server_id, page, per_page)

The server's activity log (what was changed in RunCloud and when), newest first. GET /servers/{id}/logs.

Input Schema

{
  "type": "object",
  "properties": {
    "server_id": {
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 9007199254740991,
      "description": "RunCloud server id (see runcloud_list_servers)."
    },
    "page": {
      "description": "Page number, from 1 (default 1). Pass the previous reply's next_page.",
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 100000
    },
    "per_page": {
      "description": "Results per page, 1-40 (default 20).",
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 40
    }
  },
  "required": [
    "server_id"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢runcloud_list_services(server_id)

The services on a server (nginx, php-fpm, mariadb, redis, supervisor...) with real name, running state, CPU, memory and version. The realName is what runcloud_control_service needs. GET /servers/{id}/services.

Input Schema

{
  "type": "object",
  "properties": {
    "server_id": {
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 9007199254740991,
      "description": "RunCloud server id (see runcloud_list_servers)."
    }
  },
  "required": [
    "server_id"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢runcloud_list_system_users(server_id, page, per_page)

The system (Linux) users on a server: id, username, whether deletable. Deployment keys and passwords are never returned. GET /servers/{id}/users.

Input Schema

{
  "type": "object",
  "properties": {
    "server_id": {
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 9007199254740991,
      "description": "RunCloud server id (see runcloud_list_servers)."
    },
    "page": {
      "description": "Page number, from 1 (default 1). Pass the previous reply's next_page.",
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 100000
    },
    "per_page": {
      "description": "Results per page, 1-40 (default 20).",
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 40
    }
  },
  "required": [
    "server_id"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢runcloud_list_webapps(server_id, search, page, per_page)

List the web applications on a server: id, name, root/public path, PHP version, stack, type (wordpress, custom...), default flag, alias. Deployment webhook keys are not returned. GET /servers/{id}/webapps.

Input Schema

{
  "type": "object",
  "properties": {
    "server_id": {
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 9007199254740991,
      "description": "RunCloud server id (see runcloud_list_servers)."
    },
    "search": {
      "description": "Filter by web application name.",
      "type": "string",
      "minLength": 1,
      "maxLength": 200
    },
    "page": {
      "description": "Page number, from 1 (default 1). Pass the previous reply's next_page.",
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 100000
    },
    "per_page": {
      "description": "Results per page, 1-40 (default 20).",
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 40
    }
  },
  "required": [
    "server_id"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢runcloud_get_webapp(server_id, webapp_id)

One web application by id (path, PHP version, stack, type, default flag). GET /servers/{id}/webapps/{webapp}.

Input Schema

{
  "type": "object",
  "properties": {
    "server_id": {
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 9007199254740991,
      "description": "RunCloud server id (see runcloud_list_servers)."
    },
    "webapp_id": {
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 9007199254740991,
      "description": "Web application id (see runcloud_list_webapps)."
    }
  },
  "required": [
    "server_id",
    "webapp_id"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢runcloud_get_webapp_settings(server_id, webapp_id)

PHP and FPM/Nginx settings of a web application (disabled functions, timezone, memory and upload limits, process manager...). GET /servers/{id}/webapps/{webapp}/settings.

Input Schema

{
  "type": "object",
  "properties": {
    "server_id": {
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 9007199254740991,
      "description": "RunCloud server id (see runcloud_list_servers)."
    },
    "webapp_id": {
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 9007199254740991,
      "description": "Web application id (see runcloud_list_webapps)."
    }
  },
  "required": [
    "server_id",
    "webapp_id"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢runcloud_list_webapp_logs(server_id, webapp_id, page, per_page)

The activity log of a web application (settings changes, PHP version changes, deployments), newest first. GET /servers/{id}/webapps/{webapp}/log.

Input Schema

{
  "type": "object",
  "properties": {
    "server_id": {
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 9007199254740991,
      "description": "RunCloud server id (see runcloud_list_servers)."
    },
    "webapp_id": {
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 9007199254740991,
      "description": "Web application id (see runcloud_list_webapps)."
    },
    "page": {
      "description": "Page number, from 1 (default 1). Pass the previous reply's next_page.",
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 100000
    },
    "per_page": {
      "description": "Results per page, 1-40 (default 20).",
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 40
    }
  },
  "required": [
    "server_id",
    "webapp_id"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢runcloud_list_domains(server_id, webapp_id, page, per_page)

The domain names of a web application: id, name, type (primary/alias), www, redirection, wildcard, DNS integration, status. GET /servers/{id}/webapps/{webapp}/domains.

Input Schema

{
  "type": "object",
  "properties": {
    "server_id": {
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 9007199254740991,
      "description": "RunCloud server id (see runcloud_list_servers)."
    },
    "webapp_id": {
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 9007199254740991,
      "description": "Web application id (see runcloud_list_webapps)."
    },
    "page": {
      "description": "Page number, from 1 (default 1). Pass the previous reply's next_page.",
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 100000
    },
    "per_page": {
      "description": "Results per page, 1-40 (default 20).",
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 40
    }
  },
  "required": [
    "server_id",
    "webapp_id"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢runcloud_get_domain_dns(server_id, webapp_id, domain_id)

The DNS records (A, CNAME...) a domain name needs to point at the server. GET /servers/{id}/webapps/{webapp}/domains/{domain}/dns.

Input Schema

{
  "type": "object",
  "properties": {
    "server_id": {
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 9007199254740991,
      "description": "RunCloud server id (see runcloud_list_servers)."
    },
    "webapp_id": {
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 9007199254740991,
      "description": "Web application id (see runcloud_list_webapps)."
    },
    "domain_id": {
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 9007199254740991,
      "description": "Domain name id (see runcloud_list_domains)."
    }
  },
  "required": [
    "server_id",
    "webapp_id",
    "domain_id"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢runcloud_get_webapp_ssl(server_id, webapp_id)

The web application's SSL certificate (basic / web-app-level SSL): provider, validity, HTTPS settings. Private keys are never returned. GET /servers/{id}/webapps/{webapp}/ssl.

Input Schema

{
  "type": "object",
  "properties": {
    "server_id": {
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 9007199254740991,
      "description": "RunCloud server id (see runcloud_list_servers)."
    },
    "webapp_id": {
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 9007199254740991,
      "description": "Web application id (see runcloud_list_webapps)."
    }
  },
  "required": [
    "server_id",
    "webapp_id"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢runcloud_get_ssl_method(server_id, webapp_id)

Whether the web application uses basic (one certificate for the app) or advanced (one per domain) SSL, and its AutoSSL status. Advanced SSL is a Business/Enterprise feature. GET /servers/{id}/webapps/{webapp}/ssl/advanced.

Input Schema

{
  "type": "object",
  "properties": {
    "server_id": {
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 9007199254740991,
      "description": "RunCloud server id (see runcloud_list_servers)."
    },
    "webapp_id": {
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 9007199254740991,
      "description": "Web application id (see runcloud_list_webapps)."
    }
  },
  "required": [
    "server_id",
    "webapp_id"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢runcloud_get_git_deployment(server_id, webapp_id)

The Git deployment configured on a web application: provider, branch, repository URL, auto-deploy flag, deployment script and whether it is an atomic deployment. The deployment webhook keys are not returned. The id of the result is the git_id for runcloud_deploy_git. GET /servers/{id}/webapps/{webapp}/git.

Input Schema

{
  "type": "object",
  "properties": {
    "server_id": {
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 9007199254740991,
      "description": "RunCloud server id (see runcloud_list_servers)."
    },
    "webapp_id": {
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 9007199254740991,
      "description": "Web application id (see runcloud_list_webapps)."
    }
  },
  "required": [
    "server_id",
    "webapp_id"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢runcloud_list_databases(server_id, page, per_page)

The databases on a server: id, name, collation. No credentials. GET /servers/{id}/databases.

Input Schema

{
  "type": "object",
  "properties": {
    "server_id": {
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 9007199254740991,
      "description": "RunCloud server id (see runcloud_list_servers)."
    },
    "page": {
      "description": "Page number, from 1 (default 1). Pass the previous reply's next_page.",
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 100000
    },
    "per_page": {
      "description": "Results per page, 1-40 (default 20).",
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 40
    }
  },
  "required": [
    "server_id"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢runcloud_list_database_users(server_id, page, per_page)

The database users on a server (id, username). Passwords are never returned. GET /servers/{id}/databaseusers.

Input Schema

{
  "type": "object",
  "properties": {
    "server_id": {
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 9007199254740991,
      "description": "RunCloud server id (see runcloud_list_servers)."
    },
    "page": {
      "description": "Page number, from 1 (default 1). Pass the previous reply's next_page.",
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 100000
    },
    "per_page": {
      "description": "Results per page, 1-40 (default 20).",
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 40
    }
  },
  "required": [
    "server_id"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢runcloud_list_cronjobs(server_id, page, per_page)

The cron jobs of a server: id, label, user, schedule, command, enabled flag. The id is what runcloud_run_cronjob needs. GET /servers/{id}/cronjobs.

Input Schema

{
  "type": "object",
  "properties": {
    "server_id": {
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 9007199254740991,
      "description": "RunCloud server id (see runcloud_list_servers)."
    },
    "page": {
      "description": "Page number, from 1 (default 1). Pass the previous reply's next_page.",
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 100000
    },
    "per_page": {
      "description": "Results per page, 1-40 (default 20).",
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 40
    }
  },
  "required": [
    "server_id"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢runcloud_list_supervisors(server_id, page, per_page)

The supervisor (background worker) jobs of a server: id, label, user, process count, auto start/restart, directory, command. GET /servers/{id}/supervisors.

Input Schema

{
  "type": "object",
  "properties": {
    "server_id": {
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 9007199254740991,
      "description": "RunCloud server id (see runcloud_list_servers)."
    },
    "page": {
      "description": "Page number, from 1 (default 1). Pass the previous reply's next_page.",
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 100000
    },
    "per_page": {
      "description": "Results per page, 1-40 (default 20).",
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 40
    }
  },
  "required": [
    "server_id"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢runcloud_get_supervisor_status(server_id)

The live status (RUNNING, FATAL, BACKOFF...), pid and uptime of every supervisor process, by job label. GET /servers/{id}/supervisors/status.

Input Schema

{
  "type": "object",
  "properties": {
    "server_id": {
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 9007199254740991,
      "description": "RunCloud server id (see runcloud_list_servers)."
    }
  },
  "required": [
    "server_id"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢runcloud_list_firewall_rules(server_id, page, per_page)

The firewall rules of a server: type (global/rich), port, protocol, IP address, action. GET /servers/{id}/security/firewalls.

Input Schema

{
  "type": "object",
  "properties": {
    "server_id": {
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 9007199254740991,
      "description": "RunCloud server id (see runcloud_list_servers)."
    },
    "page": {
      "description": "Page number, from 1 (default 1). Pass the previous reply's next_page.",
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 100000
    },
    "per_page": {
      "description": "Results per page, 1-40 (default 20).",
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 40
    }
  },
  "required": [
    "server_id"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢runcloud_list_blocked_ips(server_id)

The IP addresses Fail2Ban currently blocks on a server. GET /servers/{id}/security/fail2ban/blockedip.

Input Schema

{
  "type": "object",
  "properties": {
    "server_id": {
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 9007199254740991,
      "description": "RunCloud server id (see runcloud_list_servers)."
    }
  },
  "required": [
    "server_id"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢runcloud_list_backups(server_id, storage, status, search, page, ...)

The backup instances of the workspace: label, what they cover (web app / database), storage, type, frequency, size, status. Filter by server, storage, status or name. GET /backups.

Input Schema

{
  "type": "object",
  "properties": {
    "server_id": {
      "description": "Only backups of this server id.",
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 9007199254740991
    },
    "storage": {
      "description": "Storage type, e.g. runcloud or local.",
      "type": "string",
      "minLength": 1,
      "maxLength": 60
    },
    "status": {
      "description": "Backup status, e.g. active.",
      "type": "string",
      "minLength": 1,
      "maxLength": 60
    },
    "search": {
      "description": "Filter by backup name.",
      "type": "string",
      "minLength": 1,
      "maxLength": 200
    },
    "page": {
      "description": "Page number, from 1 (default 1). Pass the previous reply's next_page.",
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 100000
    },
    "per_page": {
      "description": "Results per page, 1-40 (default 20).",
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 40
    }
  },
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢runcloud_list_backup_snapshots(backup_id, page, per_page)

The snapshots of one backup instance: run date, status, type and size. GET /backups/{id}/snapshots.

Input Schema

{
  "type": "object",
  "properties": {
    "backup_id": {
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 9007199254740991,
      "description": "Backup instance id (see runcloud_list_backups)."
    },
    "page": {
      "description": "Page number, from 1 (default 1). Pass the previous reply's next_page.",
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 100000
    },
    "per_page": {
      "description": "Results per page, 1-40 (default 20).",
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 40
    }
  },
  "required": [
    "backup_id"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢runcloud_list_atomic_projects(page, per_page)

The atomic Git deployment projects of the workspace: name, provider, repository, branch, auto-deploy, success/failure counts and the latest deployment. Webhook keys are not returned. GET /atomic.

Input Schema

{
  "type": "object",
  "properties": {
    "page": {
      "description": "Page number, from 1 (default 1). Pass the previous reply's next_page.",
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 100000
    },
    "per_page": {
      "description": "Results per page, 1-40 (default 20).",
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 40
    }
  },
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢runcloud_list_atomic_deployments(project_id, page, per_page)

The deployments of an atomic project: commit hash, branch, message, committer, release name, status (DEPLOYING, COMPLETED, FAILED), start and end time. GET /atomic/{project}/deployments.

Input Schema

{
  "type": "object",
  "properties": {
    "project_id": {
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 9007199254740991,
      "description": "Atomic project id (see runcloud_list_atomic_projects)."
    },
    "page": {
      "description": "Page number, from 1 (default 1). Pass the previous reply's next_page.",
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 100000
    },
    "per_page": {
      "description": "Results per page, 1-40 (default 20).",
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 40
    }
  },
  "required": [
    "project_id"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🔴runcloud_control_service(server_id, action, real_name)

WRITE: run systemctl start, restart or reload on one service of a server (for example nginx-rc or php81rc-fpm). A restart briefly interrupts that service and the sites behind it. 'stop' is deliberately not offered. Get the realName from runcloud_list_services. PATCH /servers/{id}/services.

Input Schema

{
  "type": "object",
  "properties": {
    "server_id": {
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 9007199254740991,
      "description": "RunCloud server id (see runcloud_list_servers)."
    },
    "action": {
      "type": "string",
      "enum": [
        "start",
        "restart",
        "reload"
      ],
      "description": "systemctl action."
    },
    "real_name": {
      "type": "string",
      "pattern": "^[A-Za-z0-9][A-Za-z0-9._@+-]{0,63}$",
      "description": "The service's realName from runcloud_list_services, e.g. nginx-rc or redis-server."
    }
  },
  "required": [
    "server_id",
    "action",
    "real_name"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🔴runcloud_deploy_git(server_id, webapp_id, git_id)

WRITE: force a Git deployment of a web application now: RunCloud pulls the configured branch and runs the deployment script, which changes the live site's files. Get git_id from runcloud_get_git_deployment (its id). PUT /servers/{id}/webapps/{webapp}/git/{git}/script.

Input Schema

{
  "type": "object",
  "properties": {
    "server_id": {
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 9007199254740991,
      "description": "RunCloud server id (see runcloud_list_servers)."
    },
    "webapp_id": {
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 9007199254740991,
      "description": "Web application id (see runcloud_list_webapps)."
    },
    "git_id": {
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 9007199254740991,
      "description": "Git deployment id (runcloud_get_git_deployment -> id)."
    }
  },
  "required": [
    "server_id",
    "webapp_id",
    "git_id"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🔴runcloud_force_deploy_atomic(project_id)

WRITE: start an atomic deployment of a project now (builds a new release and switches the live symlink when it succeeds). PUT /atomic/{project}/forcedeploy.

Input Schema

{
  "type": "object",
  "properties": {
    "project_id": {
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 9007199254740991,
      "description": "Atomic project id (runcloud_list_atomic_projects)."
    }
  },
  "required": [
    "project_id"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🔴runcloud_run_cronjob(server_id, cronjob_id)

WRITE: force-run one cron job of a server once, right now, outside its schedule. The job's command runs on the server with its configured user. Get the id from runcloud_list_cronjobs. POST /servers/{id}/cronjobs/{job}/run.

Input Schema

{
  "type": "object",
  "properties": {
    "server_id": {
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 9007199254740991,
      "description": "RunCloud server id (see runcloud_list_servers)."
    },
    "cronjob_id": {
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 9007199254740991,
      "description": "Cron job id (runcloud_list_cronjobs)."
    }
  },
  "required": [
    "server_id",
    "cronjob_id"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🔴runcloud_reload_supervisor(server_id, supervisor_id)

WRITE: reload one supervisor job so its worker processes restart (running processes are interrupted). Get the id from runcloud_list_supervisors. POST /servers/{id}/supervisors/{job}/reload.

Input Schema

{
  "type": "object",
  "properties": {
    "server_id": {
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 9007199254740991,
      "description": "RunCloud server id (see runcloud_list_servers)."
    },
    "supervisor_id": {
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 9007199254740991,
      "description": "Supervisor job id (runcloud_list_supervisors)."
    }
  },
  "required": [
    "server_id",
    "supervisor_id"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🔴runcloud_renew_ssl(server_id, webapp_id, ssl_id, domain_id)

WRITE: redeploy (renew) the Let's Encrypt certificate of a web application, which re-issues it and reloads the web server. Let's Encrypt certificates only. For basic SSL pass the ssl_id from runcloud_get_webapp_ssl; for advanced (per-domain) SSL, which requires advanced SSL mode (check runcloud_get_ssl_method), also pass domain_id. PUT /servers/{id}/webapps/{webapp}/ssl/{ssl} or /domains/{domain}/ssl/{ssl}.

Input Schema

{
  "type": "object",
  "properties": {
    "server_id": {
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 9007199254740991,
      "description": "RunCloud server id (see runcloud_list_servers)."
    },
    "webapp_id": {
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 9007199254740991,
      "description": "Web application id (see runcloud_list_webapps)."
    },
    "ssl_id": {
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 9007199254740991,
      "description": "SSL certificate id (runcloud_get_webapp_ssl -> id)."
    },
    "domain_id": {
      "description": "Only for advanced (per-domain) SSL mode (see runcloud_get_ssl_method): the domain's id.",
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 9007199254740991
    }
  },
  "required": [
    "server_id",
    "webapp_id",
    "ssl_id"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🔴runcloud_install_letsencrypt_ssl(server_id, webapp_id, domain_id, authorization_method, external_api, ...)

WRITE: issue and install a free Let's Encrypt certificate for a web application (basic SSL) or for one domain of it (advanced SSL, pass domain_id; this requires advanced SSL mode, see runcloud_get_ssl_method). The web server is reloaded; the domain's DNS must already point at the server. Custom certificates are not supported here. POST /servers/{id}/webapps/{webapp}/ssl or /domains/{domain}/ssl.

Input Schema

{
  "type": "object",
  "properties": {
    "server_id": {
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 9007199254740991,
      "description": "RunCloud server id (see runcloud_list_servers)."
    },
    "webapp_id": {
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 9007199254740991,
      "description": "Web application id (see runcloud_list_webapps)."
    },
    "domain_id": {
      "description": "Only for advanced (per-domain) SSL mode (see runcloud_get_ssl_method): the domain's id.",
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 9007199254740991
    },
    "authorization_method": {
      "type": "string",
      "enum": [
        "http-01",
        "dns-01"
      ],
      "description": "Let's Encrypt challenge: http-01, or dns-01 (needs external_api, a Cloudflare DNS integration)."
    },
    "external_api": {
      "description": "Id of the Cloudflare DNS integration; required for dns-01.",
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 9007199254740991
    },
    "environment": {
      "description": "live (default, trusted certificate) or staging (test certificate).",
      "type": "string",
      "enum": [
        "live",
        "staging"
      ]
    },
    "enable_http": {
      "type": "boolean",
      "description": "Keep plain HTTP enabled alongside HTTPS."
    },
    "enable_hsts": {
      "type": "boolean",
      "description": "Send the HSTS header (browsers will insist on HTTPS)."
    }
  },
  "required": [
    "server_id",
    "webapp_id",
    "authorization_method",
    "enable_http",
    "enable_hsts"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}

Community

Rate this Server

Evidence

Recent observations

verifiedversion not recorded36 tools