ssh_close_interactive_shell
Terminate an active SSH interactive shell session by specifying the session ID to free up resources and maintain clean connection management.
Instructions
Close an interactive shell session
Input Schema
TableJSON Schema
| Name | Required | Description | Default |
|---|---|---|---|
| sessionId | Yes | Interactive session ID to close |
Implementation Reference
- src/index.ts:1055-1085 (handler)The main handler function that executes the tool logic: validates input, retrieves the shell session, closes the shell channel, marks it inactive, removes from session pool, and returns success message.private async handleCloseInteractiveShell(args: unknown) { const params = CloseInteractiveShellSchema.parse(args); const session = shellSessions.get(params.sessionId); if (!session) { throw new McpError( ErrorCode.InvalidParams, `Session ID '${params.sessionId}' not found` ); } try { session.shell.close(); session.isActive = false; shellSessions.delete(params.sessionId); return { content: [ { type: 'text', text: `Interactive shell session '${params.sessionId}' closed successfully`, }, ], }; } catch (error) { throw new McpError( ErrorCode.InternalError, `Failed to close session: ${error instanceof Error ? error.message : String(error)}` ); } }
- src/index.ts:119-121 (schema)Zod schema defining the input parameters (sessionId) for the ssh_close_interactive_shell tool.const CloseInteractiveShellSchema = z.object({ sessionId: z.string().describe('Interactive session ID to close') });
- src/index.ts:360-370 (registration)Registration of the tool in the ListToolsRequestHandler response, including name, description, and input schema.{ name: 'ssh_close_interactive_shell', description: 'Close an interactive shell session', inputSchema: { type: 'object', properties: { sessionId: { type: 'string', description: 'Interactive session ID to close' } }, required: ['sessionId'] }, },
- src/index.ts:503-504 (registration)Dispatch case in the CallToolRequestHandler switch statement that routes calls to the handler function.case 'ssh_close_interactive_shell': return await this.handleCloseInteractiveShell(args);