MCP server for multi-server SSH management
## SSH Manager MCP Server: Multi-Host Connection Management The **SSH Manager MCP Server** provides advanced SSH connection management for Google Antigravity, enabling organized multi-host access with connection profiles, credential management, and connection pooling. ### Why SSH Manager MCP? - **Connection Profiles**: Store and organize connections to multiple servers with named profiles - **Credential Management**: Securely store and retrieve SSH credentials and key files - **Connection Pooling**: Maintain persistent connections for faster command execution - **Group Operations**: Execute commands across server groups simultaneously - **Jump Host Support**: Configure and use bastion/jump hosts for secure access ### Key Features #### 1. Profile Management ```python # Create a connection profile await mcp.create_profile( name="production-web", host="web.example.com", username="deploy", key_file="~/.ssh/deploy_key", port=22, tags=["production", "web"] ) # List profiles profiles = await mcp.list_profiles() for profile in profiles: print(f"{profile['name']}: {profile['username']}@{profile['host']}") ``` #### 2. Quick Connect ```python # Connect using profile name session = await mcp.connect_profile(name="production-web") # Execute commands result = await mcp.run( profile="production-web", command="systemctl status nginx" ) print(result["stdout"]) ``` #### 3. Group Execution ```python # Execute on all servers with tag results = await mcp.run_group( tag="production", command="uptime" ) for host, result in results.items(): print(f"{host}: {result['stdout'].strip()}") # Parallel file upload await mcp.upload_group( tag="web", local_path="./config.json", remote_path="/etc/app/config.json" ) ``` #### 4. Jump Host Configuration ```python # Configure jump host access await mcp.create_profile( name="internal-db", host="10.0.1.50", username="admin", jump_host="bastion.example.com", jump_user="jump-user" ) # Connect through jump host result = await mcp.run( profile="internal-db", command="psql --version" ) ``` ### Configuration ```json { "mcpServers": { "ssh-manager": { "command": "npx", "args": ["-y", "@anthropic/mcp-ssh-manager"], "env": { "SSH_PROFILES_PATH": "~/.config/ssh-manager/profiles.json", "SSH_DEFAULT_KEY": "~/.ssh/id_rsa", "SSH_CONNECTION_TIMEOUT": "30", "SSH_POOL_SIZE": "10" } } } } ``` ### Use Cases **Multi-Environment Management**: Organize connections to development, staging, and production servers with tagged profiles. **Fleet Management**: Execute maintenance commands across dozens of servers simultaneously with group operations. **Secure Access Patterns**: Configure complex access patterns using jump hosts and proxy chains. **Team Onboarding**: Share connection profiles (without credentials) for consistent team access patterns. The SSH Manager MCP enables organized multi-host SSH management within your development environment.
{
"mcpServers": {
"ssh-manager": {
"mcpServers": {
"ssh-manager": {
"args": [
"-y",
"mcp-ssh-manager"
],
"command": "npx"
}
}
}
}
}