Skip to content
Agentmart
Submit a tool

SSH MCP Server

Modern SSH for AI agents — cloud servers to BusyBox routers, with destructive commands blocked.

Connector by hypnosis · GitHub account verified by the MCP Registry

IndexedMITLocal (stdio)★ 6
Write a review

Install

Works with Claude Code, Codex, VS Code, Cursor, Windsurf, Claude Desktop. Read the repository before you give any tool access to your data.

npx agentmarket install connector/hypnosis-ssh-mcp-server

Asks which of your tools to add it to (Claude Code, Codex, Cursor, VS Code, Windsurf, Gemini CLI, Claude Desktop) and shows the change first. See https://agentmart.dev/cli.

Get the weekly diff

The weekly diff: one email a week with new agent tools, notable updates and grade changes, plus security alerts for tools you follow. Double opt-in, one-click unsubscribe.

We use your email only for this newsletter. Privacy

About

Modern SSH for AI agents — cloud servers to BusyBox routers, with destructive commands blocked.

No reviews yet. Installed it? Reviews come from verified installers only. How reviews work

Permissions

What this server can do and what it asks for, from its tool list, install config and code. Checked Oct 26, 2026.

Tools
13 read · 0 write · 5 delete
Secrets
None asked for
Install scripts
None found
Runs as
Node.js package

Tools by what they do 18

Read from the source code; the running server may list different tools.

Read 13 · Look things up without changing anything.

  • ssh_audit_baseline
  • ssh_disk_breakdown
  • ssh_file_list
  • ssh_file_read
  • ssh_job_list
  • ssh_job_output
  • ssh_job_status
  • ssh_log_search
  • ssh_log_tail
  • ssh_monitor
  • ssh_service_status
  • ssh_snapshot
Show 1 more tools
  • ssh_tls_check

Delete 5 · Delete, drop, revoke or wipe things.

  • ssh_download
  • ssh_exec
  • ssh_file_write
  • ssh_job_kill
  • ssh_upload

Secrets and settings it asks for

Other settings (environment variables or headers).

  • SSH_MCP_LOG_LEVEL
  • SSH_PROFILES_FILE

Network hosts it talks to 4

  • agent-plugins.org · found in code
  • github.com · found in code
  • glama.ai · found in code
  • raw.githubusercontent.com · found in code

Files it touches

  • ~/.ssh/id_ed25519
  • ~/.ssh/mcp-secrets.json
  • /dev
  • /dev/null
  • /dev/random
  • /dev/stderr
  • /dev/stdout
  • /dev/tty
  • /dev/urandom
  • /dev/zero
  • /etc/app.conf
  • /etc/hosts
  • /etc/resolv.conf
  • /opt/app
  • /opt/app/app.conf
  • /var/log
  • /var/log/syslog
  • Your home directory (~)
  • Any path the agent passes to its tools

Tools (18)

Read from the source code; the running server may differ. Descriptions are the server’s own words; hidden characters are shown as [U+…].

  • ssh_audit_baselineAudit a serverread-only

    Reports how a machine is set up: sshd, firewall, pending updates, failed services, docker, listening ports and disk, each section marked CRITICAL, WARNING or OK. Reads only, in one round trip instead of a dozen commands. For load and health at this moment rather than settings, use ssh_snapshot.

  • ssh_disk_breakdownBreak down disk usageread-only

    Finds what filled a disk: free space per filesystem, the largest directories under each path given, and what docker, journald and package caches hold. Reads only, nothing is deleted. For how full the disks are at all, ssh_snapshot answers in one line.

  • ssh_downloadDownload from a servercan change or delete data

    Copies a file or directory from a server to this machine, checked by sha256 on both sides. To read a text file rather than keep it, ssh_file_read skips the disk.

  • ssh_execRun commandscan change or delete data

    Runs one command or a list of them on a server, each with its own exit code, stdout and stderr. Work measured in minutes belongs in detach, not in a longer timeout. Reach for it last — files, logs, transfers, health and jobs each have a tool that batches the round trips and parses the answer.

  • ssh_file_listList a remote directoryread-only

    Lists a directory on a server: every entry with its size, mode, owner and modification time, as fields. A directory it was not allowed to enter is named rather than left out, and a listing cut short by the output limit says so. To see what is inside a file, use ssh_file_read.

  • ssh_file_readRead a remote fileread-only

    Reads text files from a server, several of them in one call. A file it could not read is named with the reason, never returned empty or cut short as if that were the content. To look for something inside logs rather than read them, ssh_log_search greps on the server.

  • ssh_file_writeWrite a remote filecan change or delete data

    Writes text files on a server, several in one call, each with its own path, permissions, owner and sudo. A file is replaced whole and never appears half-written; there is no append. For something that already exists on this machine, use ssh_upload.

  • ssh_job_killStop a background jobcan change or delete data

    Stops a detached job and everything it started — the signal reaches the whole process group. A job that had already finished is reported as gone, not as a refusal.

  • ssh_job_listList background jobsread-only

    Lists the detached jobs on a machine with their state, jobs started with sudo included — for when an id was not kept. Ids and states only; for what a job printed, use ssh_job_output.

  • ssh_job_outputRead job outputread-only

    Returns what a detached job has written so far, stdout and stderr together, from a byte offset you choose. For whether the job is still running rather than what it printed, ssh_job_status answers in one line.

  • ssh_job_statusCheck a background jobread-only

    Reports the state of a detached job, with the last lines it wrote so you can see where it got to. lost means no exit code was left behind, not that the work failed — ssh_job_output still has the output.

  • ssh_log_searchSearch log filesread-only

    Greps log files on the server and returns the matching lines with their paths, or the paths alone when line bodies are not wanted. An empty answer means no match, never a failed search — files that could not be read are listed apart. For the tail of a file rather than a search through it, ssh_log_tail is cheaper. A container is searched by name instead of by path.

  • ssh_log_tailTail a log fileread-only

    Returns the last lines of one or more log files, whatever their size — nothing is shipped here to be trimmed locally. A container is read by name instead of by path, through the file its driver writes. To look for something rather than read the end, use ssh_log_search.

  • ssh_monitorManage connections

    Looks after the SSH connections themselves, not the machines behind them: lists the configured profiles, tests one, reports pool statistics, closes a connection or reloads the profile file. Start here on a machine you have not used yet — test names the state before anything else runs.

  • ssh_service_statusCheck a serviceread-only

    Reports one systemd unit: whether it is loaded, active and enabled, with the tail of its journal. A machine without systemd comes back as NOT CHECKED, never as a stopped service — that would read as an outage which is not there. For every failed unit at once, ssh_audit_baseline names them.

Show 3 more tools
  • ssh_snapshotSnapshot system healthread-only

    Reports how a machine is doing right now: cpu, memory, disk, containers, listening ports, services and recent errors, in one round trip. Whatever could not be measured comes back null and marked unavailable, never as a zero that reads like an idle machine. For how the machine is set up rather than how it is running, use ssh_audit_baseline.

  • ssh_tls_checkCheck a TLS certificateread-only

    Checks the TLS certificate a domain serves — days left, whether the name matches a SAN, the issuer and whether renewal is configured — with the handshake made from the server itself, so it sees what that machine sees, including hosts closed to the outside. A null field means the check could not run, not that the certificate is bad. Run it per domain, once ssh_audit_baseline has named the sites.

  • ssh_uploadUpload to a servercan change or delete data

    Copies a local file or directory to a server, checked by sha256 on both sides and never left half-written at the target. A directory replaces the target whole — whatever was there and is not in the source is gone with it; merge: true keeps it instead. For text you can paste, ssh_file_write is cheaper; piping base64 through ssh_exec truncates silently.

Signals

Stars
6
Forks
1
Open issues
0
Weekly downloads
103
Last commit
Aug 24, 2026 (2 months ago)
Last release
Aug 24, 2026 (2 months ago)
Last package publish
Aug 24, 2026 (2 months ago)

From GitHub (fetched Oct 24, 2026) and the package registry.

Details

Registry name
io.github.hypnosis/ssh-mcp-server
Version
2.3.3
Auth
No auth
License
MIT
First seen
Oct 24, 2026
Last checked
Oct 24, 2026

More from hypnosis

Cite this page

SSH MCP Server. Agent Mart. https://agentmart.dev/connectors/hypnosis-ssh-mcp-server (last updated 2026-10-24)