Skip to main content
Glama

mcp-structured-memory

summaryHelpers.ts2.31 kB
import { Memory } from '../types/memory.js'; export interface SummaryData { memory: Memory; totalSections: number; nonEmptySections: number; listSections: number; totalItems: number; totalWords: number; totalChars: number; activeSections: string[]; daysSinceCreated: number; daysSinceUpdated: number; sections: Array<{ name: string; content: string }>; } export function generateSummaryText(data: SummaryData): string { const { memory, totalSections, nonEmptySections, listSections, totalItems, totalWords, totalChars, activeSections, daysSinceCreated, daysSinceUpdated, sections } = data; const created = new Date(memory.metadata.created); const updated = new Date(memory.metadata.updated); // Build summary text let summary = `# Memory Document Summary: ${memory.metadata.id}\n\n`; // Basic stats summary += `## Overview\n`; summary += `- **Created**: ${created.toLocaleDateString()} (${daysSinceCreated} days ago)\n`; summary += `- **Last Updated**: ${updated.toLocaleDateString()} (${daysSinceUpdated} days ago)\n`; summary += `- **Status**: ${memory.metadata.status || 'active'}\n`; if (memory.metadata.tags.length > 0) { summary += `- **Tags**: ${memory.metadata.tags.join(', ')}\n`; } summary += `\n## Content Metrics\n`; summary += `- **Total Sections**: ${totalSections} (${nonEmptySections} with content)\n`; summary += `- **List Sections**: ${listSections}\n`; summary += `- **Total Items**: ${totalItems}\n`; summary += `- **Word Count**: ${totalWords} words\n`; summary += `- **Character Count**: ${totalChars} characters\n`; // Section breakdown summary += `\n## Section Breakdown\n`; if (sections.length === 0) { summary += `No sections found.\n`; } else { sections.forEach(section => { const wordCount = section.content.trim().split(/\s+/).filter(w => w.length > 0).length; const isEmpty = section.content.trim().length === 0; summary += `- **${section.name}**: ${isEmpty ? 'Empty' : `${wordCount} words`}\n`; }); } // Most active sections if (activeSections.length > 0) { summary += `\n## Most Active Sections\n`; activeSections.forEach((name, index) => { summary += `${index + 1}. ${name}\n`; }); } return summary; }

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/nmeierpolys/mcp-structured-memory'

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