MIGRATION.md•3.06 kB
# Migration Guide: Upgrading to Multi-Transport Support (v0.5.0)
## Overview
Pentest MCP v0.5.0 introduces multi-transport support while maintaining full backward compatibility. Your existing STDIO-based setup will continue to work without any changes.
## What's New
- Support for HTTP and SSE transports in addition to STDIO
- Ability to run the server over the network
- Better Docker compatibility with network transports
- Multiple deployment options
## For Existing Users
### No Changes Required
If you're using the default STDIO transport (subprocess mode), **no changes are required**. Your existing configuration will continue to work:
```json
{
"servers": [
{
"name": "pentest-mcp",
"command": "pentest-mcp"
}
]
}
```
### Upgrading
1. Update to the latest version:
```bash
npm update -g pentest-mcp
# or for local installation
cd /path/to/pentest-mcp
git pull
npm install
npm run build
```
2. The server will default to STDIO mode, maintaining your current workflow
## Trying Network Transports
### HTTP Transport (Recommended for Docker)
1. Start the server with HTTP transport:
```bash
MCP_TRANSPORT=http pentest-mcp
# or with Docker
docker run -p 8000:8000 -e MCP_TRANSPORT=http pentest-mcp:latest
```
2. Configure your MCP client:
```json
{
"servers": [
{
"name": "pentest-mcp",
"url": "http://localhost:8000/mcp"
}
]
}
```
### Benefits of Network Transports
- **Docker-friendly**: No need for stdin/stdout forwarding
- **Remote access**: Can run on a different machine
- **Multiple clients**: Support concurrent connections
- **Health monitoring**: Built-in health check endpoints
## Environment Variables
New optional environment variables:
- `MCP_TRANSPORT`: Transport type (stdio, http, sse)
- `MCP_SERVER_HOST`: Bind address for network transports
- `MCP_SERVER_PORT`: Port for network transports
## Docker Compose Changes
New profile-based approach:
```bash
# Run specific transport
docker-compose --profile stdio up # Default
docker-compose --profile http up # Network mode
docker-compose --profile sse up # Legacy SSE
# Or use the flexible service
docker-compose up pentest-mcp # Uses .env configuration
```
## Troubleshooting
### Issue: "Cannot find module express"
**Solution**: Run `npm install` to install the new express dependency
### Issue: Server not accessible over network
**Solution**: Check firewall rules and ensure you're using the correct transport:
```bash
MCP_TRANSPORT=http npm start
```
### Issue: Docker container exits immediately
**Solution**: For STDIO mode, ensure you're using `-it` flags:
```bash
docker run -it pentest-mcp:latest
```
## Questions?
- The default behavior hasn't changed - STDIO still works as before
- Network transports are optional features for advanced use cases
- All existing tools and commands work identically across all transports
For issues or questions, please visit: https://github.com/dmontgomery40/pentest-mcp/issues