Skip to main content
Glama

PowerShell MCP-Server

Ein Model Context Protocol-Server für die Interaktion mit PowerShell. Dieser Server bietet Tools zum Ausführen von PowerShell-Befehlen, Abrufen von Systeminformationen, Verwalten von Modulen und mehr.

Anforderungen

  • Node.js 18+

  • PowerShell 5.1 oder PowerShell Core 7+

Related MCP server: MCP Personal Assistant Agent

Installation

  1. Installieren Sie Abhängigkeiten:

    npm install
  2. Erstellen Sie das Projekt:

    npm run build

Konfiguration

Für Claude Desktop

Konfiguration bearbeiten: $HOME/Library/Application\ Support/Claude/claude_desktop_config.json

Zu mcpServern hinzufügen:

{ "mcpServers": { "mcp-powershell": { "command": "node", "args": [ "/absolute/path/to/mcp-powershell/dist/index.js" ] } } }

Für VS Code

Konfiguration bearbeiten: $HOME/Library/Application\ Support/Code/User/settings.json

Zu den Einstellungen hinzufügen:

"mcp": { "servers": { "mcp-powershell": { "command": "node", "args": [ "/absolute/path/to/mcp-powershell/dist/index.js" ] } } }

Für Cursor-IDE

Konfiguration bearbeiten: $HOME/.cursor/mcp.json

Zu mcpServern hinzufügen:

{ "mcpServers": { "mcp-powershell": { "command": "node", "args": [ "/absolute/path/to/mcp-powershell/dist/index.js" ] } } }

Verfügbare Tools

Dieser PowerShell MCP-Server bietet die folgenden Tools:

execute_ps

Führen Sie einen PowerShell-Befehl aus und erhalten Sie das Ergebnis.

Parameters: - command (string): PowerShell command to execute

Anwendungsbeispiel:

execute_ps(command: "Get-Process | Select-Object -First 5")

get_system_info

Rufen Sie detaillierte Systeminformationen ab, einschließlich Betriebssystemdetails, Prozessor, Speicher und PowerShell-Version.

Parameters: None

Anwendungsbeispiel:

get_system_info()

Modulliste

Listen Sie alle installierten PowerShell-Module mit Details wie Name, Version und Typ auf.

Parameters: None

Anwendungsbeispiel:

list_modules()

Befehlshilfe abrufen

Erhalten Sie ausführliche Hilfe zu einem bestimmten PowerShell-Befehl, einschließlich Syntax, Parametern und Beispielen.

Parameters: - command (string): PowerShell command to get help for

Anwendungsbeispiel:

get_command_help(command: "Get-Process")

Befehle finden

Suchen Sie nach PowerShell-Befehlen nach Name oder Muster.

Parameters: - search (string): Search term for PowerShell commands

Anwendungsbeispiel:

find_commands(search: "Process")

Skript ausführen

Führen Sie eine PowerShell-Skriptdatei mit optionalen Parametern aus.

Parameters: - scriptPath (string): Path to the PowerShell script file - parameters (string, optional): Optional parameters to pass to the script

Anwendungsbeispiel:

run_script(scriptPath: "/path/to/script.ps1", parameters: "-Name 'Test' -Value 123")

Entwicklung

So führen Sie es im Entwicklungsmodus aus:

npm run dev

Erweiterung des Servers

So fügen Sie Ihre eigenen PowerShell-Tools hinzu:

  1. Bearbeiten Sie src/index.ts

  2. Fügen Sie in der Methode registerTools() neue Tools hinzu

  3. Befolgen Sie das vorhandene Muster für eine konsistente Fehlerbehandlung

  4. Erstellen mit npm run build

Hinzufügen eines Werkzeugbeispiels

// In the registerTools() method: this.server.tool( "my_ps_tool", { param1: z.string().describe("Description of parameter 1"), param2: z.number().optional().describe("Optional numeric parameter"), }, async ({ param1, param2 }) => { try { // Your PowerShell command const command = `Your-PowerShell-Command -Param1 "${param1}" ${param2 ? `-Param2 ${param2}` : ''}`; const { stdout, stderr } = await execAsync(`powershell -Command "${command.replace(/"/g, '\\"')}"`); if (stderr) { return { isError: true, content: [ { type: "text" as const, text: `Error in my_ps_tool: ${stderr}`, }, ], }; } return { content: [ { type: "text" as const, text: stdout, }, ], }; } catch (error) { return { isError: true, content: [ { type: "text" as const, text: `Error in my_ps_tool: ${(error as Error).message}`, }, ], }; } } );

Sicherheitsüberlegungen

  • Dieser Server führt PowerShell-Befehle direkt auf Ihrem System aus

  • Befehle werden mit den gleichen Berechtigungen ausgeführt wie der Prozess, der den MCP-Server ausführt

  • Seien Sie vorsichtig, wenn Sie destruktive Operationen offenlegen

  • Erwägen Sie die Implementierung einer zusätzlichen Validierung für vertrauliche Befehle

Fehlerbehebung

Häufige Probleme

  1. Einschränkungen der PowerShell-Ausführungsrichtlinie

    • Möglicherweise müssen Sie Ihre PowerShell-Ausführungsrichtlinie anpassen, um die Skriptausführung zu ermöglichen

    • Verwenden Sie Set-ExecutionPolicy RemoteSigned -Scope CurrentUser um lokale Skripts zuzulassen

  2. Fehler „Pfad nicht gefunden“

    • Stellen Sie sicher, dass die Dateipfade absolut oder relativ zum Arbeitsverzeichnis sind.

    • Verwenden Sie geeignete Pfadtrennzeichen für Ihr Betriebssystem

  3. Fehler „Befehl nicht gefunden“

    • Für einige Befehle müssen möglicherweise bestimmte Module installiert werden

    • Verwenden Sie Install-Module ModuleName um erforderliche Module zu installieren

Lizenz

MIT

Latest Blog Posts

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/posidron/mcp-powershell'

If you have feedback or need assistance with the MCP directory API, please join our Discord server