Skip to main content
Glama
posidron

PowerShell MCP Server

by posidron

find_commands

Search and retrieve PowerShell commands using a specific term, enabling efficient command discovery and execution on Windows systems via the PowerShell MCP Server.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
searchYesSearch term for PowerShell commands

Implementation Reference

  • Handler function that executes PowerShell 'Get-Command' with the provided search term, formats results as JSON, and returns them via MCP content structure. Handles errors appropriately.
    async ({ search }: { search: string }) => {
      try {
        const command = `
          Get-Command -Name "*${search}*" -ErrorAction SilentlyContinue |
          Select-Object Name, CommandType, Version, Source |
          Sort-Object Name |
          ConvertTo-Json
        `;
    
        const { stdout, stderr } = await execAsync(
          `powershell -Command "${command.replace(/"/g, '\\"')}"`
        );
    
        if (stderr) {
          return {
            isError: true,
            content: [
              {
                type: 'text' as const,
                text: `Error finding commands: ${stderr}`,
              },
            ],
          };
        }
    
        return {
          content: [
            {
              type: 'text' as const,
              text: stdout || 'No commands found matching the search term.',
            },
          ],
        };
      } catch (error) {
        return {
          isError: true,
          content: [
            {
              type: 'text' as const,
              text: `Error finding commands: ${(error as Error).message}`,
            },
          ],
        };
      }
    }
  • Zod input schema defining the 'search' parameter as a required string.
    {
      search: z.string().describe('Search term for PowerShell commands'),
    },
  • src/index.ts:260-310 (registration)
    MCP server tool registration for 'find_commands', including schema and inline handler.
    this.server.tool(
      'find_commands',
      {
        search: z.string().describe('Search term for PowerShell commands'),
      },
      async ({ search }: { search: string }) => {
        try {
          const command = `
            Get-Command -Name "*${search}*" -ErrorAction SilentlyContinue |
            Select-Object Name, CommandType, Version, Source |
            Sort-Object Name |
            ConvertTo-Json
          `;
    
          const { stdout, stderr } = await execAsync(
            `powershell -Command "${command.replace(/"/g, '\\"')}"`
          );
    
          if (stderr) {
            return {
              isError: true,
              content: [
                {
                  type: 'text' as const,
                  text: `Error finding commands: ${stderr}`,
                },
              ],
            };
          }
    
          return {
            content: [
              {
                type: 'text' as const,
                text: stdout || 'No commands found matching the search term.',
              },
            ],
          };
        } catch (error) {
          return {
            isError: true,
            content: [
              {
                type: 'text' as const,
                text: `Error finding commands: ${(error as Error).message}`,
              },
            ],
          };
        }
      }
    );
Install Server

Other Tools

Related Tools

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