SentinelX connects Claude, ChatGPT and any MCP client to your Linux, macOS and Windows servers. One command per host, Google sign-in, your whole fleet in one dashboard.
$ curl -fsSL https://get.sentinelx.app | bash
One command — auto-detects Linux or macOS.
PS> iwr -useb https://get.sentinelx.app/install.ps1 -OutFile "$env:TEMP\sx.ps1"
powershell -ExecutionPolicy Bypass -File "$env:TEMP\sx.ps1"
PowerShell — needs Python 3.12+ and git. Add -User for a no-admin install.
The hub handles OAuth, identity and MCP. The agent only connects outbound — no inbound ports, no DNS, no certificates on your host.
Run the installer. It creates a system user, registers a systemd service, and connects out to the hub.
Sign in at mcp.sentinelx.app, click Enroll a new host, paste the token. Your server appears in seconds.
Every host with status, version and last-seen. Label, kick sessions, or unenroll — from the browser at mcp.sentinelx.app/dashboard.
Add the hub as an MCP connector in Claude or ChatGPT. The AI targets hosts by name — and only runs what the allowlist permits.
A real session: SentinelX checks the allowlist first, runs only what's permitted (df -h, /proc/meminfo), and reports back — no shell handed over, no guessing.
SentinelX in ChatGPT — checking RAM & storage, live.
One hub URL, any MCP client. Sign in once with Google — every client you connect sees the same fleet.
https://mcp.sentinelx.app/mcp/mcpsentinel_state host factssentinel_capabilities what's allowedsentinel_exec run an allowlisted commandsentinel_edit structured file editssentinel_script_run temp bash / python scriptsentinel_service start / stop / restart / reloadsentinel_upload_file upload to hostsentinel_list_hosts multi-host fleet viewMost AI coding tools start every session from zero. SentinelX runs inside your chat, so context and decisions accumulate across days. Add git on the host and the AI actually remembers your project.
Clone once, refactor over a week. Thursday's session remembers what Monday tried.
"Remember the timeout from last week? It came back." The chat holds the thread; the agent re-runs the diagnostics live.
Why Postgres over SQLite, why the worker is on its own host. The reasoning lives in the conversation, not in comments you'll forget to grep.
This site was built and is continuously updated with SentinelX.
The agent edits /var/www/sentinelx.pensa.ar/index.html directly, with git tracking every change. Including this paragraph.
The agent is open source — audit exactly what runs on your server.
Only commands explicitly listed in the policy run. Paths and arguments are validated too.
A dedicated sentinelx user, no login shell, sudo scoped to exactly what the policy permits.
Google sign-in, JWT sessions with explicit scopes. The agent only trusts the hub.
One outbound WebSocket. No inbound ports, no public DNS, no certificates. Your firewall stays closed.
Every operation logged: user, host, command, output, return code. Blocked attempts too.
The agent is Apache 2.0-licensed and lives at pensados/sentinelx-cloud-core. Read it, fork it, run a fork — it's yours.
Same hub URL, one paste. The only thing that changes per client is the top-level key and how the transport field is spelled — get that wrong and the client silently falls back to the legacy SSE transport.
servers, transport "http"."streamableHttp" — camelCase, no hyphen. Omitting it or using "http" throws Invalid schema and falls back to SSE (405).url only — Cursor auto-detects transport and handles OAuth. Heads-up: Cursor caps ~40 active tools and SentinelX exposes 38, so disable tools you don't use or trim other servers.mcpServers + url. A few differ — check your client's docs for the transport key (e.g. type or serverUrl).Prefer running the whole stack yourself, OAuth included? The Docker edition bundles agent, MCP bridge and Keycloak. Same protocol, same security model.
One-line install, 4 containers on your own host. You bring DNS, certificates and ops. For full data sovereignty or air-gapped setups.