Skip to main content
Glama
widjis
by widjis

ssh_execute

Execute commands on remote SSH servers to manage systems, run scripts, and perform administrative tasks through secure connections.

Instructions

Execute a command on a remote SSH server

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
connectionIdYesSSH connection ID
commandYesCommand to execute on remote server
cwdNoWorking directory for command execution

Implementation Reference

  • The handler function for 'ssh_execute' tool. Parses input using ExecuteCommandSchema, retrieves SSH connection from pool, executes the command with optional cwd, and returns stdout/stderr/exit code.
    private async handleSSHExecute(args: unknown) {
      const params = ExecuteCommandSchema.parse(args);
      
      const ssh = connectionPool.get(params.connectionId);
      if (!ssh) {
        throw new McpError(
          ErrorCode.InvalidParams,
          `Connection ID '${params.connectionId}' not found`
        );
      }
    
      try {
        const result = await ssh.execCommand(params.command, {
          cwd: params.cwd,
        });
    
        return {
          content: [
            {
              type: 'text',
              text: `Command: ${params.command}\nExit Code: ${result.code}\n\nSTDOUT:\n${result.stdout}\n\nSTDERR:\n${result.stderr}`,
            },
          ],
        };
      } catch (error) {
        throw new McpError(
          ErrorCode.InternalError,
          `Command execution failed: ${error instanceof Error ? error.message : String(error)}`
        );
      }
    }
  • Zod schema defining input parameters for the ssh_execute tool: connectionId (required), command (required), cwd (optional).
    const ExecuteCommandSchema = z.object({
      connectionId: z.string().describe('SSH connection ID'),
      command: z.string().describe('Command to execute on remote server'),
      cwd: z.string().optional().describe('Working directory for command execution')
    });
  • src/index.ts:267-278 (registration)
    Tool registration in ListToolsRequestHandler response. Defines name 'ssh_execute', description, and inputSchema matching ExecuteCommandSchema.
      name: 'ssh_execute',
      description: 'Execute a command on a remote SSH server',
      inputSchema: {
        type: 'object',
        properties: {
          connectionId: { type: 'string', description: 'SSH connection ID' },
          command: { type: 'string', description: 'Command to execute on remote server' },
          cwd: { type: 'string', description: 'Working directory for command execution' }
        },
        required: ['connectionId', 'command']
      },
    },

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/widjis/mcp-ssh'

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