Skip to main content
Glama

Servidor MCP de PowerShell

Un servidor de Protocolo de Contexto de Modelo para interactuar con PowerShell. Este servidor proporciona herramientas para ejecutar comandos de PowerShell, recuperar información del sistema, administrar módulos y mucho más.

Requisitos

  • Node.js 18+

  • PowerShell 5.1 o PowerShell Core 7+

Related MCP server: MCP Personal Assistant Agent

Instalación

  1. Instalar dependencias:

    npm install
  2. Construir el proyecto:

    npm run build

Configuración

Para Claude Desktop

Editar configuración: $HOME/Library/Application\ Support/Claude/claude_desktop_config.json

Agregar a mcpServers:

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

Para VS Code

Editar configuración: $HOME/Library/Application\ Support/Code/User/settings.json

Agregar a la configuración:

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

Para Cursor IDE

Editar configuración: $HOME/.cursor/mcp.json

Agregar a mcpServers:

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

Herramientas disponibles

Este servidor MCP de PowerShell proporciona las siguientes herramientas:

ejecutar_ps

Ejecute un comando de PowerShell y obtenga el resultado.

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

Ejemplo de uso:

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

obtener_información_del_sistema

Recupere información detallada del sistema, incluidos detalles del sistema operativo, procesador, memoria y versión de PowerShell.

Parameters: None

Ejemplo de uso:

get_system_info()

lista_módulos

Enumere todos los módulos de PowerShell instalados con detalles como nombre, versión y tipo.

Parameters: None

Ejemplo de uso:

list_modules()

obtener_ayuda_de_comando

Obtenga ayuda detallada para un comando específico de PowerShell, incluida sintaxis, parámetros y ejemplos.

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

Ejemplo de uso:

get_command_help(command: "Get-Process")

comandos_de_búsqueda

Busque comandos de PowerShell por nombre o patrón.

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

Ejemplo de uso:

find_commands(search: "Process")

ejecutar_script

Ejecute un archivo de script de PowerShell con parámetros opcionales.

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

Ejemplo de uso:

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

Desarrollo

Para ejecutar en modo de desarrollo:

npm run dev

Ampliación del servidor

Para agregar sus propias herramientas de PowerShell:

  1. Editar src/index.ts

  2. Agregar nuevas herramientas en el método registerTools()

  3. Siga el patrón existente para un manejo consistente de errores

  4. Construir con npm run build

Ejemplo de adición de una herramienta

// 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}`, }, ], }; } } );

Consideraciones de seguridad

  • Este servidor ejecuta comandos de PowerShell directamente en su sistema

  • Los comandos se ejecutan con los mismos privilegios que el proceso que ejecuta el servidor MCP

  • Tenga cuidado al exponerse a operaciones destructivas

  • Considere implementar una validación adicional para comandos sensibles

Solución de problemas

Problemas comunes

  1. Restricciones de la política de ejecución de PowerShell

    • Es posible que necesite ajustar su política de ejecución de PowerShell para permitir la ejecución de scripts

    • Utilice Set-ExecutionPolicy RemoteSigned -Scope CurrentUser para permitir scripts locales

  2. Errores de ruta no encontrada

    • Asegúrese de que las rutas de archivo sean absolutas o relativas al directorio de trabajo

    • Utilice separadores de ruta adecuados para su sistema operativo

  3. Errores de comando no encontrado

    • Algunos comandos pueden requerir la instalación de módulos específicos

    • Utilice Install-Module ModuleName para instalar los módulos necesarios

Licencia

Instituto Tecnológico de Massachusetts (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