NixSCP › Docs › MCP server

MCP server for SSH: your servers as tools for AI agents

One command connects Claude Code and other MCP clients to the SSH sites you allow, through NixSCP.

nixscp --mcp runs NixSCP as a Model Context Protocol (MCP) server, so AI tools that speak MCP, such as Claude Code, Claude Desktop or Cursor, can run commands and transfer files on your saved SSH servers as tools. It is the same Agent Access as the nixscp --connect commands, with the same permissions, approvals, command rules, recordings and audit log, and the agent never gets your passwords or private keys. Free; no NixSCP Pro account needed.

Add the NixSCP MCP server

Claude Code:

claude mcp add nixscp -- nixscp --mcp

Other MCP clients (a stdio server):

{
  "mcpServers": {
    "nixscp": { "command": "nixscp", "args": ["--mcp"] }
  }
}

If nixscp is not on the tool's PATH, use the full path, for example /usr/bin/nixscp, the AppImage file, or C:\Program Files\NixSCP\nixscp.exe.

Then, in NixSCP, switch on Agent Access... for the sites the agent may use. NixSCP must be running, with saved passwords encrypted (a master password or the NixSCP Pro password). See the requirements.

Tools

ToolArgumentsResult
list_sitesnoneThe sites the agent may use: name, host, user, port, permissions, approval (ask or none)
run_commandsite, command; optional stdin, max_output_bytes (default 100 KiB, 1 KiB to 2 MiB per stream)exit_code, stdout, stderr, truncated
download_filesite, remote_path, local_path (a file or an existing folder)Where the file was saved and its size
upload_filesite, local_path; optional remote_path (default: home folder)The uploaded size

A non-zero exit code of a remote command is a normal result. NixSCP errors, such as a command refused by the site's rules, a denied approval or a failed connection, come back as tool errors with the reason. For folders, the agent archives them with run_command (tar czf /tmp/site.tar.gz /var/www/site) and downloads the archive. Interactive shells and tunnels are only available through the command line.

Protocol details

  • JSON-RPC 2.0 over standard input and output, one message per line.
  • Protocol versions 2025-06-18, 2025-03-26 and 2024-11-05.
  • Methods initialize, ping, tools/list and tools/call; the tool list does not change.
  • The server's instructions tell the model to call list_sites first and to use site names exactly as listed.

Approval from your desktop

On sites set to Ask me each time, each tool call waits until you allow it in NixSCP (once, for 1 hour, for 24 hours or always) or deny it. Combined with command rules and the read-only preset, this keeps an AI agent on a short leash on production servers, while it still does the legwork.

Questions or problems? See the FAQ, open an issue on GitHub or write to hello@codewizdev.com.