Server MCP
Repomix supporta il Model Context Protocol (MCP), permettendo agli assistenti IA di interagire direttamente con la tua codebase. Quando viene eseguito come server MCP, Repomix fornisce strumenti che permettono agli assistenti IA di impacchettare repository locali o remoti per l'analisi senza richiedere la preparazione manuale dei file.
NOTE
Questa è una funzionalità sperimentale che miglioreremo attivamente in base ai feedback degli utenti e all'uso reale
Eseguire Repomix come Server MCP
Per eseguire Repomix come server MCP, usa l'opzione --mcp:
repomix --mcpQuesto avvia Repomix in modalità server MCP, rendendolo disponibile per gli assistenti IA che supportano il Model Context Protocol.
Configurazione dei Server MCP
Per usare Repomix come server MCP con assistenti IA come Claude, devi configurare le impostazioni MCP:
Per VS Code
Puoi installare il server MCP Repomix in VS Code usando uno di questi metodi:
- Usando il badge di installazione:
- Usando la linea di comando:
code --add-mcp '{"name":"repomix","command":"npx","args":["-y","repomix","--mcp"]}'Per VS Code Insiders:
code-insiders --add-mcp '{"name":"repomix","command":"npx","args":["-y","repomix","--mcp"]}'Per Cline (estensione VS Code)
Modifica il file cline_mcp_settings.json:
{
"mcpServers": {
"repomix": {
"command": "npx",
"args": [
"-y",
"repomix",
"--mcp"
]
}
}
}Per Cursor
In Cursor, aggiungi un nuovo server MCP da Cursor Settings > MCP > + Add new global MCP server con una configurazione simile a quella di Cline.
Per Claude Desktop
Modifica il file claude_desktop_config.json con una configurazione simile a quella di Cline.
Per Claude Code
Per configurare Repomix come server MCP in Claude Code, usa il seguente comando:
claude mcp add repomix -- npx -y repomix --mcpIn alternativa, puoi usare i plugin ufficiali Repomix per un'esperienza più comoda. I plugin forniscono comandi in linguaggio naturale e una configurazione più semplice. Consulta la documentazione Plugin Claude Code per i dettagli.
Usare Docker invece di npx
Invece di usare npx, puoi usare Docker per eseguire Repomix come server MCP:
{
"mcpServers": {
"repomix-docker": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"ghcr.io/yamadashy/repomix",
"--mcp"
]
}
}
}Strumenti MCP Disponibili
In modalità server MCP, Repomix fornisce i seguenti strumenti:
pack_codebase
Questo strumento impacchetta una directory di codice locale in un file XML per l'analisi IA. Analizza la struttura della codebase, estrae il contenuto di codice rilevante e genera un report completo che include metriche, albero dei file e contenuto di codice formattato.
Parametri:
directory: (Richiesto) Percorso assoluto alla directory da impacchettarecompress: (Opzionale, predefinito: false) Abilita la compressione Tree-sitter per estrarre le firme di codice essenziali e la struttura mentre rimuove i dettagli di implementazione. Riduce l'utilizzo dei token di circa il 70% preservando il significato semantico. Generalmente non necessario poiché grep_repomix_output permette il recupero incrementale del contenuto. Usa solo quando hai specificamente bisogno del contenuto completo della codebase per repository grandi.includePatterns: (Opzionale) Specifica i file da includere usando pattern fast-glob. Più pattern possono essere separati da virgole (es: "/*.{js,ts}", "src/,docs/**"). Solo i file corrispondenti saranno elaborati.ignorePatterns: (Opzionale) Specifica file aggiuntivi da escludere usando pattern fast-glob. Più pattern possono essere separati da virgole (es: "test/,*.spec.js", "node_modules/,dist/**"). Questi pattern completano .gitignore e le esclusioni integrate.topFilesLength: (Opzionale, predefinito: 10) Numero dei file più grandi per dimensione da mostrare nel riepilogo delle metriche per l'analisi della codebase.
Esempio:
{
"directory": "/path/to/your/project",
"compress": false,
"includePatterns": "src/**/*.ts,**/*.md",
"ignorePatterns": "**/*.log,tmp/",
"topFilesLength": 10
}pack_remote_repository
Questo strumento recupera, clona e impacchetta un repository GitHub in un file XML per l'analisi IA. Clona automaticamente il repository remoto, analizza la sua struttura e genera un report completo.
Parametri:
remote: (Richiesto) URL del repository GitHub o formato utente/repo (es: "yamadashy/repomix", "https://github.com/user/repo", o "https://github.com/user/repo/tree/branch")compress: (Opzionale, predefinito: false) Abilita la compressione Tree-sitter per estrarre le firme di codice essenziali e la struttura mentre rimuove i dettagli di implementazione. Riduce l'utilizzo dei token di circa il 70% preservando il significato semantico. Generalmente non necessario poiché grep_repomix_output permette il recupero incrementale del contenuto. Usa solo quando hai specificamente bisogno del contenuto completo della codebase per repository grandi.includePatterns: (Opzionale) Specifica i file da includere usando pattern fast-glob. Più pattern possono essere separati da virgole (es: "/*.{js,ts}", "src/,docs/**"). Solo i file corrispondenti saranno elaborati.ignorePatterns: (Opzionale) Specifica file aggiuntivi da escludere usando pattern fast-glob. Più pattern possono essere separati da virgole (es: "test/,*.spec.js", "node_modules/,dist/**"). Questi pattern completano .gitignore e le esclusioni integrate.topFilesLength: (Opzionale, predefinito: 10) Numero dei file più grandi per dimensione da mostrare nel riepilogo delle metriche per l'analisi della codebase.
Esempio:
{
"remote": "yamadashy/repomix",
"compress": false,
"includePatterns": "src/**/*.ts,**/*.md",
"ignorePatterns": "**/*.log,tmp/",
"topFilesLength": 10
}read_repomix_output
Questo strumento legge il contenuto di un file di output generato da Repomix. Supporta la lettura parziale con specifica dell'intervallo di righe per file grandi. Questo strumento è progettato per ambienti dove l'accesso diretto al file system è limitato.
Parametri:
outputId: (Richiesto) ID del file di output Repomix da leggerestartLine: (Opzionale) Numero di riga di inizio (basato su 1, incluso). Se non specificato, legge dall'inizio.endLine: (Opzionale) Numero di riga di fine (basato su 1, incluso). Se non specificato, legge fino alla fine.
Funzionalità:
- Progettato specificamente per ambienti basati sul web o applicazioni sandbox
- Recupera il contenuto degli output generati precedentemente usando il loro ID
- Fornisce accesso sicuro alla codebase impacchettata senza richiedere accesso al file system
- Supporta la lettura parziale per file grandi
Esempio:
{
"outputId": "8f7d3b1e2a9c6054",
"startLine": 100,
"endLine": 200
}grep_repomix_output
Questo strumento cerca pattern in un file di output Repomix usando funzionalità simili a grep con la sintassi JavaScript RegExp. Restituisce le righe corrispondenti con righe di contesto opzionali intorno alle corrispondenze.
Parametri:
outputId: (Richiesto) ID del file di output Repomix da cercarepattern: (Richiesto) Pattern di ricerca (sintassi espressione regolare JavaScript RegExp)contextLines: (Opzionale, predefinito: 0) Numero di righe di contesto da mostrare prima e dopo ogni corrispondenza. Sovrascritto da beforeLines/afterLines se specificato.beforeLines: (Opzionale) Numero di righe di contesto da mostrare prima di ogni corrispondenza (come grep -B). Ha priorità su contextLines.afterLines: (Opzionale) Numero di righe di contesto da mostrare dopo ogni corrispondenza (come grep -A). Ha priorità su contextLines.ignoreCase: (Opzionale, predefinito: false) Esegue una corrispondenza case-insensitive
Funzionalità:
- Usa la sintassi JavaScript RegExp per una potente corrispondenza di pattern
- Supporta righe di contesto per una migliore comprensione delle corrispondenze
- Permette controllo separato delle righe di contesto prima/dopo
- Opzioni di ricerca case-sensitive e case-insensitive
Esempio:
{
"outputId": "8f7d3b1e2a9c6054",
"pattern": "function\\s+\\w+\\(",
"contextLines": 3,
"ignoreCase": false
}file_system_read_file e file_system_read_directory
Il server MCP di Repomix fornisce due strumenti per il file system che permettono agli assistenti IA di interagire in sicurezza con il file system locale:
file_system_read_file
- Legge il contenuto dei file dal file system locale usando percorsi assoluti
- Include validazione di sicurezza integrata per rilevare e prevenire l'accesso a file contenenti informazioni sensibili
- Implementa la validazione di sicurezza con Secretlint
- Impedisce l'accesso a file contenenti informazioni sensibili (chiavi API, password, segreti)
- Valida i percorsi assoluti per prevenire attacchi di directory traversal
- Restituisce messaggi di errore chiari per percorsi invalidi e problemi di sicurezza
file_system_read_directory
- Elenca il contenuto di una directory usando un percorso assoluto
- Restituisce una lista formattata che mostra file e sottodirectory con indicatori chiari
- Mostra file e directory con indicatori chiari (
[FILE]o[DIR]) - Fornisce attraversamento sicuro delle directory con gestione appropriata degli errori
- Valida i percorsi e si assicura che siano assoluti
- Utile per esplorare la struttura del progetto e comprendere l'organizzazione della codebase
Entrambi gli strumenti integrano robuste misure di sicurezza:
- Validazione dei percorsi assoluti per prevenire attacchi di directory traversal
- Controlli dei permessi per assicurare diritti di accesso appropriati
- Integrazione con Secretlint per il rilevamento di informazioni sensibili
- Messaggi di errore chiari per un migliore debug e consapevolezza della sicurezza
Esempio:
// Lettura di un file
const fileContent = await tools.file_system_read_file({
path: '/absolute/path/to/file.txt'
});
// Elenco del contenuto di una directory
const dirContent = await tools.file_system_read_directory({
path: '/absolute/path/to/directory'
});Questi strumenti sono particolarmente utili quando gli assistenti IA devono:
- Analizzare file specifici nella codebase
- Navigare nelle strutture delle directory
- Verificare l'esistenza e l'accessibilità dei file
- Assicurare operazioni sicure sul file system
Vantaggi dell'Uso di Repomix come Server MCP
L'uso di Repomix come server MCP offre diversi vantaggi:
- Integrazione diretta: Gli assistenti IA possono analizzare direttamente la tua codebase senza preparazione manuale dei file.
- Workflow efficiente: Semplifica il processo di analisi del codice eliminando la necessità di generare e caricare manualmente i file.
- Output coerente: Garantisce che l'assistente IA riceva la codebase in un formato coerente e ottimizzato.
- Funzionalità avanzate: Sfrutta tutte le funzionalità di Repomix come la compressione del codice, il conteggio dei token e i controlli di sicurezza.
Una volta configurato, il tuo assistente IA può usare direttamente le capacità di Repomix per analizzare le codebase, rendendo i workflow di analisi del codice più efficienti.