Kastell
OfficialKastell is a comprehensive server management and security platform for provisioning, managing, securing, monitoring, and auditing cloud servers via an AI-native MCP interface (17 tools).
Server Info & Monitoring
List servers, check status/health, monitor CPU/RAM/disk, view logs, list Docker containers, and get fleet-wide posture (health, audit scores, SSH response times).
Provisioning
Deploy new servers on Hetzner, DigitalOcean, Vultr, or Linode with Coolify, Dokploy, or bare VPS mode using templates (starter, production, dev).
Management
Add/remove/destroy servers, SSH access, restart, export/import server lists.
Maintenance
Update platform software, run full 5-step maintenance cycles (status → update → health → reboot → final check).
Backup & Snapshots
Create/restore local backups (DB + config) and manage cloud provider VPS snapshots (create, list, delete, restore).
Security Auditing
Run 470+ checks across 32 categories with compliance filtering (CIS, PCI-DSS, HIPAA), score thresholds for CI/CD gating, audit snapshots/comparisons, and HTML/JSON/SVG reports.
Hardening (Lock)
Apply 24-step production hardening (SSH, UFW, fail2ban, sysctl, auditd, AIDE, Docker daemon) with dry-run preview and before/after score tracking.
Safe Auto-Fix
Apply safe-tier fixes with backup, dry-run preview, rollback, and fix history. Target specific checks or categories.
Guard Daemon
Install autonomous security monitoring cron (every 5 minutes) with breach detection for disk/RAM/CPU/audit thresholds.
Forensic Evidence
Collect firewall rules, auth logs, listening ports, and system logs with SHA256 manifest.
Proactive Doctor
Detect disk trending full, high swap, stale packages, fail2ban bans, audit regressions, old backups, and reclaimable Docker space — with optional auto-fix.
Compare Servers
Side-by-side comparison of two servers by category scores or individual check results.
Domain & Firewall
Add/remove domains, manage SSL, verify DNS, and configure UFW rules.
Explain Checks
Deep-dive into any audit check: description, risk, remediation steps, fix tier, and compliance references (no SSH required).
Plugin Management
List and validate installed plugins.
Allows provisioning and managing cloud servers on Linode (Akamai), including snapshots and automated maintenance routines.
Enables automated deployment, status monitoring, and snapshot management for DigitalOcean droplets.
Facilitates the management and hardening of Docker-based platforms like Coolify and Dokploy on remote infrastructure.
Supports provisioning, management, and snapshot routines for infrastructure hosted on Hetzner Cloud.
Provides security hardening, firewall configuration, and maintenance tools specifically tailored for Ubuntu-based server environments.
Allows for automated server provisioning, status tracking, and backup operations on the Vultr cloud platform.
Utilizes YAML files for defining server deployment configurations and infrastructure templates.
English | Türkçe
Why Kastell?
Server security is fragmented. Lynis scans but doesn't fix. OpenSCAP is powerful but complex. Custom scripts work until they don't -- and nobody maintains them. Each tool has its own output format, its own update cycle, its own learning curve.
Kastell takes a different approach: one CLI that audits, fixes, hardens, and monitors. Scan your server, apply safe fixes, lock it down to production standards, and keep watching -- all with the same tool.
AI-native from day one. Kastell ships with a built-in MCP server, so Claude, Cursor, or any MCP-compatible AI agent can manage your servers directly. Go from a prompt to production hardening in seconds.
You don't need four separate tools to secure a server.
Related MCP server: Multi-Function Security MCP
Quick Start
# Interactive mode -- no commands to memorize
npx kastellRunning kastell without any arguments launches an interactive search menu with a gradient ASCII banner and quick-start examples. Browse actions by emoji-categorized groups, type to filter results instantly, and configure options step by step -- no need to remember any command names or flags.
██╗ ██╗ ██████╗ ███████╗████████╗███████╗██╗ ██╗
██║ ██╔╝ ██╔══██╗ ██╔════╝╚══██╔══╝██╔════╝██║ ██║
█████╔╝ ███████║ ███████╗ ██║ █████╗ ██║ ██║
██╔═██╗ ██╔══██║ ╚════██║ ██║ ██╔══╝ ██║ ██║
██║ ██╗ ██║ ██║ ███████║ ██║ ███████╗███████╗███████╗
╚═╝ ╚═╝ ╚═╝ ╚═╝ ╚══════╝ ╚═╝ ╚══════╝╚══════╝╚══════╝
KASTELL v2.3.1 · Your infrastructure, fortified.
$ kastell init --template production → deploy a new server
$ kastell status --all → check all servers
$ kastell secure setup → harden SSH + fail2ban
$ kastell maintain --all → full maintenance cycle
? What would you like to do?
Server Management
❯ Deploy a new server
Add an existing server
List all servers
...
Security
Harden SSH & fail2ban
Manage firewall (UFW)
...Each action includes sub-options (server mode, template, log source, port number, etc.) and a <- Back option to return to the main menu at any point.
If you already know the commands, you can still use them directly:
kastell init # Deploy a new server
kastell status my-server # Check server status
kastell backup --all # Backup all serversKastell handles server provisioning, SSH key setup, firewall configuration, and platform installation automatically.
What Makes Kastell Different?
Problem | Solution |
Broke your server with an update? | Pre-update snapshot protection via |
No idea if your server is healthy? | Built-in monitoring, health checks, and |
Security is an afterthought? | Firewall, SSH hardening, SSL, and security audits built-in |
Backups? Maybe someday... | One-command backup & restore with manifest tracking |
Managing multiple servers? |
|
Existing server not tracked? |
|
Don't want to memorize commands? | Just run |
Kastell vs Alternatives
Feature | Kastell | Lynis | OpenSCAP |
Installation |
| Package manager | Package manager |
Language | TypeScript | Shell | C/Python |
Security Checks | 449 | 300+ | Varies by profile |
Auto-Fix | Safe tier | Suggest only | Suggest only |
MCP (AI Agent) | 17 tools | -- | -- |
Compliance | CIS, PCI-DSS, HIPAA | CIS, HIPAA | CIS, STIG, PCI-DSS |
Cloud Provision | 4 providers | -- | -- |
Hardening (Lock) | 24-step | -- | -- |
Remote Monitoring | Guard daemon | -- | -- |
Telegram Bot | Built-in | -- | -- |
Platform Support | Linux (SSH) | Linux/macOS/BSD | Linux |
License | Apache 2.0 | GPL-3.0 | LGPL-2.1 |
What Can You Do?
Deploy
kastell # Interactive menu (recommended)
kastell init # Interactive setup (direct)
kastell init --provider hetzner # Non-interactive
kastell init --config kastell.yml # From YAML config
kastell init --template production # Use a template
kastell init --mode bare # Generic VPS (no platform)
kastell init --mode dokploy # Dokploy (Docker Swarm PaaS)Manage
kastell list # List all servers
kastell status my-server # Check server status
kastell status --all # Check all servers
kastell ssh my-server # SSH into server
kastell restart my-server # Restart server
kastell destroy my-server # Destroy cloud server entirely
kastell add # Add existing server
kastell remove my-server # Remove from local config
kastell config set key value # Manage default configuration
kastell config validate # Validate servers.yaml structure and types
kastell export # Export server list to JSON
kastell import servers.json # Import servers from JSONUpdate & Maintain
kastell update my-server # Update platform (Coolify or Dokploy, auto-detected)
kastell update my-server --dry-run # Preview update without executing
kastell maintain my-server # Full maintenance (snapshot + update + health + reboot)
kastell maintain my-server --dry-run # Preview maintenance steps
kastell maintain --all # Maintain all serversBack Up & Restore
kastell backup my-server # Backup DB + config
kastell backup --all # Backup all servers
kastell restore my-server # Restore from backupSnapshots
kastell snapshot create my-server # Create VPS snapshot (with cost estimate)
kastell snapshot list my-server # List snapshots
kastell snapshot list --all # List all snapshots across servers
kastell snapshot delete my-server # Delete a snapshotSecurity
kastell firewall status my-server # Check firewall
kastell firewall setup my-server # Configure UFW
kastell secure audit my-server # Security audit
kastell secure setup my-server # SSH hardening + fail2ban
kastell domain add my-server --domain example.com # Set domain + SSLSecurity Audit
kastell audit my-server # Full security audit (31 categories, 449 checks)
kastell audit my-server --json # JSON output for automation
kastell audit my-server --threshold 70 # Exit code 1 if score below threshold
kastell audit my-server --fix # Interactive fix mode (prompts per severity)
kastell audit my-server --fix --dry-run # Preview fixes without executing
kastell audit my-server --watch # Re-audit every 5 min, show only changes
kastell audit my-server --watch 60 # Custom interval (60 seconds)
kastell audit --host root@1.2.3.4 # Audit unregistered server
kastell audit my-server --badge # SVG badge output
kastell audit my-server --report html # Full HTML report
kastell audit my-server --score-only # Just the score (CI-friendly)
kastell audit my-server --summary # Compact dashboard view
kastell audit my-server --explain # Explain failed checks with remediation guidance
kastell audit my-server --compliance cis # Filter by compliance framework (cis-level1, cis-level2, pci-dss, hipaa)Security Hardening
kastell lock my-server # 24-step production hardening (SSH + UFW + sysctl + auditd + AIDE + Docker)
kastell lock my-server --dry-run # Preview hardening steps without applyingMonitor & Debug
kastell monitor my-server # CPU, RAM, disk usage
kastell logs my-server # View platform logs (Coolify or Dokploy)
kastell logs my-server -f # Follow logs
kastell health # Health check all servers
kastell doctor # Check local environmentSupported Providers
Provider | Status | Regions | Starting Price |
Stable | EU, US | ~€4/mo | |
Stable | Global | ~$18/mo | |
Stable | Global | ~$12/mo | |
Beta | Global | ~$12/mo |
Prices reflect the cheapest plan with at least 2 GB RAM (required by Coolify and Dokploy). Bare mode has no minimum requirements -- plans start from ~$2.50/mo depending on provider. You can choose a different size during setup. Linode support is in beta -- community testing welcome.
Supported Platforms
Platform | Mode Flag | Min RAM | Min CPU | Description |
Coolify |
| 2 GB | 2 vCPU | Docker-based PaaS (port 8000) |
Dokploy |
| 2 GB | 2 vCPU | Docker Swarm-based PaaS (port 3000) |
Bare |
| — | — | Generic VPS, no platform overhead |
Kastell uses a PlatformAdapter architecture -- the same commands (update, maintain, logs, health) work across all platforms. The platform is stored in your server record and auto-detected on each command.
Developer Experience
Feature | Command / Flag | Description |
Dry Run |
| Preview destructive commands without executing. Available on: destroy, update, restart, remove, maintain, restore, firewall, domain, backup, snapshot, secure. |
Shell Completions |
| Generate shell completion scripts for tab-completion of commands and options. |
Config Validation |
| Check |
Version Check |
| Shows current version and notifies if a newer version is available on npm. |
YAML Config
Deploy with a single config file:
# kastell.yml
provider: hetzner
region: nbg1
size: cax11
name: my-coolify
fullSetup: true
domain: coolify.example.comkastell init --config kastell.ymlTemplates
Template | Best For | Includes |
| Testing, side projects | 1-2 vCPU, 2-4 GB RAM |
| Live applications | 2-4 vCPU, 4-8 GB RAM, full hardening |
| Development & CI/CD | Same as starter, no hardening |
kastell init --template production --provider hetznerSecurity
Kastell is built with security as a priority -- 12,132 tests across 380 suites, including dedicated security test suites.
API tokens are never stored on disk -- prompted at runtime or via environment variables
SSH keys are auto-generated if needed (Ed25519)
All SSH connections use
StrictHostKeyChecking=accept-newwith IP validation (octet range) and environment filteringShell injection protection on all user-facing inputs (
spawn/spawnSync, noexecSync)Provider error messages are sanitized to prevent token leakage
stderr sanitization redacts IPs, home paths, tokens, and secrets from error output
Config file token detection (22+ key patterns, case-insensitive, nested)
Import/export operations strip sensitive fields and enforce strict file permissions (
0o600)--full-setupenables UFW firewall and SSH hardening automaticallyMCP: SAFE_MODE (default: on) blocks all destructive operations, Zod schema validation on all inputs, path traversal protection on backup restore
Claude Code hooks: destroy-block prevents accidental
kastell destroywithout--force, pre-commit audit guard warns on score dropsZero Telemetry — Kastell collects no usage data, analytics, or telemetry. Your server data never leaves your machine.
Security behavior (v2.3.1)
This section documents security contracts shipped in v2.3.1. Future work is described elsewhere (see CHANGELOG.md for upcoming entries).
KASTELL_STRICT_HOST_KEY=true— when set, Kastell rejects unknown SSH host keys outright. Direct SSH connections (i.e. those that go throughaccept-new) emit a one-time Trust-On-First-Use (TOFU) warning so operators see the risk; combined withKASTELL_STRICT_HOST_KEY=true, the warning is promoted to a hard error.Non-TTY destructive commands — in non-interactive environments (CI, scripts, automation), destructive operations require an explicit
--forceflag or the command's documented opt-in flag. Without one, the command exits with a non-zero status and a clear error.Structured skipped checks — checks that are skipped (e.g. VPS-irrelevant, platform-mismatch, missing prerequisite) appear in audit output as a neutral, visible result rather than being silently dropped. Operators can see exactly which checks did not run and why.
Windows secret files — secret-bearing files written by Kastell on Windows receive restrictive ACLs (owner-only access).
0o600POSIX permissions remain the source of truth on Linux/macOS; Windows uses the equivalent DACL.QuickWin JSON shape —
audit --jsonQuickWin entries now include a stableid(check ID) andseverityfield, in addition to the existingdescriptionandcommands. This makes QuickWins programmatically consumable without parsing the human-readable description.FORBIDDEN previews include reasons — when previewing fixes with
--dry-run(or viaserver_fixMCP dry-run), each FORBIDDEN-tier fix now renders a short reason explaining why the fix is classified FORBIDDEN (e.g. "requires reboot", "disrupts active SSH sessions"). The reason is sourced from the check'sforbiddenReasonfield.
Installation
# Run directly (recommended)
npx kastell <command>
# Or install globally
npm install -g kastell
kastell <command>Requires Node.js 20 or later.
Safety Modes
KASTELL_SAFE_MODE environment variable controls destructive operations:
MCP default:
true—provision,destroy,restoreare blockedCLI default:
false— all operations are enabledOverride:
KASTELL_SAFE_MODE=true kastell destroy <server>→ rejected
Affected commands: init, destroy, backup-restore, snapshot-restore, snapshot-delete, restart, maintain.
Troubleshooting
Server creation fails?
Run kastell doctor --check-tokens to verify your API token and local environment.
Server not responding?
Use kastell status my-server --autostart to check platform status and auto-restart if needed, or kastell health to check all servers at once.
Need to start fresh?
kastell destroy my-server removes the cloud server entirely.
Contributing
See CONTRIBUTING.md for development setup, testing, and contribution guidelines.
Kastell uses 11,206 tests across 344 suites. Run npm test before submitting PRs.
MCP Server (AI Integration)
Kastell includes a built-in Model Context Protocol server for AI-powered server management. Works with Claude Code, Cursor, Windsurf, and other MCP-compatible clients.
{
"mcpServers": {
"kastell": {
"command": "npx",
"args": ["-y", "-p", "kastell", "kastell-mcp"],
"env": {
"HETZNER_TOKEN": "your-token",
"DIGITALOCEAN_TOKEN": "your-token",
"VULTR_TOKEN": "your-token",
"LINODE_TOKEN": "your-token"
}
}
}
}Available tools:
Tool | Actions | Description |
| list, status, health, sizes | Query server information, check cloud provider and platform status |
| logs, monitor | Fetch platform/Docker logs and system metrics via SSH |
| add, remove, destroy | Register, unregister, or destroy cloud servers |
| update, restart, maintain | Update platform, restart servers, run full maintenance |
| secure, firewall, domain | SSH hardening, firewall rules, domain/SSL management (10 subcommands) |
| backup, snapshot | Backup/restore databases and create/manage VPS snapshots |
| create | Provision new servers on cloud providers |
| audit | 449-check security audit with compliance framework filtering; use |
| collect | Collect forensic evidence package with checksums |
| start, stop, status | Manage autonomous security monitoring daemon |
| diagnose | Proactive health analysis with remediation commands |
| harden | 24-step production hardening (SSH, UFW, sysctl, auditd, AIDE, Docker) |
| overview | Fleet-wide health and security posture dashboard |
| fix --safe | Apply safe auto-fixes with backup (SAFE tier only, dryRun default) |
All destructive operations (destroy, restore, snapshot-delete, provision, restart, maintain, snapshot-create) require
SAFE_MODE=falseto execute.
Claude Code Plugin
Kastell is available as a Claude Code plugin for the Anthropic marketplace. The plugin bundles:
4 skills: kastell-ops (architecture reference), kastell-scaffold (component generation), kastell-careful (destructive op guard), kastell-research (codebase exploration)
2 agents: kastell-auditor (parallel audit analyzer), kastell-fixer (worktree-isolated auto-fix)
5 hooks: destroy-block, session-audit, session-log, pre-commit-audit-guard, stop-quality-check
Install via Claude Code plugin manager or use directly with claude --plugin-dir kastell-plugin.
MCP Platform Setup
Platform | Config Location | Guide |
Claude Code |
| |
Claude Desktop |
| |
VS Code / Copilot |
| |
Cursor |
|
More platforms (JetBrains, Windsurf, Gemini, and others) coming in v2.0.
AI Discoverability
Kastell provides llms.txt for AI crawlers and is listed in the MCP Registry as io.github.kastelldev/kastell.
v2.3 Reliability Contracts
These contracts apply to the CLI and the MCP server.
Provisioning behavior
server_provision returns after the provider creates the server and Kastell
durably registers it. readiness.status may be pending; follow with
server_info status or server_info health. The interactive kastell init
command continues waiting through its existing readiness checks.
Automation contracts
Unsupported and failed CLI operations return exit code
1.Valid empty results and user cancellation return
0.Mixed
--allfailures return1.audit --jsonandaudit --cireserve stdout for one JSON payload.
CI/CD Integration
Use kastell audit in your CI pipeline to enforce security baselines:
# .github/workflows/security-audit.yml
name: Security Audit
on:
schedule:
- cron: '0 6 * * 1' # Weekly Monday 6 AM
workflow_dispatch:
jobs:
audit:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- run: npm install -g kastell
- run: kastell audit --host root@${{ secrets.SERVER_IP }} --threshold 70 --json > audit-result.json
- uses: actions/upload-artifact@v4
with:
name: audit-report
path: audit-result.jsonThe --threshold flag causes a non-zero exit code when the score falls below the target, failing the CI job automatically.
What's Next
Test Excellence: Mutation testing, coverage gaps, integration tests (v1.14)
Plugin ecosystem with marketplace distribution (v2.0)
Dashboard and managed service (v3.0)
Philosophy
Infrastructure should be boring, predictable, and safe.
Kastell is not a script. It's your DevOps safety layer for self-hosted infrastructure.
License
Apache 2.0 -- see LICENSE
Support
GitHub Issues -- Bug reports and feature requests
Changelog -- Version history
Built by @omrfc
Available Tools
17 toolsserver_auditARead-onlyIdempotent
Run a security audit on a server. Scans 31 categories with 449 checks. Returns score (0-100), per-category scores, and quick wins. Formats: 'summary' (compact text), 'json' (full AuditResult), 'score' (number only). Supports compliance filtering (cis-level1, cis-level2, pci-dss, hipaa), category/severity filtering, snapshot save/compare, threshold gate, and profile filtering. Requires SSH access. For health trends use server_doctor instead.
Inputs: format, server, compare, explain, +6 more. Returns: result
server_backupADestructive
Backup and snapshot Kastell servers. Backup: 'backup-create' dumps Coolify DB + config via SSH (Coolify servers) or system config files (bare servers), 'backup-list' shows local backups, 'backup-restore' restores from backup — bare servers restore system config, Coolify servers restore DB+config (SAFE_MODE blocks restore). Snapshot: 'snapshot-create'/'snapshot-list'/'snapshot-delete' manage cloud provider snapshots (requires provider API token). Snapshots not available for manually added servers.
Inputs: action (required), server, backupId, snapshotId. Returns: result
server_compareARead-onlyIdempotent
Compare two servers side-by-side. Returns category-level score comparison (default) or check-level diff (detail mode). Uses cached snapshots when available, falls back to live SSH audit. Requires two registered servers.
Inputs: serverA (required), serverB (required), fresh, detail. Returns: result
server_doctorARead-onlyIdempotent
Run proactive health analysis on a server. Detects disk trending full, high swap, stale packages, elevated fail2ban bans, audit regression streaks, old backups, and reclaimable Docker space. Uses cached metrics by default — pass fresh=true to fetch live data via SSH. Returns findings grouped by severity (critical/warning/info) with remediation commands. For a full scored security audit across 27 categories, use server_audit instead.
Inputs: force, fresh, dryRun, format, +2 more. Returns: result
server_evidenceA
Collect forensic evidence package from a server. Gathers firewall rules, auth.log, listening ports, system logs, and optionally Docker info. Writes to ~/.kastell/evidence/{server}/{date}/. Returns manifest with SHA256 checksums per file.
Inputs: name, force, lines, server, +2 more. Returns: result
server_explainARead-onlyIdempotent
Deep-dive into a single audit check. Returns what it does, why it matters, how to fix it, fix tier (SAFE/GUARDED/FORBIDDEN), and compliance references (CIS/PCI-DSS/HIPAA). No SSH connection required. Supports case-insensitive and fuzzy matching for check IDs.
Inputs: checkId (required). Returns: result
server_fixCDestructive
Apply safe auto-fixes to a server. Runs audit, filters SAFE tier fixes, creates backup, applies fixes, and re-audits for score delta. dryRun defaults to true (preview only). SAFE_MODE forces preview. SSH/Firewall/Docker fixes are FORBIDDEN and always rejected. Use checks and category params to target specific fixes.
Inputs: no named parameters. Returns: result
server_fleetARead-onlyIdempotent
Get fleet-wide health and security posture for all registered servers. Returns server name, IP, provider, health status (ONLINE/DEGRADED/OFFLINE), cached audit score, and SSH response time. Use sort parameter to order results. For per-server cloud status or available server sizes, use server_info instead.
Inputs: sort, categories. Returns: result
server_guardAIdempotent
Manage autonomous security monitoring daemon on a server. Actions: 'start' installs guard as remote cron (checks disk/RAM/CPU/audit every 5 min), 'stop' removes guard cron entry, 'status' shows whether guard is active with last check time and any threshold breaches. Requires SSH access to target server.
Inputs: action (required), server. Returns: result
server_infoARead-onlyIdempotent
Get information about Kastell-managed servers. Actions: 'list' all servers, 'status' check cloud provider + Coolify/bare status, 'health' check Coolify reachability or SSH access for bare servers, 'sizes' list available server types with prices for a provider+region. Requires provider API tokens as environment variables (HETZNER_TOKEN, DIGITALOCEAN_TOKEN, VULTR_TOKEN, LINODE_TOKEN) for status/sizes checks. Avoid calling repeatedly in short intervals to prevent provider API rate limiting. For fleet-wide health and audit scores across all servers, use server_fleet instead.
Inputs: action (required), mode, region, server, +1 more. Returns: result
server_lockADestructive
Harden a server to production standard. Applies 24 hardening steps in a single SSH session covering SSH, fail2ban, UFW, sysctl, unattended-upgrades, Docker daemon, auditd, AIDE, and more. Requires production=true (safety gate). Pass dryRun=true to preview. Platform-aware: preserves Coolify/Dokploy ports. Shows audit score before and after. Requires SSH access. For fine-grained SSH/firewall/domain changes use server_secure instead.
Inputs: force, dryRun, server, production. Returns: result
server_logsARead-onlyIdempotent
Fetch logs and system metrics from Kastell-managed servers via SSH. Actions: 'logs' retrieves recent log lines from Coolify container (Coolify servers only), Docker service, or system journal. Bare servers: use service 'system' or 'docker' (coolify service not available). 'monitor' fetches CPU, RAM, and disk usage metrics (works for all server modes). Requires SSH access to target server (root@ip). Note: live streaming (--follow) is not available via MCP — use the CLI for live log tailing.
Inputs: action (required), lines, server, service, +1 more. Returns: result
server_maintainAIdempotent
Maintain Kastell servers. Actions: 'update' runs Coolify update via SSH (Coolify servers only — bare servers are blocked), 'restart' reboots server via cloud provider API (works for both Coolify and bare servers), 'maintain' runs full 5-step maintenance (Coolify servers only — bare servers are blocked). Snapshot not included — use server_backup tool. Requires SSH access for update, provider API tokens for restart/status. Manual servers: restart not available.
Inputs: action (required), server, skipReboot. Returns: result
server_manageADestructive
Manage Kastell servers. Actions: 'add' registers an existing Coolify or bare server to local config (validates API token, optionally verifies Coolify via SSH — pass mode:'bare' for servers without Coolify). 'remove' unregisters a server from local config only (cloud server keeps running). 'destroy' PERMANENTLY DELETES the server from the cloud provider and removes from local config. Requires provider API tokens as environment variables. Destroy is blocked when KASTELL_SAFE_MODE=true. Server mode for 'add' action: 'coolify', 'dokploy', or 'bare'. Default: coolify
Inputs: action (required), ip, mode, name, +3 more. Returns: result
server_pluginARead-onlyIdempotent
Manage kastell plugins. Actions: 'list' shows installed plugins with check counts and status, 'validate' checks manifest integrity and entry point validity. Install/remove not available via MCP — use CLI for security (requires explicit user consent). No SSH connection required.
Inputs: action (required), name. Returns: result
server_provisionADestructive
Provision a new server on a cloud provider. Default: Coolify auto-install via cloud-init. Pass mode:'bare' for a generic VPS without Coolify (installs UFW and runs system updates only). Requires provider API token as environment variable (HETZNER_TOKEN, DIGITALOCEAN_TOKEN, VULTR_TOKEN, LINODE_TOKEN). WARNING: Creates a billable cloud resource. Blocked when KASTELL_SAFE_MODE=true. Server takes 3-5 minutes to fully initialize after provisioning.
Inputs: mode, name, size, region, +2 more. Returns: result
server_secureAIdempotent
Secure Kastell servers. Secure: 'secure-setup' applies SSH hardening + fail2ban, 'secure-audit' runs security audit with score. Firewall: 'firewall-setup' installs UFW with Coolify ports, 'firewall-add'/'firewall-remove' manage port rules, 'firewall-status' shows current rules. Domain: 'domain-set'/'domain-remove' manage custom domain with optional SSL, 'domain-check' verifies DNS, 'domain-info' shows current FQDN. All require SSH access to server. For full one-shot hardening (SSH + fail2ban + UFW + sysctl + unattended-upgrades), use server_lock instead.
Inputs: action (required), ssl, port, domain, +2 more. Returns: result
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
Loading tool schema changelog…
TDQS
Scored across 17 tools
Each tool has a distinct purpose with detailed descriptions and cross-references. Even overlapping areas like security (audit, lock, secure) are clearly differentiated by scope and usage.
All 17 tools follow the consistent 'server_<action>' pattern in snake_case, making the tool set predictable and easy to navigate.
17 tools cover the broad domain of server management without being excessive. While slightly above the 3-15 ideal range, each tool earns its place with well-defined functionality.
The tool set covers provisioning, lifecycle management, security auditing and hardening, health monitoring, backup, logging, and fleet management. No obvious gaps for the stated purpose.
Maintenance
Related MCP Connectors
Create, list and destroy hourly-billed servers on Vultr, DigitalOcean, Hetzner and Linode.
Managed deployments on your own Hetzner servers.
Let AI operate servers without SSH. Choose actions, approve risky changes, and audit every step.
Linux server administration over OAuth MCP: shell, Docker, systemd, files and monitoring.
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceProfessional security testing server with 50+ integrated tools for web application vulnerability scanning, reconnaissance, fuzzing, and API testing. Enables comprehensive bug bounty hunting workflows including subdomain enumeration, XSS/SQLi detection, and automated security assessments.1MIT
- FlicenseNot gradedqualityDmaintenanceEnables automated security detection and compliance auditing for cloud hosts and servers, including threat detection, baseline security checks, cryptocurrency miner detection, log analysis, and real-time monitoring through API and web dashboard.1-
- AlicenseNot gradedqualityDmaintenanceThis is a Linux OS hardening tool. Take a fresh install and immediately harden the heck out of it using just your favourite LLM agent and natural language prompts. "Make my system secure" or "Do a full security audit of my system."19 npm1MIT
- AlicenseNot gradedqualityCmaintenanceOpen-source MCP server for managing Hetzner Cloud infrastructure with two management layers: * Layer 1 — Hetzner Cloud API (35 tools): Server power control, metrics, snapshots, backups, firewalls, DNS zones and records, rescue mode, server rebuild and rescale. Works even when the server OS is unresponsive. * Layer 2 — SSH (25 tools): Service management (systemd), Nginx config and reload,MIT