
Strumento CLI per ispezionare e gestire i servizi in ascolto sulle porte di localhost
Sonar mostra tutto ciò che è in ascolto su localhost e lo mette in ordine: ogni porta
appartiene a un gruppo — normalmente il repository da cui è stato avviato — e
all'interno di quel gruppo a un servizio con un nome. Avvia i tuoi server di sviluppo con
sonar start e l'intero progetto diventa un'unica cosa che puoi elencare come un albero,
attendere, seguire e fermare con un singolo comando. Anche i container Docker, i progetti
Compose e i processi avviati manualmente vengono rilevati, senza alcuna
configurazione.```
$ sonar list --tree
my-app (3 ports, running) ~/code/my-app
├─ 5432 db postgres:17 http://localhost:5432
├─ 5173 frontend vite (v5.4) http://localhost:5173
└─ 8000 api uvicorn app:app http://localhost:8000
ungrouped (1 port)
└─ 3000 next-server (v16.1.6) http://localhost:3000
## Installazione
### Homebrew (macOS / Linux)```sh
brew install raskrebs/sonar/sonar
Homebrew 6 rifiuta le formule da tap di terze parti finché non ti fidi del tap una volta
(Error: Refusing to load formula raskrebs/sonar/sonar from untrusted tap):```sh
brew trust raskrebs/sonar
### Script di installazione```sh
curl -sfL https://raw.githubusercontent.com/raskrebs/sonar/main/scripts/install.sh | bash
Scarica l'ultimo binario in ~/.local/bin e lo aggiunge al tuo PATH se necessario. Riavvia il terminale o esegui source ~/.zshrc.
Su Windows (PowerShell):```powershell irm https://raw.githubusercontent.com/raskrebs/sonar/main/scripts/install.ps1 | iex
Posizione di installazione personalizzata:```sh
curl -sfL https://raw.githubusercontent.com/raskrebs/sonar/main/scripts/install.sh | SONAR_INSTALL_DIR=/usr/local/bin bash
Installa una versione specifica:```sh curl -sfL https://raw.githubusercontent.com/raskrebs/sonar/main/scripts/install.sh | SONAR_VERSION=vX.Y.Z bash
| `-s` | `--server` | `SERVER` | `http://localhost:8080` | URL del server MCP |
| `-t` | `--token` | `TOKEN` | `None` | Token di autenticazione per il server MCP |
| `-c` | `--config` | `CONFIG` | `None` | File di configurazione JSON |
| `-v` | `--verbose` | `FLAG` | `False` | Abilita il logging dettagliato |
| `-d` | `--debug` | `FLAG` | `False` | Abilita il logging di debug |
| `-h` | `--help` | `FLAG` | `None` | Mostra il messaggio di aiuto ed esce |
### Esempi di Utilizzo
```bash
# Avvia il server MCP con trasporto stdio (predefinito)
python -m mcp_server
# Avvia il server MCP con trasporto SSE sulla porta 8080
python -m mcp_server --transport sse --port 8080
# Avvia il server MCP con trasporto streamable-http
python -m mcp_server --transport streamable-http --host 0.0.0.0 --port 8080
# Avvia il client MCP interattivo
python -m mcp_client
# Connettiti a un server MCP remoto
python -m mcp_client --server http://remote-server:8080 --token your-token
# Esegui il client con un file di configurazione
python -m mcp_client --config config.json
Il server MCP supporta la configurazione tramite variabili d'ambiente:
# Imposta l'host e la porta del server
export MCP_HOST=0.0.0.0
export MCP_PORT=8080
# Imposta il livello di logging
export MCP_LOG_LEVEL=DEBUG
# Abilita il logging su file
export MCP_LOG_FILE=/path/to/mcp.log
Aggiungi quanto segue al tuo file di configurazione di Claude Desktop (claude_desktop_config.json):
{
"mcpServers": {
"ida-pro": {
"command": "python",
"args": ["-m", "mcp_server"],
"env": {
"IDA_PATH": "/path/to/ida"
}
}
}
}
Il server MCP può essere utilizzato con qualsiasi client compatibile con MCP. Consulta la documentazione del tuo client per istruzioni di configurazione specifiche.
# Clona il repository
git clone https://github.com/yourusername/ida-pro-mcp.git
cd ida-pro-mcp
# Crea un ambiente virtuale
python -m venv venv
source venv/bin/activate # Su Windows: venv\Scripts\activate
# Installa le dipendenze di sviluppo
pip install -r requirements-dev.txt
# Installa gli hook di pre-commit
pre-commit install
# Esegui tutti i test
pytest
# Esegui i test con copertura
pytest --cov=mcp_server --cov=mcp_client
# Esegui test specifici
pytest tests/test_server.py -v
Questo progetto utilizza:
# Formatta il codice
black .
isort .
# Esegui il linting
flake8 .
# Esegui il controllo dei tipi
mypy .
IDA_PATH sia impostata correttamenteAbilita il logging di debug per ottenere informazioni più dettagliate:
# Abilita il logging di debug
python -m mcp_server --debug
# Oppure imposta la variabile d'ambiente
export MCP_LOG_LEVEL=DEBUG
python -m mcp_server
Se riscontri problemi:
Accogliamo con piacere i contributi! Consulta CONTRIBUTING.md per le linee guida.
git checkout -b feature/amazing-feature)git commit -m 'Add some amazing feature')git push origin feature/amazing-feature)Questo progetto è rilasciato sotto la Licenza MIT - consulta il file LICENSE per i dettagli.