# Production Deployment Checklist
Use this checklist to ensure proper deployment of the Pentest MCP Server.
---
## Pre-Deployment
### Environment Setup
- [ ] Python 3.10+ installed
- [ ] Pentesting OS accessible
- [ ] SSH access configured (password or key)
- [ ] Network connectivity verified
### Installation
- [ ] Repository cloned
- [ ] Package installed (`pip install -e .`)
- [ ] `.env` file created and configured
- [ ] Tmux installed on OS (`apt install tmux`)
### Testing
- [ ] All tests pass (`python -m pytest tests/ -v`)
- [ ] SSH connection works
- [ ] Example script runs successfully
---
## Security Checklist
### Credentials
- [ ] `.env` file is NOT committed to git
- [ ] Strong passwords used
- [ ] SSH keys properly secured (600 permissions)
- [ ] System is isolated/sandboxed
### Network
- [ ] System on isolated network
- [ ] Firewall rules configured
- [ ] VPN/tunnel if accessing remotely
- [ ] No public exposure of SSH
### Permissions
- [ ] Limited user access to MCP server
- [ ] User has appropriate permissions
- [ ] Command blocking configured if needed
- [ ] Session limits set appropriately
---
## Configuration
### Required Settings
- [ ] `TARGET_HOST` - Target system IP address
- [ ] `TARGET_PORT` - SSH port (default: 22)
- [ ] `TARGET_USER` - SSH username
- [ ] `TARGET_PASSWORD` or `TARGET_SSH_KEY` - Authentication
### Optional Settings
- [ ] `MAX_SESSIONS` - Session limit (default: 20)
- [ ] `MAX_HEAVY_TASKS` - Concurrent heavy tasks (default: 3)
- [ ] `DEFAULT_TIMEOUT` - Command timeout (default: 300s)
- [ ] `POLL_INTERVAL` - Monitoring interval (default: 1.0s)
---
## Claude Desktop Integration
### Configuration File
- [ ] Locate Claude config file:
- macOS: `~/Library/Application Support/Claude/claude_desktop_config.json`
- Windows: `%APPDATA%\Claude\claude_desktop_config.json`
- Linux: `~/.config/Claude/claude_desktop_config.json`
### Add MCP Server
```json
{
"mcpServers": {
"pentest-mcp": {
"command": "python",
"args": ["-m", "pentest_mcp_server"],
"env": {
"TARGET_HOST": "192.168.1.100",
"TARGET_USER": "kali",
"TARGET_PASSWORD": "your_password"
}
}
}
}
```
### Verification
- [ ] Configuration added
- [ ] Claude Desktop restarted
- [ ] MCP server appears in Claude
- [ ] Test command executed successfully
---
## Post-Deployment
### Verification
- [ ] Create test session
- [ ] Execute simple command (e.g., `whoami`)
- [ ] Verify trigger system works
- [ ] Test session recovery
- [ ] Check system status
### Monitoring
- [ ] Session count tracking
- [ ] Resource usage monitoring
- [ ] Error logging enabled
- [ ] Connection health checks
### Documentation
- [ ] Team trained on usage
- [ ] Examples reviewed
- [ ] Troubleshooting guide accessible
- [ ] Emergency contacts documented
---
## Troubleshooting
### Common Issues
**Connection Failed**
```bash
# Check SSH service
ssh kali@<TARGET_HOST>
service ssh status
```
**Tmux Not Found**
```bash
# Install tmux
ssh kali@<TARGET_HOST>
sudo apt update && sudo apt install tmux
```
**Permission Denied**
```bash
# Check credentials in .env
# Enable password auth in /etc/ssh/sshd_config
PasswordAuthentication yes
service ssh restart
```
**Tests Failing**
```bash
# Run with verbose output
python -m pytest tests/ -v --tb=short
# Check specific test
python -m pytest tests/test_trigger_system.py -v
```
---
## Rollback Plan
If issues occur:
1. **Stop MCP Server**
- Remove from Claude Desktop config
- Restart Claude
2. **Verify System State**
- Check for orphaned sessions: `tmux ls`
- Kill if needed: `tmux kill-server`
3. **Review Logs**
- Check error messages
- Identify root cause
4. **Restore Previous Version**
- Git checkout previous commit
- Reinstall dependencies
- Reconfigure
---
## Maintenance
### Regular Tasks
- [ ] Update dependencies monthly
- [ ] Review session limits
- [ ] Check disk space on your OS
- [ ] Rotate credentials quarterly
- [ ] Update documentation
### Monitoring
- [ ] Active session count
- [ ] Failed connection attempts
- [ ] Resource usage trends
- [ ] Error frequency
---
## Support
### Resources
- **Documentation**: README.md, INSTALL.md
- **Examples**: `examples/` directory
- **Tests**: `tests/` directory
- **Issues**: GitHub Issues
### Getting Help
1. Check documentation
2. Review examples
3. Run tests to isolate issue
4. Open GitHub issue with details
---
## Sign-Off
Deployment completed by: ___________________
Date: ___________________
Verified by: ___________________
Date: ___________________
---
**Deployment Status:** ⬜ Not Started | ⬜ In Progress | ⬜ Complete | ⬜ Verified