RunCloud MCP by usefulapi
Read RunCloud servers, web apps, databases and logs; deploy, restart services, renew SSL.
Should I use this
Quality & Safety
Findings (2)
- LOWin runcloud_list_atomic_deployments
- LOWin runcloud_install_letsencrypt_ssl
Based on automated analysis of tool definitions and protocol compliance.
Context Cost
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-httpWhat it can do
Tool inventory
Tools (36)
🟢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
Evidence