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
| Name | Required | Description | Default |
|---|---|---|---|
| connectionId | Yes | SSH connection ID | |
| command | Yes | Command to execute on remote server | |
| cwd | No | Working directory for command execution |
Implementation Reference
- src/index.ts:626-656 (handler)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)}` ); } }
- src/index.ts:74-78 (schema)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'] }, },