Skip to main content
Glama
saksham0712

MCP Complete Implementation Guide

by saksham0712

execute_command

Execute system commands directly from the MCP server to automate tasks, run scripts, and perform system operations with specified working directories.

Instructions

Execute a system command (use with caution)

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
commandYesThe command to execute
cwdNoWorking directory for the command

Implementation Reference

  • Primary MCP handler for execute_command tool. Executes shell commands using subprocess.run, captures stdout/stderr, formats output, and returns as TextContent. Includes timeout and cwd support.
    async def execute_command(self, command: str, cwd: Optional[str] = None) -> list[types.TextContent]:
        """Execute system command"""
        try:
            result = subprocess.run(
                command,
                shell=True,
                capture_output=True,
                text=True,
                cwd=cwd or Path.cwd(),
                timeout=30,
            )
            
            output = f"Command: {command}\nOutput:\n{result.stdout}"
            if result.stderr:
                output += f"\nErrors:\n{result.stderr}"
            
            return [types.TextContent(type="text", text=output)]
        except Exception as error:
            raise Exception(f"Command execution failed: {str(error)}")
  • Primary MCP handler for execute_command tool in JavaScript server. Uses child_process.exec to run commands, captures output, formats response, supports cwd.
    async executeCommand(command, cwd = process.cwd()) {
      const { exec } = require('child_process');
      const { promisify } = require('util');
      const execAsync = promisify(exec);
    
      try {
        const { stdout, stderr } = await execAsync(command, { cwd });
        return {
          content: [
            {
              type: 'text',
              text: `Command: ${command}\nOutput:\n${stdout}${stderr ? `\nErrors:\n${stderr}` : ''}`,
            },
          ],
        };
      } catch (error) {
        throw new Error(`Command execution failed: ${error.message}`);
      }
    }
  • server.py:126-143 (registration)
    Registration of execute_command tool in Python MCP server's list_tools handler, including input schema definition.
    types.Tool(
        name="execute_command",
        description="Execute a system command (use with caution)",
        inputSchema={
            "type": "object",
            "properties": {
                "command": {
                    "type": "string",
                    "description": "The command to execute",
                },
                "cwd": {
                    "type": "string",
                    "description": "Working directory for the command",
                },
            },
            "required": ["command"],
        },
    ),
  • server.js:99-115 (registration)
    Registration of execute_command tool in JavaScript MCP server's list_tools response, including input schema.
      name: 'execute_command',
      description: 'Execute a system command (use with caution)',
      inputSchema: {
        type: 'object',
        properties: {
          command: {
            type: 'string',
            description: 'The command to execute',
          },
          cwd: {
            type: 'string',
            description: 'Working directory for the command',
          },
        },
        required: ['command'],
      },
    },
  • Handler implementation in ChatGPT proxy server for execute_command, used when bridging OpenAI tools to local execution.
    case 'execute_command':
      const { stdout, stderr } = await execAsync(args.command, { cwd: args.cwd || process.cwd() });
      return { success: true, stdout, stderr, command: args.command };

Tool Definition Quality

Score is being calculated. Check back soon.

Install Server

Other 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/saksham0712/MCP'

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