Skip to main content
Glama

restore_session_context

Restores previous session context to recover work progress, decisions, code snippets, and debugging information for continued development tasks.

Instructions

restore|revert|go back|recover session - Restore previous session context

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
sessionIdYesSession ID to restore
restoreLevelNoLevel of detail to restore
filterTypeNoFilter context by type

Implementation Reference

  • The core handler function for the 'restore_session_context' tool. It retrieves context memories from MemoryManager, filters by sessionId, optional restoreLevel and filterType, limits results, and formats a text response listing restored items.
    export async function restoreSessionContext(args: { sessionId: string; restoreLevel?: string; filterType?: string }): Promise<ToolResult> {
      const { sessionId, restoreLevel = 'detailed', filterType = 'all' } = args;
    
      try {
        const memoryManager = MemoryManager.getInstance();
    
        // Get all context memories
        let memories = memoryManager.list('context');
    
        // Filter by session ID
        memories = memories.filter(m => m.key.includes(sessionId));
    
        // Filter by context type if not 'all'
        if (filterType !== 'all') {
          memories = memories.filter(m => {
            try {
              const contextData = JSON.parse(m.value);
              return contextData.contextType === filterType;
            } catch {
              return false;
            }
          });
        }
    
        const maxItems = restoreLevel === 'essential' ? 3 : restoreLevel === 'detailed' ? 10 : 20;
        const limitedMemories = memories.slice(0, maxItems);
    
        if (limitedMemories.length === 0) {
          return {
            content: [{ type: 'text', text: `✗ No context found for session: ${sessionId}` }]
          };
        }
    
        let response = `✓ Restored ${limitedMemories.length} context item(s) for session: ${sessionId}\n`;
    
        limitedMemories.forEach(m => {
          try {
            const data = JSON.parse(m.value);
            response += `\n• ${data.contextType || 'context'} (${data.urgency || 'medium'})`;
            if (data.summary) response += `: ${data.summary}`;
            response += `\n  Time: ${new Date(m.timestamp).toLocaleString()}`;
          } catch {
            response += `\n• ${m.key}\n  Time: ${new Date(m.timestamp).toLocaleString()}`;
          }
        });
    
        return {
          content: [{ type: 'text', text: response }]
        };
      } catch (error) {
        return {
          content: [{ type: 'text', text: `✗ Error: ${error instanceof Error ? error.message : 'Unknown error'}` }]
        };
      }
    }
  • The ToolDefinition object defining the tool's name, description, input schema (with sessionId required, optional restoreLevel and filterType), and annotations.
    export const restoreSessionContextDefinition: ToolDefinition = {
      name: 'restore_session_context',
      description: 'restore|revert|go back|recover session - Restore previous session context',
      inputSchema: {
        type: 'object',
        properties: {
          sessionId: { type: 'string', description: 'Session ID to restore' },
          restoreLevel: { type: 'string', description: 'Level of detail to restore', enum: ['essential', 'detailed', 'complete'] },
          filterType: { type: 'string', description: 'Filter context by type', enum: ['all', 'progress', 'decisions', 'code-snippets', 'debugging', 'planning'] }
        },
        required: ['sessionId']
      },
      annotations: {
        title: 'Restore Session',
        audience: ['user', 'assistant']
      }
    };
  • src/index.ts:650-651 (registration)
    In the executeToolCall switch statement, dispatches calls to the restoreSessionContext handler function.
    case 'restore_session_context':
      return await restoreSessionContext(args as any) as CallToolResult;
  • src/index.ts:132-132 (registration)
    The tool definition is added to the 'tools' array, making it available via listTools in the MCP server.
    restoreSessionContextDefinition,
  • src/index.ts:64-64 (registration)
    Imports the handler function and its ToolDefinition from the tool's module.
    import { restoreSessionContext, restoreSessionContextDefinition } from './tools/memory/restoreSessionContext.js';

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/ssdeanx/ssd-ai'

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