Skip to main content
Glama

Chat Context MCP

by aolshaun
list-found-projects.cjsβ€’2.3 kB
const Database = require('better-sqlite3'); const path = require('path'); const os = require('os'); const dbPath = path.join( os.homedir(), 'Library/Application Support/Cursor/User/globalStorage/state.vscdb' ); const db = new Database(dbPath, { readonly: true }); const projectPaths = new Set(); function extractFilePaths(obj, paths) { if (typeof obj === 'string') { // Check if it looks like a file path if (obj.includes('/play/') || obj.includes('/Documents/') || obj.includes('file:///')) { paths.add(obj); } return; } if (Array.isArray(obj)) { obj.forEach(item => extractFilePaths(item, paths)); return; } if (obj !== null && typeof obj === 'object') { Object.values(obj).forEach(value => extractFilePaths(value, paths)); } } function extractProjectName(filePath) { // Remove file:// prefix let cleanPath = filePath.replace(/^file:\/\//, ''); // Common patterns const patterns = [ /\/play\/([^\/]+)/, /\/Documents\/([^\/]+)/, /\/projects\/([^\/]+)/, ]; for (const pattern of patterns) { const match = cleanPath.match(pattern); if (match) { return match[1]; } } return null; } const stmt = db.prepare('SELECT value FROM cursorDiskKV WHERE key LIKE \'composerData:%\''); let processed = 0; for (const row of stmt.iterate()) { try { const composerData = JSON.parse(row.value); const paths = new Set(); extractFilePaths(composerData, paths); for (const p of paths) { projectPaths.add(p); } processed++; if (processed % 50 === 0) { process.stdout.write(`\rProcessed ${processed} sessions...`); } } catch (err) {} } console.log(`\n\nExtracted ${projectPaths.size} unique file paths`); console.log('\nπŸ“ FOUND PROJECTS:\n'); const projects = new Map(); // project name -> count for (const filePath of projectPaths) { const project = extractProjectName(filePath); if (project) { projects.set(project, (projects.get(project) || 0) + 1); } } // Sort by count const sorted = Array.from(projects.entries()) .sort((a, b) => b[1] - a[1]); for (const [project, count] of sorted) { console.log(`${project.padEnd(40)} β†’ ${count} file references`); } console.log(`\nTotal unique projects: ${projects.size}`); db.close();

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