Command-Line MCP Server
Command-Line MCP Server
Ein Remote-Model Context Protocol-Server, der ein einziges
Tool, run_command, bereitstellt, das es Claude (über die Connectors-Funktion von Claude Desktop)
ermöglicht, Shell-Befehle auf dem Rechner auszuführen, auf dem dieser Server läuft.
Der Server implementiert OAuth 2.1 (Dynamic Client Registration + PKCE), weil Claude Desktop Connectors zwingend einen OAuth-Handshake erfordern – ein Connector ohne Auth-Server wird bei der Anmeldung abgelehnt. Dieser Server genehmigt die Autorisierung automatisch (keine Benutzerabfrage), was für einen persönlichen, über einen Tunnel exponierten Server in Ordnung ist.
⚠️ Sicherheitswarnung: Jeder, der diesen Server erreichen und den (automatischen) OAuth-Flow abschließen kann, kann beliebige Befehle als der Benutzer ausführen, der ihn betreibt. Setzen Sie ihn nur über einen privaten Tunnel (cloudflared / ngrok) ein und niemals in einem öffentlichen Netzwerk.
So funktioniert es
Transport: Streamable HTTP (der Transport, den Claude Desktop Connectors erfordern).
Zustandslos: Jede Anfrage erzeugt eine frische Server-/Transport-Instanz (kein Session-Store nötig).
Endpunkt:
POST /mcpHealth-Check:
GET /health
Related MCP server: Claude MCP Command Server
Tools
run_command
Führt einen Shell-Befehl aus. Unter Windows ist die Standard-Shell cmd.exe (verwenden Sie dir, cd, nicht ls/pwd), es sei denn, Sie übergeben shell: "powershell".
Parameter | Typ | Erforderlich | Beschreibung |
| string | ja | Der auszuführende Shell-Befehl. |
| string | nein | Arbeitsverzeichnis. |
| number | nein | Harte Zeitüberschreitung (max. 600000). Standard: 120000. |
| string | nein |
|
get_info
Gibt Betriebssystem, Architektur, Standard-Shell (cmd.exe unter Windows) und das aktuelle Arbeitsverzeichnis zurück – einmal aufrufen, damit der Client weiß, welche Shell er verwenden soll.
read_file
Liest eine Textdatei (optionaler offset/limit-Zeilenbereich). path ist absolut oder relativ zum cwd.
list_files
Listet ein Verzeichnis auf. recursive: true durchläuft den Baum (Tiefe auf 4 begrenzt).
edit_file
Exakter String-Ersatz – die bevorzugte Methode zum Bearbeiten von Code (kein Shell-Escaping nötig).
path, old_text, new_text, optional replace_all. old_text muss eindeutig sein, es sei denn, replace_all ist gesetzt. Gibt einen kurzen Diff zurück.
apply_patch
Wendet einen Unified Diff über git apply an (mit einem --3way-Fallback). cwd = Repo-Root, patch = Diff-Text.
write_file
Schreibt vollständigen Inhalt in eine Datei (overwrite oder append).
batch_read
Liest mehrere Dateien in einem Aufruf. files: Array von { path, offset?, limit? }.
batch_edit
Wendet viele exakte Text-Änderungen auf eine oder mehrere Dateien in einem einzigen Aufruf an. Transaktional: Jedes old_text wird validiert, bevor eine Datei geschrieben wird, sodass ein fehlender/mehrdeutiger Treffer die gesamte Stapelverarbeitung abbricht (nichts wird geändert). Jede Änderung: { path, old_text, new_text, replace_all? }.
Nativer Git-Passthrough
git_status (-sb), git_diff (staged + paths-Optionen), git_log (max_count, revision), git_show (revision). Jeder nimmt ein optionales cwd entgegen.
Alle Dateipfade werden auf dem Host aufgelöst, auf dem der Server läuft – sie zeigen auf diesen Rechner, nicht auf Claudes Sandbox.
Lokal ausführen
npm install
npm start
# server listens on http://localhost:3000/mcpOptionale Umgebungsvariablen: PORT, CMD_TIMEOUT_MS, CMD_MAX_BUFFER.
npm start führt start.js aus, das Port 3000 freigibt (tötet jeden Prozess, der ihn belegt),
bevor der Server gestartet wird, sodass Sie nie auf EADDRINUSE stoßen.
Für Claude Desktop verfügbar machen
Option A – Cloudflare Worker (stabile URL, kein trycloudflare, keine Domain nötig)
Ein kleiner lokaler Agent hält eine WebSocket-Verbindung zu einem Cloudflare Worker offen, der zu
Ihrem stabilen öffentlichen *.workers.dev-MCP-Endpunkt wird. Der Worker leitet nur an Ihren
Rechner weiter, während der Agent (authentifiziert mit PROXY_SECRET) verbunden ist.
wrangler login(kostenloses Cloudflare-Konto).Bereitstellen:
wrangler deploy→ notieren Sie Ihre URL, z. B.https://command-line-mcp.<subdomain>.workers.dev.Setzen Sie das Geheimnis (derselbe Wert, der bereits in Ihrer gitignored
.dev.varssteht):wrangler secret put PROXY_SECRET(fügen Sie dasPROXY_SECRETaus.dev.varsein).Richten Sie den Agenten auf den bereitgestellten Worker aus: Setzen Sie
WORKER_URLin.dev.varsauf diese URL.Führen Sie auf Ihrem Rechner beides aus:
npm start # the MCP server on :3000 npm run agent # connects to the Worker with the secretIn Claude Desktop: Customize → Connectors → Add custom connector, fügen Sie
https://command-line-mcp.<subdomain>.workers.dev/mcpein.
Lokales Testen ohne Bereitstellung: wrangler dev --port 8787 (Worker auf :8787),
dann npm run agent – der Agent liest WORKER_URL aus .dev.vars.
Option B – cloudflared / ngrok-Tunnel (ephemere URL)
Claude Desktop Connectors benötigen eine HTTPS-URL, also führen Sie den Server lokal aus und tunneln Sie ihn:
cloudflared tunnel --url http://localhost:3000 --protocol http2
# or: ngrok http 3000Kopieren Sie die generierte https://…-URL und hängen Sie /mcp an, z. B.
https://abc-123.trycloudflare.com/mcp.
Zu Claude Desktop hinzufügen
Öffnen Sie Customize → Connectors → Add custom connector.
Fügen Sie die URL (mit
/mcp) ein, z. B. die Worker-URL aus Option A.Benennen Sie sie Command-Line.
Speichern. Claude entdeckt die OAuth-Metadaten, registriert einen Client und öffnet einen Browser für den (automatisch genehmigenden) Autorisierungs-Endpunkt, leitet dann zurück und ist bereit. Es muss keine "OAuth Client ID" manuell eingegeben werden – DCR übernimmt das.
Testen ohne Claude
Verwenden Sie den MCP Inspector:
npx @modelcontextprotocol/inspector
# Transport: Streamable HTTP, URL: http://localhost:3000/mcpHärtung (für nicht-persönliche Nutzung)
OAuth ist bereits implementiert (siehe oauthProvider.js). Für alles über einen persönlichen
Tunnel hinaus sollten Sie:
Die automatisch genehmigende
authorize()durch einen echten Zustimmungsbildschirm ersetzen oder zumindest eine Whitelist von Redirect-URIs / Clients verwenden.Clients/Tokens persistieren (derzeit im Speicher – sie werden bei einem Neustart zurückgesetzt).
Hinter einer stabilen HTTPS-Domain hosten (z. B. einem VPS, Cloudflare Workers, Fly.io).
Eine Whitelist erlaubter Befehle in Betracht ziehen, um den Schadensradius zu begrenzen.
Lizenz
MIT
This server cannot be deployed
Maintenance
Related MCP Connectors
Nifty's MCP server — exposes tasks, projects, messages, and files as tools for AI agents.
Hosted MCP server connecting claude.ai, ChatGPT and other AI apps to your own computer
Remote MCP server for supportsheep: run AI interviews and manage support content for your blog.
Remote MCP server to read and manage your Atako AI agents, messages, files, and integrations.
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceA high-speed MCP server that enables AI assistants like Claude to interact with local filesystems, manage Git repositories, and provide interactive experiences through a standardized JSON-based protocol.6MIT
- FlicenseNot gradedqualityDmaintenanceA server implementation for the Model Context Protocol (MCP) that allows Claude AI to execute commands through a command-line interface, enabling direct system interactions from within Claude.-
- AlicenseNot gradedqualityDmaintenanceA local MCP server that proxies file and shell tools (Read, Write, Edit, Bash, etc.) to a remote Linux host over SSH, enabling MCP clients like Claude Code to operate on remote codebases.MIT
- FlicenseNot gradedqualityDmaintenanceMCP server for Claude Code to execute commands on any remote server over SSH. Provides tools for remote execution, file operations, and connection info.-