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
| Name | Required | Description | Default |
|---|---|---|---|
| search | Yes | Search term for PowerShell commands |
Input Schema (JSON Schema)
{
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"properties": {
"search": {
"description": "Search term for PowerShell commands",
"type": "string"
}
},
"required": [
"search"
],
"type": "object"
}
Implementation Reference
- src/index.ts:265-309 (handler)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}`, }, ], }; } }
- src/index.ts:262-264 (schema)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}`, }, ], }; } } );