clear_sessions
Remove empty sessions and invalid API key sessions to manage Claude session storage efficiently.
Instructions
Delete all empty sessions and invalid API key sessions
Input Schema
TableJSON Schema
| Name | Required | Description | Default |
|---|---|---|---|
| project_name | No | Optional: filter by project name | |
| clear_empty | No | Clear empty sessions (default: true) | |
| clear_invalid | No | Clear invalid API key sessions (default: true) |
Implementation Reference
- The handler function that executes the clear_sessions tool logic: identifies cleanable sessions using find_cleanable_sessions and deletes them using delete_session, categorizing empty and invalid API key sessions.def clear_sessions(project_name: str | None = None, clear_empty: bool = True, clear_invalid: bool = True) -> dict: """Clear empty and invalid sessions.""" cleanable = find_cleanable_sessions(project_name) deleted = { 'empty_sessions': [], 'invalid_api_key_sessions': [], 'total_deleted': 0, 'errors': [] } sessions_to_delete = [] if clear_empty: sessions_to_delete.extend([(s, 'empty') for s in cleanable['empty_sessions']]) if clear_invalid: sessions_to_delete.extend([(s, 'invalid_api_key') for s in cleanable['invalid_api_key_sessions']]) for session_info, reason in sessions_to_delete: try: success = delete_session(session_info['project_name'], session_info['session_id']) if success: if reason == 'empty': deleted['empty_sessions'].append(session_info) else: deleted['invalid_api_key_sessions'].append(session_info) deleted['total_deleted'] += 1 except Exception as e: deleted['errors'].append({ 'session': session_info, 'error': str(e) }) return deleted
- Input schema definition for the clear_sessions tool parameters.inputSchema={ "type": "object", "properties": { "project_name": { "type": "string", "description": "Optional: filter by project name" }, "clear_empty": { "type": "boolean", "description": "Clear empty sessions (default: true)" }, "clear_invalid": { "type": "boolean", "description": "Clear invalid API key sessions (default: true)" } }, "required": [] }
- src/claude_session_manager_mcp/server.py:634-655 (registration)Registration of the clear_sessions tool in the MCP list_tools() function.Tool( name="clear_sessions", description="Delete all empty sessions and invalid API key sessions", inputSchema={ "type": "object", "properties": { "project_name": { "type": "string", "description": "Optional: filter by project name" }, "clear_empty": { "type": "boolean", "description": "Clear empty sessions (default: true)" }, "clear_invalid": { "type": "boolean", "description": "Clear invalid API key sessions (default: true)" } }, "required": [] } ),
- src/claude_session_manager_mcp/server.py:722-726 (registration)Dispatch/registration in the MCP call_tool handler for invoking clear_sessions.elif name == "clear_sessions": project_name = arguments.get("project_name") clear_empty = arguments.get("clear_empty", True) clear_invalid = arguments.get("clear_invalid", True) result = clear_sessions(project_name, clear_empty, clear_invalid)
- Supporting method in SessionManager class with identical logic, likely used by web parser.def clear_sessions(self, project_name: str = None, clear_empty: bool = True, clear_invalid_api_key: bool = True) -> dict: """Clear sessions (delete empty and Invalid API key sessions).""" cleanable = self.find_cleanable_sessions(project_name) deleted = { 'empty_sessions': [], 'invalid_api_key_sessions': [], 'total_deleted': 0, 'errors': [] } sessions_to_delete = [] if clear_empty: sessions_to_delete.extend([(s, 'empty') for s in cleanable['empty_sessions']]) if clear_invalid_api_key: sessions_to_delete.extend([(s, 'invalid_api_key') for s in cleanable['invalid_api_key_sessions']]) for session_info, reason in sessions_to_delete: try: success = self.delete_session(session_info['project_name'], session_info['session_id']) if success: if reason == 'empty': deleted['empty_sessions'].append(session_info) else: deleted['invalid_api_key_sessions'].append(session_info) deleted['total_deleted'] += 1 except Exception as e: deleted['errors'].append({ 'session': session_info, 'error': str(e) }) return deleted