@iflow-mcp/mcp-ssh-manager
Version:
MCP SSH Manager: Model Context Protocol server for SSH remote server management. Control SSH connections from Claude Code and OpenAI Codex - execute commands, transfer files, database operations, backups, health monitoring, and DevOps automation. NEW: Too
474 lines (334 loc) • 12.5 kB
Markdown
# Tool Management Guide
## Overview
MCP SSH Manager provides **37 tools** organized into **6 functional groups**. You can enable or disable tool groups to customize your experience and reduce context usage in Claude Code.
### Why Manage Tools?
- **Reduce Context Usage**: By default, all 37 tools consume ~43.5k tokens in Claude Code. Minimal mode uses only ~3.5k tokens (92% reduction)
- **Fewer Approval Prompts**: Only enabled tools require approval in Claude Code
- **Faster Loading**: Less tools mean faster MCP server startup
- **Cleaner Interface**: Only see the tools you actually use
## Quick Start
### View Current Configuration
```bash
ssh-manager tools list
```
### Interactive Configuration Wizard
```bash
ssh-manager tools configure
```
Choose from three modes:
1. **All tools** (37 tools) - Full feature set, recommended for most users
2. **Minimal** (5 tools) - Only core operations, maximum efficiency
3. **Custom** - Pick which groups to enable
### Enable/Disable Specific Groups
```bash
# Enable a group
ssh-manager tools enable monitoring
# Disable a group
ssh-manager tools disable backup
```
### Reset to Defaults
```bash
ssh-manager tools reset
```
### Export Auto-Approval Configuration
```bash
ssh-manager tools export-claude
```
This generates configuration for Claude Code to auto-approve your enabled tools.
## Tool Groups
### Core (5 tools) ✨ Always Enabled
Essential SSH operations for basic functionality:
- `ssh_list_servers` - List all configured SSH servers
- `ssh_execute` - Execute commands on remote servers
- `ssh_upload` - Upload files to remote servers
- `ssh_download` - Download files from remote servers
- `ssh_sync` - Bidirectional file synchronization with rsync
**When to use**: Always enabled. These are the minimum tools needed for SSH operations.
### Sessions (4 tools)
Persistent SSH session management:
- `ssh_session_start` - Start a persistent SSH session
- `ssh_session_send` - Send command to an existing session
- `ssh_session_list` - List all active sessions
- `ssh_session_close` - Close a persistent session
**When to use**: Enable if you need to maintain state across multiple commands or run interactive sessions.
### Monitoring (6 tools)
System health checks and monitoring:
- `ssh_health_check` - Comprehensive server health check (CPU, RAM, disk, network)
- `ssh_service_status` - Check status of services (nginx, mysql, docker, etc.)
- `ssh_process_manager` - List, monitor, or kill processes
- `ssh_monitor` - Real-time system resource monitoring
- `ssh_tail` - Tail log files in real-time
- `ssh_alert_setup` - Configure health monitoring alerts and thresholds
**When to use**: Enable for server administration, DevOps work, or troubleshooting.
### Backup (4 tools)
Automated backup and restore:
- `ssh_backup_create` - Create database or file backups
- `ssh_backup_list` - List all available backups
- `ssh_backup_restore` - Restore from previous backups
- `ssh_backup_schedule` - Schedule automatic backups using cron
**Supports**: MySQL, PostgreSQL, MongoDB, files
**When to use**: Enable for database administration or when managing production servers.
### Database (4 tools)
Database operations:
- `ssh_db_dump` - Create database dumps
- `ssh_db_import` - Import SQL dumps or restore databases
- `ssh_db_list` - List databases or tables/collections
- `ssh_db_query` - Execute read-only SELECT queries
**Supports**: MySQL, PostgreSQL, MongoDB
**When to use**: Enable for database administration or data migration tasks.
### Advanced (14 tools)
Advanced features for power users:
- `ssh_deploy` - Smart deployment with automatic permission handling
- `ssh_execute_sudo` - Execute commands with sudo privileges
- `ssh_alias` - Manage server aliases (shortcuts)
- `ssh_command_alias` - Manage command aliases
- `ssh_hooks` - Automation hooks system
- `ssh_profile` - Profile management
- `ssh_connection_status` - Connection management and pooling
- `ssh_tunnel_create` - Create SSH tunnels (local/remote/SOCKS)
- `ssh_tunnel_list` - List active tunnels
- `ssh_tunnel_close` - Close SSH tunnels
- `ssh_key_manage` - SSH host key management
- `ssh_execute_group` - Execute commands on server groups
- `ssh_group_manage` - Manage server groups
- `ssh_history` - View command history
**When to use**: Enable for advanced automation, deployment workflows, or managing multiple servers.
## Configuration Modes
### All Tools Mode
```json
{
"mode": "all",
"groups": {
"core": { "enabled": true },
"sessions": { "enabled": true },
"monitoring": { "enabled": true },
"backup": { "enabled": true },
"database": { "enabled": true },
"advanced": { "enabled": true }
}
}
```
- **Enabled tools**: 37/37
- **Context usage**: ~43.5k tokens
- **Best for**: Users who need all features
### Minimal Mode
```json
{
"mode": "minimal",
"groups": {
"core": { "enabled": true },
"sessions": { "enabled": false },
"monitoring": { "enabled": false },
"backup": { "enabled": false },
"database": { "enabled": false },
"advanced": { "enabled": false }
}
}
```
- **Enabled tools**: 5/37
- **Context usage**: ~3.5k tokens
- **Context savings**: 92% reduction (~40k tokens saved)
- **Best for**: Simple SSH operations, file transfers, basic command execution
### Custom Mode
```json
{
"mode": "custom",
"groups": {
"core": { "enabled": true },
"sessions": { "enabled": true },
"monitoring": { "enabled": true },
"backup": { "enabled": false },
"database": { "enabled": false },
"advanced": { "enabled": false }
}
}
```
- **Enabled tools**: Custom (5-37 tools)
- **Context usage**: Varies based on selection
- **Best for**: Tailoring to specific workflows
## Configuration File
### Location
- **User-global**: `~/.ssh-manager/tools-config.json`
### Structure
```json
{
"version": "1.0",
"mode": "minimal|all|custom",
"groups": {
"core": { "enabled": true },
"sessions": { "enabled": false },
"monitoring": { "enabled": false },
"backup": { "enabled": false },
"database": { "enabled": false },
"advanced": { "enabled": false }
},
"tools": {
"ssh_session_start": true // Individual tool override
},
"_comment": "Tool configuration for MCP SSH Manager"
}
```
### Individual Tool Overrides
You can override group settings for specific tools:
```json
{
"mode": "minimal",
"groups": {
"sessions": { "enabled": false }
},
"tools": {
"ssh_session_start": true // Enable this tool despite group being disabled
}
}
```
## Use Cases
### Scenario 1: Web Developer (Basic SSH)
**Need**: Upload files, run build commands, restart services
**Recommended**: Minimal mode + monitoring
```bash
ssh-manager tools configure # Choose "2) Minimal"
ssh-manager tools enable monitoring
```
**Result**: 11 tools (5 core + 6 monitoring) = ~7k tokens
### Scenario 2: DevOps Engineer
**Need**: Full server management, monitoring, backups
**Recommended**: All tools mode
```bash
ssh-manager tools configure # Choose "1) All tools"
```
**Result**: 37 tools = ~43.5k tokens
### Scenario 3: Database Administrator
**Need**: Database operations, backups, monitoring
**Recommended**: Custom mode
```bash
ssh-manager tools configure # Choose "3) Custom"
# Enable: monitoring, backup, database
```
**Result**: 19 tools (5 core + 6 monitoring + 4 backup + 4 database) = ~15k tokens
### Scenario 4: Security-Conscious User
**Need**: Minimal attack surface, only essential tools
**Recommended**: Minimal mode only
```bash
ssh-manager tools configure # Choose "2) Minimal"
```
**Result**: 5 tools = ~3.5k tokens (minimum possible)
## Claude Code Integration
### Auto-Approval Configuration
After configuring your tools, export the auto-approval configuration:
```bash
ssh-manager tools export-claude
```
This generates a JSON snippet like:
```json
{
"autoApprove": {
"tools": [
"mcp__ssh-manager__ssh_list_servers",
"mcp__ssh-manager__ssh_execute",
"mcp__ssh-manager__ssh_upload",
"mcp__ssh-manager__ssh_download",
"mcp__ssh-manager__ssh_sync"
]
}
}
```
### Adding to Claude Code Config
1. Open `~/.config/claude-code/claude_code_config.json`
2. Add or merge the `autoApprove` section
3. Save and restart Claude Code
Example complete config:
```json
{
"mcpServers": {
"ssh-manager": {
"command": "node",
"args": ["/absolute/path/to/mcp-ssh-manager/src/index.js"]
}
},
"autoApprove": {
"tools": [
"mcp__ssh-manager__ssh_list_servers",
"mcp__ssh-manager__ssh_execute",
"mcp__ssh-manager__ssh_upload",
"mcp__ssh-manager__ssh_download",
"mcp__ssh-manager__ssh_sync"
]
}
}
```
## Troubleshooting
### Tools Not Disabled After Configuration
**Cause**: MCP server is still running with old configuration
**Solution**: Restart Claude Code or run `claude mcp restart`
### Config File Not Found
**Cause**: No configuration file exists yet
**Solution**: Run `ssh-manager tools configure` to create one
### Can't Disable Core Group
**Cause**: Core tools are required for basic functionality
**Solution**: Core group cannot be disabled. Consider minimal mode if you want the absolute minimum tools.
### Changes Not Reflected in Claude Code
**Cause**: Claude Code caches MCP server configuration
**Solution**:
1. Restart Claude Code
2. Or use Claude Code's MCP server management commands
3. Verify with `ssh-manager tools list`
## Best Practices
### 1. Start with Minimal, Enable as Needed
Begin with minimal mode and enable groups as you discover you need them:
```bash
ssh-manager tools configure # Choose minimal
# ... later when you need monitoring ...
ssh-manager tools enable monitoring
```
### 2. Use Tool List Regularly
Check what's enabled before starting work:
```bash
ssh-manager tools list
```
### 3. Different Configs for Different Projects
While MCP SSH Manager uses a single user-global config, you can:
- Create shell aliases for different profiles
- Manually switch configs for different projects
- Use the CLI to quickly enable/disable groups
### 4. Export Auto-Approval After Changes
Whenever you modify tool configuration, update your Claude Code auto-approval:
```bash
ssh-manager tools enable backup
ssh-manager tools export-claude
# Copy the output to claude_code_config.json
```
### 5. Document Your Configuration
Add comments to your config file to remember why you enabled specific groups:
```json
{
"_comment": "Custom config for web development projects. Monitoring enabled for debugging deployment issues. Backup disabled as we use external backup solutions."
}
```
## FAQ
### Q: Will existing users see any changes?
**A**: No. If no configuration file exists, all 37 tools are enabled by default (current behavior).
### Q: Can I enable individual tools without enabling the whole group?
**A**: Yes! Use the `tools` object in the config file for individual overrides.
### Q: What happens to new tools in future updates?
**A**: New tools default to enabled unless you've explicitly disabled their group.
### Q: Can I have different configs for different servers?
**A**: Currently, tool configuration is user-global. Server-specific tool configs may be added in a future version.
### Q: Does this affect the Node.js API?
**A**: Only if you're using the MCP server. Direct use of the Node.js SSH Manager class is unaffected.
### Q: How much does minimal mode actually save?
**A**: Minimal mode (5 tools) uses ~3.5k tokens vs all tools (37 tools) at ~43.5k tokens. That's a **92% reduction** or **~40k tokens saved**.
## Command Reference
| Command | Description |
|---------|-------------|
| `ssh-manager tools list` | Show all tools and their current status |
| `ssh-manager tools configure` | Interactive configuration wizard |
| `ssh-manager tools enable <group>` | Enable a tool group |
| `ssh-manager tools disable <group>` | Disable a tool group |
| `ssh-manager tools reset` | Reset to defaults (all tools enabled) |
| `ssh-manager tools show` | Display raw configuration file |
| `ssh-manager tools export-claude` | Generate Claude Code auto-approval config |
## See Also
- [README.md](../README.md) - Main project documentation
- [CLAUDE.md](../CLAUDE.md) - Instructions for Claude Code AI
- [Tool Registry Source](../src/tool-registry.js) - Tool group definitions
- [Config Manager Source](../src/tool-config-manager.js) - Configuration logic