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
F
license - not found
C
quality
C
maintenance

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

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