cli-mcp
Provides secure execution of terminal commands (PowerShell, CMD, shell) with configurable security policies including command blocking, path restrictions, and timeout.
README
CLI MCP Server
Un server MCP (Model Context Protocol) che supporta l'esecuzione di comandi da terminale sia su PowerShell che CMD, con funzionalità di sicurezza avanzate.
Funzionalità
Strumenti Disponibili
- add - Somma due numeri
- powershell - Esegue comandi PowerShell
- cmd - Esegue comandi CMD
- shell - Esegue comandi shell (auto-rileva il sistema operativo)
- system-info - Mostra informazioni sul sistema
- security-config - Mostra la configurazione di sicurezza corrente
Configurazione di Sicurezza
Il server supporta un sistema di configurazione avanzato per limitare l'accesso e i comandi disponibili.
File di Configurazione
Crea un file config.json nella directory root del progetto per personalizzare la configurazione:
{
"security": {
"allowedPartitions": [
"C:\\Users\\",
"D:\\Projects\\",
"E:\\Development\\"
],
"defaultPath": "C:\\Users\\",
"blockedCommands": [
"rm",
"rmdir",
"del",
"format",
"fdisk",
"diskpart",
"shutdown",
"reboot",
"restart",
"halt",
"poweroff",
"net user",
"net localgroup",
"adduser",
"deluser",
"passwd",
"chpasswd",
"sudo",
"su",
"runas",
"reg delete",
"reg add",
"regedit",
"gpedit",
"sc delete",
"sc create",
"sc config",
"taskkill",
"wmic",
"powercfg",
"bcdedit"
],
"allowedCommandPatterns": [
"^(ls|dir|cd|pwd|echo|cat|type|find|grep|head|tail|sort|wc)\\b",
"^(git|npm|node|python|pip)\\b",
"^(Get-|Set-|New-|Remove-).*(Process|Service|Item|Content|Location)\\b"
],
"maxCommandLength": 500,
"timeoutSeconds": 30,
"allowNetworkCommands": false
}
}
Opzioni di Configurazione
allowedPartitions
- Array di percorsi consentiti per l'esecuzione dei comandi
- Se vuoto, tutti i percorsi sono consentiti
- Esempio:
["C:\\Users\\", "D:\\Projects\\"]
defaultPath
- Percorso predefinito utilizzato quando non viene specificato un
workingDirectory - Default: directory corrente del processo
- Esempio:
"C:\\Users\\"
blockedCommands
- Array di comandi o parole chiave bloccati
- Controlla se il comando contiene queste parole
- Esempio:
["rm", "del", "format", "shutdown"]
allowedCommandPatterns
- Array di pattern regex per comandi consentiti
- Se definito, solo i comandi che corrispondono ai pattern sono permessi
- Esempio:
["^(ls|dir|cd)\\b", "^git\\b"]
maxCommandLength
- Lunghezza massima consentita per i comandi
- Default: 500 caratteri
timeoutSeconds
- Timeout per l'esecuzione dei comandi
- Default: 30 secondi
allowNetworkCommands
- Permette o blocca comandi di rete (curl, wget, ping, etc.)
- Default: false
Esempi di Utilizzo
Configurazione MCP Client
Per configurare un client MCP, usa questa configurazione:
{
"mcpServers": {
"cli-mcp-server": {
"command": "node",
"args": ["path/to/cli-mcp/index.js"],
"cwd": "path/to/cli-mcp",
"env": {
"NODE_ENV": "production"
}
}
}
}
Strumento PowerShell
Esegue comandi PowerShell specifici con controlli di sicurezza.
Parametri:
command(obbligatorio): Comando PowerShell da eseguireworkingDirectory(opzionale): Directory di lavoro per l'esecuzione
Esempio:
{
"command": "Get-Process | Select-Object -First 5",
"workingDirectory": "C:\\Users"
}
Strumento CMD
Esegue comandi CMD specifici con controlli di sicurezza.
Parametri:
command(obbligatorio): Comando CMD da eseguireworkingDirectory(opzionale): Directory di lavoro per l'esecuzione
Esempio:
{
"command": "dir /b",
"workingDirectory": "C:\\Windows"
}
Strumento Shell
Esegue comandi shell con rilevamento automatico del sistema operativo e controlli di sicurezza.
Parametri:
command(obbligatorio): Comando shell da eseguireworkingDirectory(opzionale): Directory di lavoro per l'esecuzioneshell(opzionale): Shell specifico da usare ("auto", "powershell", "cmd", "bash")
Esempio:
{
"command": "ls -la",
"shell": "bash"
}
Strumento Security Config
Mostra la configurazione di sicurezza corrente del server.
Parametri: Nessuno
Sicurezza
- Tutti i comandi hanno un timeout configurabile (default: 30 secondi)
- I comandi PowerShell vengono sanitizzati per evitare injection
- La directory di lavoro può essere specificata e viene controllata
- Sistema di blocco comandi basato su parole chiave
- Controllo accesso partizioni/directory
- Limite lunghezza comandi
- Pattern regex per comandi consentiti
- Blocco opzionale comandi di rete
Utilizzo
- Crea un file di configurazione
config.json(opzionale) - Avvia il server:
node index.js
- Il server si metterà in ascolto su stdin/stdout per comunicazioni MCP
Installazione
npm install
Configurazione di Esempio
Copia config.example.json in config.json e personalizza secondo le tue esigenze:
cp config.example.json config.json
Requisiti
- Node.js v16 o superiore
- Windows (per PowerShell e CMD) o Linux/macOS (per bash)
Dipendenze
@modelcontextprotocol/sdk: SDK per server MCPchild_process: Modulo built-in di Node.js per esecuzione comandios: Modulo built-in di Node.js per informazioni sistemapath: Modulo built-in di Node.js per gestione percorsifs: Modulo built-in di Node.js per accesso file system
Messaggi di Sicurezza
Il server mostra messaggi chiari quando un comando viene bloccato:
❌ Command blocked: [motivo]- Comando bloccato dalle regole di sicurezza❌ Path access denied: [motivo]- Accesso negato al percorso specificato⚠️ No config.json found, using default configuration- Configurazione predefinita in uso✅ Configuration loaded from config.json- Configurazione caricata correttamente
Recommended Servers
playwright-mcp
A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.
Magic Component Platform (MCP)
An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.
Audiense Insights MCP Server
Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.
VeyraX MCP
Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.
graphlit-mcp-server
The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.
Kagi MCP Server
An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.
E2B
Using MCP to run code via e2b.
Neon Database
MCP server for interacting with Neon Management API and databases
Exa Search
A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.
Qdrant Server
This repository is an example of how to create a MCP server for Qdrant, a vector search engine.