Skip to main content
Glama

service_manager

Manage Windows services by listing, starting, stopping, restarting, and monitoring service status to maintain system functionality.

Instructions

Windows service management including listing services, getting service details, starting/stopping services, and monitoring service status

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
actionYesThe service management action to perform
service_nameNoService name for specific service operations
status_filterNoFilter services by status (default: all)all
startup_type_filterNoFilter services by startup type (default: all)all
search_termNoSearch term for finding services
limitNoLimit number of results (default: 50)

Implementation Reference

  • Main handler function for the service_manager tool. Dispatches to specific service management actions based on the 'action' parameter.
    async run(args: {
      action: string;
      service_name?: string;
      status_filter?: string;
      startup_type_filter?: string;
      search_term?: string;
      limit?: number;
    }) {
      try {
        switch (args.action) {
          case "list_services":
            return await this.listServices(args.status_filter, args.startup_type_filter, args.limit);
          case "get_service_details":
            return await this.getServiceDetails(args.service_name!);
          case "start_service":
            return await this.startService(args.service_name!);
          case "stop_service":
            return await this.stopService(args.service_name!);
          case "restart_service":
            return await this.restartService(args.service_name!);
          case "get_service_status":
            return await this.getServiceStatus(args.service_name!);
          case "find_service":
            return await this.findService(args.search_term!);
          case "get_running_services":
            return await this.getRunningServices(args.limit);
          case "get_startup_services":
            return await this.getStartupServices(args.limit);
          default:
            throw new Error(`Unknown action: ${args.action}`);
        }
      } catch (error: any) {
        return {
          content: [{
            type: "text",
            text: `❌ Service management operation failed: ${error.message}`
          }],
          isError: true
        };
      }
    },
  • Input schema definition for the service_manager tool, including parameters for various actions.
    name: "service_manager",
    description: "Windows service management including listing services, getting service details, starting/stopping services, and monitoring service status",
    parameters: {
      type: "object",
      properties: {
        action: {
          type: "string",
          enum: ["list_services", "get_service_details", "start_service", "stop_service", "restart_service", "get_service_status", "find_service", "get_running_services", "get_startup_services"],
          description: "The service management action to perform"
        },
        service_name: {
          type: "string",
          description: "Service name for specific service operations"
        },
        status_filter: {
          type: "string",
          enum: ["running", "stopped", "paused", "all"],
          description: "Filter services by status (default: all)",
          default: "all"
        },
        startup_type_filter: {
          type: "string",
          enum: ["automatic", "manual", "disabled", "all"],
          description: "Filter services by startup type (default: all)",
          default: "all"
        },
        search_term: {
          type: "string",
          description: "Search term for finding services"
        },
        limit: {
          type: "number",
          description: "Limit number of results (default: 50)",
          default: 50
        }
      },
      required: ["action"]
    },
  • src/index.ts:47-51 (registration)
    Registration of service_manager tool in the MCP server's list tools handler.
    {
      name: serviceManagerTool.name,
      description: serviceManagerTool.description,
      inputSchema: serviceManagerTool.parameters
    },
  • src/index.ts:79-80 (registration)
    Dispatcher registration for handling calls to the service_manager tool in the MCP server's call tool handler.
    case "service_manager":
      return await serviceManagerTool.run(args as any);
  • Helper method to list Windows services with optional status, startup type filters, and limit.
    async listServices(statusFilter = "all", startupTypeFilter = "all", limit = 50) {
      try {
        let whereClause = "";
        const conditions: string[] = [];
        
        if (statusFilter !== "all") {
          conditions.push(`$_.Status -eq '${this.mapStatusFilter(statusFilter)}'`);
        }
        
        if (startupTypeFilter !== "all") {
          conditions.push(`$_.StartType -eq '${this.mapStartupTypeFilter(startupTypeFilter)}'`);
        }
        
        if (conditions.length > 0) {
          whereClause = `| Where-Object {${conditions.join(' -and ')}}`;
        }
        
        const command = `Get-Service ${whereClause} | Select-Object -First ${limit} Name, DisplayName, Status, StartType | Sort-Object DisplayName | Format-Table -AutoSize`;
        
        const { stdout } = await execAsync(`powershell -Command "${command}"`);
        
        return {
          content: [{
            type: "text",
            text: `# Windows Services\n\nStatus Filter: ${statusFilter}\nStartup Type Filter: ${startupTypeFilter}\nLimit: ${limit}\n\n\`\`\`\n${stdout}\n\`\`\``
          }]
        };
      } catch (error: any) {
        throw new Error(`Failed to list services: ${error.message}`);
      }
    },

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/guangxiangdebizi/windows-system-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server