Give AI coding tools your servers, not your keys
HostDock includes a local MCP (Model Context Protocol) server. Connect Claude Code, ChatGPT/Codex or another MCP client, and it can run commands, read logs and move files on the servers you choose. HostDock holds the SSH keys, enforces each tool's limits and asks you before risky commands run.

What you can do
One token per tool
Create a token for each AI tool or computer. Limit it to all servers, a group or a hand-picked list, set an expiry, pause it any time.
Four execution modes
Read-only, ask every time, safe allowlist (default) or run everything. Commands that look like they read secrets still ask.
Approve in HostDock
Commands that need approval pop up in HostDock with a notification. Edit, run or reject. Patterns like rm -rf and curl | sh are highlighted.
Files skip the model
Uploads and downloads use a one-time local link the AI tool fetches with curl. The bytes stream to the server over SFTP and never pass through the model.
Local, not hosted
The MCP server listens on 127.0.0.1 and rejects non-local Host and Origin headers. There is no cloud relay, so your keys never touch our backend.
Same command log
Everything an AI tool runs is logged next to the in-app assistant’s commands, marked with the token that ran it.
Set up in three steps
- Turn it on. In HostDock, open Settings → MCP server and turn it on.
- Create a token. Name it after the tool, pick its servers and execution mode.
- Paste the config. HostDock shows the exact snippet for your tool with the token filled in.
Tools it exposes
list_servers- Servers this token may use (names and groups only)
run_command- Run a command, subject to the token’s execution mode
read_file / list_dir / tail_file / search_files- Read-only file access
system_overview- CPU, memory, disk and load at a glance
write_file- Write a text file; always asks first
upload_file / download_file- Move files of any size with curl through a one-time local link
claude mcp add --transport http hostdock http://127.0.0.1:47321/mcp \
--header "Authorization: Bearer <token>"# ~/.codex/config.toml (ChatGPT desktop and the codex CLI)
[mcp_servers.hostdock]
url = "http://127.0.0.1:47321/mcp"
http_headers = { "Authorization" = "Bearer <token>" }{
"mcpServers": {
"hostdock": {
"url": "http://127.0.0.1:47321/mcp",
"headers": { "Authorization": "Bearer <token>" }
}
}
}At a glance
| Transport | MCP Streamable HTTP at http://127.0.0.1:47321/mcp (port configurable) |
|---|---|
| Authentication | Bearer token per AI tool; stored encrypted on your Mac and never synced |
| Token options | Server scope · execution mode · expiry (never, 7 or 30 days) · pause · LAN access |
| Ready-made configs | Claude Code, ChatGPT/Codex, Cursor, WorkBuddy, or URL + header for anything else |
| File transfer | One-time link valid for 10 minutes, single use; uploads only replace the file if the size matches |
| Availability | Off by default. HostDock must be running; it stays in the menu bar when the window is closed |
Frequently asked questions
How do I connect Claude Code to my SSH servers?
Turn on the MCP server in HostDock's settings, create a token for Claude Code and choose which servers it may use. Then run: claude mcp add --transport http hostdock http://127.0.0.1:47321/mcp --header "Authorization: Bearer <token>". Claude Code can now list those servers and run commands on them, with approvals shown in HostDock.
Does the AI tool get my SSH keys or passwords?
No. The AI tool only ever talks to HostDock on your Mac with its token. HostDock opens the SSH connections itself, so addresses, usernames, passwords and keys stay inside HostDock.
Can I stop an AI tool from changing anything?
Yes. Give its token the Read-only execution mode: commands that are not on the read-only list are refused without asking, and write_file and upload_file are blocked.
More in HostDock
Bring your servers into one window
Free download for macOS 12 Monterey or later.