Spec Driven Development
MCP Server that facilitates spec-driven development workflows, not just Vibe Coding.
Description from the maker (original English)
MCP server for SSH remote server management with SSH agent authentication support.
These three are never merged into one score: opinions, measurements and popularity are different things.
We have not written a plain-language summary for this one yet. Below are the facts we read from the registry.
Pick the AI app you use, then copy the settings.
SSH_HOST, SSH_USERNAME, SSH_PORT, SSH_AUTH_SOCK, SSH_PRIVATE_KEY_PATH, SSH_PASSPHRASE, SSH_TIMEOUT, SSH_COMMAND_TIMEOUT, ENABLED_TOOLGROUPS, SKIP_HEALTH_CHECKS, HEALTH_CHECK_TIMEOUTValues marked secret are keys to your account. Never share them or paste them into a chat.
You need
Which app do you use?
Pick your app above. We remember it, so next time the button says “Install in …”.
Open Claude Desktop → Settings → Developer → Edit Config, and paste this into claude_desktop_config.json
{
"mcpServers": {
"ssh": {
"command": "npx",
"args": [
"-y",
"ssh-agent-mcp-server"
],
"env": {
"SSH_HOST": "your-value",
"SSH_USERNAME": "your-value",
"SSH_PORT": "your-value",
"SSH_AUTH_SOCK": "your-value",
"SSH_PRIVATE_KEY_PATH": "your-value",
"SSH_PASSPHRASE": "your-value",
"SSH_TIMEOUT": "your-value",
"SSH_COMMAND_TIMEOUT": "your-value",
"ENABLED_TOOLGROUPS": "your-value",
"SKIP_HEALTH_CHECKS": "your-value",
"HEALTH_CHECK_TIMEOUT": "your-value"
}
}
}
}Run this in your terminal
claude mcp add ssh --env SSH_HOST=your-value --env SSH_USERNAME=your-value --env SSH_PORT=your-value --env SSH_AUTH_SOCK=your-value --env SSH_PRIVATE_KEY_PATH=your-value --env SSH_PASSPHRASE=your-value --env SSH_TIMEOUT=your-value --env SSH_COMMAND_TIMEOUT=your-value --env ENABLED_TOOLGROUPS=your-value --env SKIP_HEALTH_CHECKS=your-value --env HEALTH_CHECK_TIMEOUT=your-value -- npx -y ssh-agent-mcp-serverFill in the empty values before running it.
Paste into .cursor/mcp.json in your project, or ~/.cursor/mcp.json
{
"mcpServers": {
"ssh": {
"command": "npx",
"args": [
"-y",
"ssh-agent-mcp-server"
],
"env": {
"SSH_HOST": "your-value",
"SSH_USERNAME": "your-value",
"SSH_PORT": "your-value",
"SSH_AUTH_SOCK": "your-value",
"SSH_PRIVATE_KEY_PATH": "your-value",
"SSH_PASSPHRASE": "your-value",
"SSH_TIMEOUT": "your-value",
"SSH_COMMAND_TIMEOUT": "your-value",
"ENABLED_TOOLGROUPS": "your-value",
"SKIP_HEALTH_CHECKS": "your-value",
"HEALTH_CHECK_TIMEOUT": "your-value"
}
}
}
}Your browser asks to open the app, then the app shows the settings and asks you to confirm. Key values are left empty for you to fill in.
Paste into .vscode/mcp.json in your project
{
"servers": {
"ssh": {
"type": "stdio",
"command": "npx",
"args": [
"-y",
"ssh-agent-mcp-server"
],
"env": {
"SSH_HOST": "your-value",
"SSH_USERNAME": "your-value",
"SSH_PORT": "your-value",
"SSH_AUTH_SOCK": "your-value",
"SSH_PRIVATE_KEY_PATH": "your-value",
"SSH_PASSPHRASE": "your-value",
"SSH_TIMEOUT": "your-value",
"SSH_COMMAND_TIMEOUT": "your-value",
"ENABLED_TOOLGROUPS": "your-value",
"SKIP_HEALTH_CHECKS": "your-value",
"HEALTH_CHECK_TIMEOUT": "your-value"
}
}
}
}Your browser asks to open the app, then the app shows the settings and asks you to confirm. Key values are left empty for you to fill in.
This one runs on your computer, and ChatGPT can only connect to servers on the internet. Pick another app.
Your choice stays on this device in a cookie; no account needed.
SSH_PORT envSSH_AUTH_SOCK envSSH_PRIVATE_KEY_PATH envSSH_TIMEOUT envSSH_COMMAND_TIMEOUT envENABLED_TOOLGROUPS envSKIP_HEALTH_CHECKS envHEALTH_CHECK_TIMEOUT envThese settings are generated from the maker’s registry entry. If the README says otherwise, follow the README.
Runs on your computer; the tool list appears in your AI app after you install it.
We check information anyone can see; we have not read the code. Checks that do not apply are left out of the count. · Checked Nov 6, 2026
The registry name was verified against the domain pulsemcp.com (the registry checks domain ownership)
We have not read this repo from GitHub yet
We have not read this repo from GitHub yet
This one runs on your computer; there is no internet endpoint
Runs on your computer and uses local settings instead
Runs on your computer; we can only read tool lists from internet endpoints
Compared with every active server in this category in the registry. Stars count only when the publisher owns the repo.
It passed 1 of 1 applicable basic checks. We have not read the code. Before adding a key or token, see what access the server asks for and use a key with only the permissions you need.
You need to fill in: SSH_HOST, SSH_USERNAME, SSH_PASSPHRASE
It runs on your computer. Your AI app starts it when needed, and data does not pass through the maker’s servers (unless it calls an online service itself).
The GitHub repo last changed –, and the latest version (0.1.5) reached the registry 5 months ago.
Apps that support MCP, such as Claude Desktop, Claude Code, Cursor and VS Code. You also need Node.js on your computer.
In the same category: Spec Driven Development, Remote Desktop Commander, Symantec Cloud DLP AIops
Servers in the same category from other makers, sorted by stars.
Reading a card:★ GitHub starsiThree pillars: reviews · checks · usageiUpdated = latest version published to the registryi
MCP Server that facilitates spec-driven development workflows, not just Vibe Coding.
Remote Desktop Commander: use files, terminal and processes on your own computers from any AI app.
Governed Symantec Cloud DLP — 14 MCP tools, read-only with audit.
Copied from the maker’s repo as written. PopNx MCP has not reviewed or endorsed it. HTML, images and scripts are removed. Links lead off this site.
An MCP (Model Context Protocol) server for SSH remote server management with SSH agent authentication support.
This server solves a common problem with SSH MCP servers: support for passphrase-protected SSH keys. By using SSH agent authentication, you can securely connect to remote servers without exposing your key passphrase.
The server supports multiple authentication methods and will use them in this order:
SSH_AUTH_SOCK is set or auto-detectedSSH_PRIVATE_KEY_PATH is setBoth methods can be configured simultaneously. If SSH agent authentication is available, it takes priority. The private key file method is used as a fallback or when the agent is not available.
| Tool | Group | Description |
|---|---|---|
ssh_connection_info | readonly, write, admin | Get configured SSH connection information |
ssh_list_directory | readonly, write, admin | List directory contents on remote server |
ssh_download | readonly, write, admin | Download file from remote server via SFTP |
ssh_upload | write, admin | Upload file to remote server via SFTP |
ssh_execute | admin | Execute shell command on remote server |
| Resource | Description |
|---|---|
ssh://config | SSH connection configuration and status (for debugging) |
Control which tools are available via the ENABLED_TOOLGROUPS environment variable:
| Group | Description |
|---|---|
readonly | Safe operations (connection info, list, download) |
write | File modifications (upload) |
admin | Full access including command execution |
Examples:
ENABLED_TOOLGROUPS="readonly" - Only allow browsing and downloadsENABLED_TOOLGROUPS="readonly,write" - Allow file transfers but no command executionThe server performs an SSH connection health check on startup to verify that the configured credentials and host are valid. This provides immediate feedback if there are configuration issues, rather than discovering them during workflow.
Benefits:
Configuration:
SKIP_HEALTH_CHECKS=true - Skip the health check (useful for lazy connection scenarios)HEALTH_CHECK_TIMEOUT=10000 - Customize the health check timeout (default: 10 seconds)Error hints provided for:
npx ssh-agent-mcp-server
Or install globally:
npm install -g ssh-agent-mcp-server
| Variable | Required | Description | Default |
|---|---|---|---|
SSH_HOST | Yes | Hostname or IP address of the SSH server | - |
SSH_USERNAME | Yes | Username for SSH authentication | - |
SSH_PORT | No | SSH port number | 22 |
SSH_AUTH_SOCK | No | Path to SSH agent socket | Auto-detected |
SSH_PRIVATE_KEY_PATH | No | Path to private key file | - |
SSH_PASSPHRASE | No | Passphrase for encrypted private key | - |
SSH_TIMEOUT | No | Connection timeout in milliseconds | 30000 |
SSH_COMMAND_TIMEOUT | No | Default command activity timeout in milliseconds | 60000 |
ENABLED_TOOLGROUPS | No | Comma-separated tool groups | All enabled |
SKIP_HEALTH_CHECKS | No | Skip SSH connection health check on startup | false |
HEALTH_CHECK_TIMEOUT | No | Health check timeout in milliseconds | 10000 |
macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
Windows: %APPDATA%\Claude\claude_desktop_config.json
{
"mcpServers": { "ssh": { "command": "npx", "args": ["-y", "ssh-agent-mcp-server"], "env": { "SSH_HOST": "192.168.1.100", "SSH_USERNAME": "deploy", "SSH_AUTH_SOCK": "${SSH_AUTH_SOCK}" } } } }
Restart Claude Desktop and you should be ready to go!
SSH agent authentication is the recommended method for passphrase-protected keys:
# Check if agent is running
ssh-add -l
ssh-add ~/.ssh/id_ed25519
SSH_AUTH_SOCK environment variable to the MCP serverThe server will automatically use the agent for authentication, and your passphrase-protected key stays secure in the agent.
ssh-add$SSH_AUTH_SOCKssh2 libraryThis is more secure than:
Execute a command on the remote server.
Parameters:
command (required): Shell command to executecwd (optional): Working directorytimeout (optional): Activity timeout in milliseconds (default: 60000 or SSH_COMMAND_TIMEOUT)Activity-based Timeout:
The timeout is activity-based rather than absolute. It resets whenever stdout or stderr output is received from the command. This allows long-running commands that produce periodic output (like builds, deployments, or claude -p commands) to complete successfully, while still timing out commands that hang with no activity.
For commands with delayed initial output (10-30+ seconds before any output), you can:
SSH_COMMAND_TIMEOUT environment variabletimeout parameter for specific commandsExample:
{
"command": "ls -la /var/log", "cwd": "/home/user" }
Example with extended timeout for long-running commands:
{
"command": "npm run build", "timeout": 300000 }
Returns: JSON with stdout, stderr, and exit code
Upload a file to the remote server via SFTP.
Parameters:
localPath (required): Absolute path to local fileremotePath (required): Destination path on serverDownload a file from the remote server via SFTP.
Parameters:
remotePath (required): Path on remote serverlocalPath (required): Local destination pathList directory contents on the remote server.
Parameters:
path (required): Directory path to listReturns: JSON array with filename, type, size, permissions, modified time
Get information about the configured SSH connection.
Returns: JSON with host, port, username, and authentication details
# Install dependencies
npm run install-all
npm run build
npm run dev
npm test npm run test:integration
MIT