CitadelHosts
Server Details
Manage your own cloud with AI: deploy apps, push and ship custom Docker images, manage resources via your AI agent.
- Status
- Healthy
- Uptime
- 100.0% over the last 24 hours
- Last Tested
- Transport
- Streamable HTTP · MCP 2025-03-26
- URL
- ChatGPT
- –
- Claude
- –
TDQS
Scored across 31 tools
Most tools target a distinct resource+action, and the descriptions explicitly cross-reference each other to separate near-neighbors (e.g. get_app vs get_app_details vs get_app_definition, start_app vs kill_app). The only residual overlap is the status surface: check_app_status vs the status field returned by get_app vs get_territory_status, plus create_app vs create_custom_app, but descriptions disambiguate these adequately.
Nearly all 31 tools follow a clean snake_case verb_noun pattern (list_apps, create_territory, get_app_logs, delete_territory). The one wrinkle is verb choice for equivalent operations across resources: check_app_status but get_territory_status, and kill_app alongside stop_app/delete_territory — readable, but not perfectly uniform.
31 tools is on the heavy side for what is essentially an app-hosting CRUD surface. The domain is genuinely broad (territories, apps, definitions, backups, storage, billing, registry), so most tools earn a place, but the set is nearing bloat and could be consolidated (e.g. the four app-read tools).
Territories have full lifecycle (create/get/list/rename/delete) and apps have deploy/start/stop/kill/logs/link/auth. However, there is no delete_app or update_app, no delete/resize for storage volumes, and no way to remove scheduled backup tasks or stored backups — dead ends an agent will hit in cleanup workflows.
Publisher details
- Operator
- Citadel Hosts, Limited Liability Company
- Operator website
- https://citadelhosts.com
- Vendor relationship
- First-party
- Trust center
- Unknown
- Restrictions
- Unknown
Available Tools
31 toolscheck_app_statusAInspect
Check the managed status of an application. Returns a PascalCase string: Queued (waiting for a worker, nothing deployed yet), Created (deployed on a worker, containers waiting to be started), Running (up and serving), Stopped (intentionally stopped; restart with start_app), Deleted (terminal, torn down), or Unknown (worker could not confirm the state; check get_app_logs then restart). Poll Queued/Created until Running or a terminal state.
Inputs: managed_app_id (required). Returns: status
create_appBInspect
Deploy a managed application onto a territory. application_id is a catalog id (list_available_apps) or a custom definition id (create_custom_app). Omit advanced arrays unless needed.
Inputs: territory_id (required), application_id (required), mount_points, deploy_settings, +1 more.
create_backup_taskCInspect
Schedule automatic backups for an app.
Inputs: app_id (required), frequency (required), keep_last (required).
create_custom_appAInspect
Register a custom application definition from the user's own Docker images (and/or public images) so it can be deployed with create_app. Push images first: get_registry_credentials, then tag/push as /:, and verify with list_custom_images. Container 'image' is 'repo:tag' when is_custom is true (an image in the user's registry, the default), or a fully-qualified public image including its registry domain, like 'docker.io/library/postgres:16', when is_custom is false. Publish exactly one port on the container that serves traffic; volumes persist data at container_path; env_vars function defaults to TEXT for literal values.
Inputs: name (required), containers (required), description.
create_storage_volumeCInspect
Create a standalone storage volume. size_limit uses the same units as the web dashboard (GB).
Inputs: name (required), size_limit (required), ssd_or_hdd (required).
create_territoryAInspect
Create a new territory. Index selects the tier: 1 = Outpost (1 CPU, 0.5 GB RAM, 5 GB disk), 2 = Scout (1 CPU, 1 GB RAM, 10 GB disk), 3 = Watchtower (2 CPU, 2 GB RAM, 20 GB disk), 4 = Bastion (4 CPU, 4 GB RAM, 40 GB disk), 5 = Keep (8 CPU, 8 GB RAM, 80 GB disk), 6 = Stronghold (16 CPU, 16 GB RAM, 160 GB disk), 7 = Citadel (32 CPU, 32 GB RAM, 320 GB disk). Starts billing.
Inputs: index (required).
delete_territoryBInspect
Delete a territory and stop billing for it. Destructive.
Inputs: territory_id (required).
get_appAInspect
Get the full application record by id: status, territory_id, container instances (image, ports, volumes, env vars, router targets) and mount points. Its 'status' uses the same PascalCase values as check_app_status (Queued, Created, Running, Stopped, Deleted, Unknown). For resource usage instead, use get_app_details.
Inputs: managed_app_id (required).
get_app_definitionAInspect
Get an application definition (containers, ports, volumes, env vars) by id. Catalog definitions are shared; custom definitions are visible only to the user who created them (404 otherwise).
Inputs: id (required).
get_app_detailsAInspect
Get a usage summary for a managed application: app name, auth flag, aggregated CPU and memory usage, and storage used per container and per volume. For the full record with ports, env vars and router targets, use get_app.
Inputs: managed_app_id (required).
get_app_linkBInspect
Get the public URL where a deployed managed application can be reached, so it can be shared with the user. Returns app_link null when the app publishes no port.
Inputs: managed_app_id (required).
get_app_logsAInspect
Capture recent container log lines for an app. Samples ~4 seconds of logs. container_select is a managed_container_id (see get_app_details); omit it to use the app's first container.
Inputs: managed_app_id (required), container_select.
get_billing_balanceAInspect
Get the user's credit wallet balance (cents USD).
Inputs: no named parameters.
get_payment_statusBInspect
Check whether the user has a payment method on file.
Inputs: no named parameters.
get_registry_credentialsAInspect
Get Docker registry login credentials and step-by-step instructions for pushing custom images. The password is the caller's own API token (read_write keys only); it works with docker/podman/skopeo login and in CI. Images pushed as /: are automatically scoped to this account; reference them in create_custom_app as ':' with is_custom true.
Inputs: no named parameters.
get_territory_statusAInspect
Get the status of one territory. Returns a PascalCase string: Queued (being provisioned, cannot host apps yet), Active (ready to host apps), or Deleted (terminal, billing stopped).
Inputs: territory_id (required). Returns: status
list_appsBInspect
List all managed applications across the user's territories. Each entry's 'status' uses the PascalCase values documented on check_app_status.
Inputs: no named parameters.
list_available_appsBInspect
List the application catalog available to deploy.
Inputs: no named parameters.
list_backupsBInspect
List stored backups, optionally filtered by app id.
Inputs: app_id.
list_backup_tasksBInspect
List scheduled backup tasks, optionally filtered by app id.
Inputs: app_id.
list_custom_imagesAInspect
List the Docker images pushed to the user's CitadelHosts registry (name, tag, size bytes). Verify pushes here before referencing images in create_custom_app.
Inputs: no named parameters.
list_managed_volumesCInspect
List volumes attached to a managed application.
Inputs: managed_app_id (required).
list_storage_volumesAInspect
List the user's standalone storage volumes with size limits and usage.
Inputs: no named parameters.
list_territoriesAInspect
List the user's territories (resource containers that hold apps) with limits, status and pricing.
Inputs: no named parameters.
rename_territoryCInspect
Rename a territory.
Inputs: name (required), territory_id (required).
restore_backupBInspect
Restore a backup over the app's current volume data. Destructive.
Inputs: backup_id (required).
toggle_app_authCInspect
Toggle whether the proxy requires login to reach the app.
Inputs: managed_app_id (required).
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
Loading tool schema changelog…
Related MCP Connectors
Deploy and run apps in your own AWS, Google Cloud, Azure or DigitalOcean account from any AI agent.
Deploy and manage your apps, databases, storage, and scheduled jobs from your AI agent
Hosting run by your AI agent: publish websites, apps, databases, domains and email from chat.
Hosting for AI agents: your AI client deploys Docker apps to live HTTPS URLs over MCP.
Related MCP Servers
- AlicenseCqualityBmaintenanceDeploy and manage apps on your own servers from an AI agent through a Tugport panel: services, deploys, logs and domains.3211MIT
- FlicenseNot gradedqualityDmaintenanceDeploy, manage, and scale applications directly from your AI assistant.8-

Nexlayer MCPofficial
FlicenseNot gradedqualityDmaintenanceAgentic cloud platform with 45+ MCP tools. Deploy any containerized stack, debug live pods (shell, file editing, DB queries), manage custom domains & TLS, push to built-in container registry, scale pods, and manage GPU workloads. The infrastructure layer where AI agents ship software to production.9-- AlicenseNot gradedqualityBmaintenanceEnables AI agents to deploy and operate self-hosted applications on Linux servers and homelabs through Docker Compose, including zero-config buildpack builds, encrypted secret storage, one-second PostgreSQL/Redis provisioning, and one-call exposure via Cloudflare Tunnel or Tailscale. It also provides container lifecycle and log management plus an optional lightweight web dashboard, all without a persistent daemon.MIT
Glama MCP Gateway
Add one secure layer between your agents and this server.