Skip to main content
Glama

Chat Context MCP

by aolshaun
test-workspace-extraction.ts3.16 kB
/** * Test workspace extraction from Cursor sessions */ import { CursorDB, getCursorDBPath, getWorkspaceInfo } from '../src/core/index.js'; console.log('='.repeat(80)); console.log('Cursor Context - Workspace Extraction Test'); console.log('='.repeat(80)); const dbPath = getCursorDBPath(); const db = new CursorDB(dbPath); console.log('\nAnalyzing sessions for workspace information...\n'); const sessionIds = db.listComposerIds(20); let sessionsWithProjects = 0; let sessionsWithoutProjects = 0; let multiWorkspaceSessions = 0; const projectCounts: Record<string, number> = {}; for (const sessionId of sessionIds) { try { const bubbles = db.getSessionBubbles(sessionId); if (bubbles.length === 0) { continue; // Skip empty sessions } const workspaceInfo = getWorkspaceInfo(bubbles); if (workspaceInfo.hasProject) { sessionsWithProjects++; if (workspaceInfo.projectName) { projectCounts[workspaceInfo.projectName] = (projectCounts[workspaceInfo.projectName] || 0) + 1; } if (workspaceInfo.isMultiWorkspace) { multiWorkspaceSessions++; console.log(`[Multi-Workspace] Session ${sessionId.substring(0, 8)}...`); console.log(` Workspaces: ${workspaceInfo.allPaths.join(', ')}`); } } else { sessionsWithoutProjects++; } } catch (error) { // Skip sessions that error } } console.log('\n' + '='.repeat(80)); console.log('Summary'); console.log('='.repeat(80)); console.log(`Total sessions analyzed: ${sessionIds.length}`); console.log(`Sessions with projects: ${sessionsWithProjects}`); console.log(`Sessions without projects (general): ${sessionsWithoutProjects}`); console.log(`Multi-workspace sessions: ${multiWorkspaceSessions}`); console.log('\n' + '-'.repeat(80)); console.log('Projects Found:'); console.log('-'.repeat(80)); const sortedProjects = Object.entries(projectCounts) .sort((a, b) => b[1] - a[1]) .slice(0, 10); // Top 10 if (sortedProjects.length > 0) { sortedProjects.forEach(([project, count]) => { console.log(` ${project}: ${count} session(s)`); }); } else { console.log(' No projects found (sessions may not have tool results yet)'); } // Show detailed example of one session with workspace console.log('\n' + '-'.repeat(80)); console.log('Example Session with Workspace:'); console.log('-'.repeat(80)); for (const sessionId of sessionIds) { try { const bubbles = db.getSessionBubbles(sessionId); const workspaceInfo = getWorkspaceInfo(bubbles); if (workspaceInfo.hasProject) { console.log(`Session ID: ${sessionId}`); console.log(`Primary Path: ${workspaceInfo.primaryPath}`); console.log(`Project Name: ${workspaceInfo.projectName}`); console.log(`All Paths: ${workspaceInfo.allPaths.join(', ')}`); console.log(`Is Multi-Workspace: ${workspaceInfo.isMultiWorkspace}`); console.log(`Message Count: ${bubbles.length}`); break; } } catch (error) { // Skip } } db.close(); console.log('\n' + '='.repeat(80)); console.log('✓ Workspace extraction test complete!'); console.log('='.repeat(80));

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/aolshaun/chat-context-mcp'

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