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
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 installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
Hosted MCP server connecting claude.ai, ChatGPT and other AI apps to your own computer
A comprehensive Model Context Protocol (MCP) server that enables AI assistants to interact with yo…
Augments MCP Server - A comprehensive framework documentation provider for Claude Code
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/SynacNipo/command-line-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server