Skip to main content
Glama

start_session

Initiate a development session with Hi-AI to load project memories, coding guides, and restore previous context for AI-assisted programming tasks.

Instructions

hi-ai|hello|start|begin session - Start session with context

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
greetingNoGreeting message that triggered this action (e.g., "hi-ai", "hello")
loadMemoryNoLoad relevant project memories (default: true)
loadGuidesNoLoad applicable coding guides (default: true)
restoreContextNoRestore previous session context (default: true)

Implementation Reference

  • The primary handler function that executes the start_session tool. Loads recent project memories, coding guides, and previous session context, then generates a session start summary.
    export async function startSession(args: { greeting?: string; loadMemory?: boolean; loadGuides?: boolean; restoreContext?: boolean }): Promise<ToolResult> { const { greeting = '', loadMemory = true, loadGuides: shouldLoadGuides = true, restoreContext = true } = args; try { const memoryManager = MemoryManager.getInstance(); let summary = `${greeting ? greeting + '! ' : ''}Session started.\n`; // Load relevant project memories if (loadMemory) { const projectMemories = memoryManager.list('project'); const codeMemories = memoryManager.list('code'); const memories = [...projectMemories, ...codeMemories].slice(0, 5); if (memories.length > 0) { summary += `\nRecent Project Info:\n`; memories.forEach(mem => { const preview = mem.value.substring(0, 80); summary += ` • ${mem.key}: ${preview}${mem.value.length > 80 ? '...' : ''}\n`; }); } } // Load coding guides if (shouldLoadGuides) { const allGuides = await loadGuides(); const guides = allGuides .sort((a, b) => new Date(b.lastUpdated).getTime() - new Date(a.lastUpdated).getTime()) .slice(0, 3); if (guides.length > 0) { summary += `\nActive Coding Guides:\n`; guides.forEach(guide => { summary += ` • ${guide.name} (${guide.category}): ${guide.description}\n`; }); } } // Restore context if (restoreContext) { const contextMemories = memoryManager.list('context').slice(0, 3); if (contextMemories.length > 0) { summary += `\nPrevious Context:\n`; contextMemories.forEach(ctx => { try { const data = JSON.parse(ctx.value); summary += ` • ${data.urgency?.toUpperCase() || 'MEDIUM'} priority from ${new Date(ctx.timestamp).toLocaleString()}\n`; } catch { summary += ` • Context from ${new Date(ctx.timestamp).toLocaleString()}\n`; } }); } } summary += '\nReady to continue development! What would you like to work on?'; return { content: [{ type: 'text', text: summary }] }; } catch (error) { return { content: [{ type: 'text', text: `${greeting ? greeting + '! ' : ''}Session started.\n\nReady to begin! What can I help you with?` }] }; } }
  • The ToolDefinition object defining the input schema, description, and metadata for the start_session tool.
    export const startSessionDefinition: ToolDefinition = { name: 'start_session', description: 'hi-ai|hello|start|begin session - Start session with context', inputSchema: { type: 'object', properties: { greeting: { type: 'string', description: 'Greeting message that triggered this action (e.g., "hi-ai", "hello")' }, loadMemory: { type: 'boolean', description: 'Load relevant project memories (default: true)' }, loadGuides: { type: 'boolean', description: 'Load applicable coding guides (default: true)' }, restoreContext: { type: 'boolean', description: 'Restore previous session context (default: true)' } }, required: [] }, annotations: { title: 'Start Session', audience: ['user', 'assistant'] } };
  • src/index.ts:104-160 (registration)
    Registration of the startSessionDefinition in the main tools array used by the MCP server for tool listing.
    const tools: ToolDefinition[] = [ // Time Utility Tools getCurrentTimeDefinition, // Semantic Code Analysis Tools (Serena-inspired) findSymbolDefinition, findReferencesDefinition, // Sequential Thinking Tools createThinkingChainDefinition, analyzeProblemDefinition, stepByStepAnalysisDefinition, breakDownProblemDefinition, thinkAloudProcessDefinition, formatAsPlanDefinition, // Browser Development Tools monitorConsoleLogsDefinition, inspectNetworkRequestsDefinition, // Memory Management Tools saveMemoryDefinition, recallMemoryDefinition, listMemoriesDefinition, deleteMemoryDefinition, searchMemoriesDefinition, updateMemoryDefinition, autoSaveContextDefinition, restoreSessionContextDefinition, prioritizeMemoryDefinition, startSessionDefinition, // Convention Tools getCodingGuideDefinition, applyQualityRulesDefinition, validateCodeQualityDefinition, analyzeComplexityDefinition, checkCouplingCohesionDefinition, suggestImprovementsDefinition, // Planning Tools generatePrdDefinition, createUserStoriesDefinition, analyzeRequirementsDefinition, featureRoadmapDefinition, // Prompt Enhancement Tools enhancePromptDefinition, analyzePromptDefinition, enhancePromptGeminiDefinition, // Reasoning Tools applyReasoningFrameworkDefinition, // UI Preview Tools previewUiAsciiDefinition ];
  • src/index.ts:654-655 (registration)
    Dispatch case in the main tool execution switch statement that routes calls to the startSession handler.
    case 'start_session': return await startSession(args as any) as CallToolResult;
  • src/index.ts:67-67 (registration)
    Import statement bringing in the startSession handler and definition for use in the main server.
    import { startSession, startSessionDefinition } from './tools/memory/startSession.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