Skip to main content
Glama
posidron

PowerShell MCP Server

by posidron

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

Install Server
A
security – no known vulnerabilities
F
license - not found
A
quality - confirmed to work

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