Skip to main content
Glama
gunjanjp

Linux Bash MCP Server

by gunjanjp

check_wsl_status

Check WSL2 status and retrieve distribution details to verify Windows Subsystem for Linux functionality and configuration.

Instructions

Check WSL2 status and get distribution information

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault

No arguments

Implementation Reference

  • The handler function that implements the check_wsl_status tool. It checks WSL status using 'wsl -l -v', tests connection to the distribution, retrieves OS info from /etc/os-release, and returns a JSON-formatted response with status details.
    async checkWSLStatus() { try { // Check WSL status const { stdout: wslList } = await execAsync("wsl -l -v"); // Try to execute a simple command in the selected distribution let testOutput = "Not tested"; let osInfo = "Not available"; if (this.wslDistribution) { try { const { stdout: testResult } = await execAsync(`wsl -d ${this.wslDistribution} -- echo 'WSL connection test successful'`); testOutput = testResult.trim(); } catch (error) { testOutput = `Test failed: ${error.message}`; } // Get distribution-specific information try { const { stdout: osResult } = await execAsync(`wsl -d ${this.wslDistribution} -- cat /etc/os-release`); osInfo = osResult.trim(); } catch (error) { osInfo = `OS info not available: ${error.message}`; } } return { content: [ { type: "text", text: JSON.stringify({ success: true, wslStatus: "Running", selectedDistribution: this.wslDistribution || "Not configured", allDistributions: wslList.trim(), testOutput: testOutput, osInfo: osInfo, serverConfig: { configuredDistribution: this.config?.wslDistribution, defaultTimeout: this.config?.defaultTimeout, scriptTimeout: this.config?.scriptTimeout, debugMode: this.config?.debugMode }, timestamp: new Date().toISOString() }, null, 2), }, ], }; } catch (error) { return { content: [ { type: "text", text: JSON.stringify({ success: false, wslStatus: "Error", selectedDistribution: this.wslDistribution || "Not configured", error: error.message, timestamp: new Date().toISOString() }, null, 2), }, ], }; } }
  • The input schema for the check_wsl_status tool, which requires no parameters (empty properties).
    inputSchema: { type: "object", properties: {}, },
  • src/index.js:264-293 (registration)
    Registration of the check_wsl_status tool in the ListTools handler (lines 264-271) and dispatch in the CallToolRequestSchema switch case (lines 292-293), including description and schema.
    { name: "check_wsl_status", description: "Check WSL2 status and get distribution information", inputSchema: { type: "object", properties: {}, }, } ], }; }); this.server.setRequestHandler(CallToolRequestSchema, async (request) => { const { name, arguments: args } = request.params; console.error(`[DEBUG] Tool request: ${name}`, args); try { switch (name) { case "execute_bash_command": return await this.executeBashCommand(args); case "execute_bash_script": return await this.executeBashScript(args); case "create_bash_script": return await this.createBashScript(args); case "list_directory": return await this.listDirectory(args); case "get_system_info": return await this.getSystemInfo(); case "check_wsl_status": return await this.checkWSLStatus();

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/gunjanjp/linuxshell-mcp'

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