Skip to main content
Glama
SessionController.ts2.15 kB
import { Request, Response } from 'express'; import { SessionInfo, Capabilities } from '../models'; export class SessionController { private sessions: Map<string, SessionInfo> = new Map(); /** * Initialize a new session * @param req Request with capabilities * @param res Response with session info */ public initSession(req: Request, res: Response): void { try { const capabilities: string[] = req.body.tools || []; const sessionId = this.generateSessionId(); const sessionInfo: SessionInfo = { sessionId, capabilities }; this.sessions.set(sessionId, sessionInfo); res.status(200).json(sessionInfo); } catch (error) { res.status(500).json({ error: 'Failed to initialize session' }); } } /** * List all capabilities * @param req Request * @param res Response with capabilities */ public listCapabilities(req: Request, res: Response): void { try { // For now, return a static list of capabilities // In a real implementation, this would be dynamic const capabilities: Capabilities = { tools: [ 'readFile', 'writeFile', 'runCommand', 'listFiles' ] }; res.status(200).json(capabilities); } catch (error) { res.status(500).json({ error: 'Failed to list capabilities' }); } } /** * Get session info by ID * @param req Request with session ID * @param res Response with session info */ public getSession(req: Request, res: Response): void { try { const sessionId = req.params.sessionId; const session = this.sessions.get(sessionId); if (!session) { res.status(404).json({ error: 'Session not found' }); return; } res.status(200).json(session); } catch (error) { res.status(500).json({ error: 'Failed to get session' }); } } /** * Generate a unique session ID * @returns Unique session ID */ private generateSessionId(): string { return Date.now().toString(36) + Math.random().toString(36).substr(2); } }

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/Nom-nom-hub/fullstack-mcp'

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