Skip to main content
Glama

documcp

by tosin2013
index.ts21.6 kB
/** * Memory System for DocuMCP * Provides persistent memory and learning capabilities */ export { JSONLStorage, type MemoryEntry } from './storage.js'; export { MemoryManager, type MemoryContext, type MemorySearchOptions } from './manager.js'; export { EnhancedMemoryManager, type EnhancedRecommendation, type IntelligentAnalysis, } from './enhanced-manager.js'; export { IncrementalLearningSystem, type ProjectFeatures, type LearningPattern, type LearningInsight, } from './learning.js'; export { KnowledgeGraph, type GraphNode, type GraphEdge, type GraphPath, type RecommendationPath, } from './knowledge-graph.js'; export { ContextualMemoryRetrieval, type RetrievalContext, type ContextualMatch, type RetrievalResult, } from './contextual-retrieval.js'; export { MultiAgentMemorySharing, type AgentIdentity, type SharedMemory, type CollaborativeInsight, } from './multi-agent-sharing.js'; export { MemoryPruningSystem, type PruningPolicy, type OptimizationMetrics, type PruningResult, } from './pruning.js'; export { TemporalMemoryAnalysis, type TemporalPattern, type TemporalMetrics, type PredictionResult, type TemporalInsight, } from './temporal-analysis.js'; export { MemoryVisualizationSystem, type VisualizationConfig, type ChartData, type DashboardData, type NetworkVisualization, } from './visualization.js'; export { MemoryExportImportSystem, type ExportOptions, type ImportOptions, type ExportResult, type ImportResult, type MigrationPlan, } from './export-import.js'; export { initializeMemory, rememberAnalysis, rememberRecommendation, rememberDeployment, rememberConfiguration, recallProjectHistory, getProjectInsights, getSimilarProjects, cleanupOldMemories, exportMemories, importMemories, getMemoryStatistics, getMemoryManager, handleMemoryRecall, handleMemoryIntelligentAnalysis, handleMemoryEnhancedRecommendation, } from './integration.js'; // Memory Tools for MCP export const memoryTools = [ { name: 'memory_recall', description: 'Recall memories about a project or topic', inputSchema: { type: 'object', properties: { query: { type: 'string', description: 'Search query or project ID', }, type: { type: 'string', enum: ['analysis', 'recommendation', 'deployment', 'configuration', 'interaction', 'all'], description: 'Type of memory to recall', }, limit: { type: 'number', description: 'Maximum number of memories to return', default: 10, }, }, required: ['query'], }, }, { name: 'memory_intelligent_analysis', description: 'Get intelligent analysis with patterns, predictions, and recommendations', inputSchema: { type: 'object', properties: { projectPath: { type: 'string', description: 'Path to the project for analysis', }, baseAnalysis: { type: 'object', description: 'Base analysis data to enhance', }, }, required: ['projectPath', 'baseAnalysis'], }, }, { name: 'memory_enhanced_recommendation', description: 'Get enhanced recommendations using learning and knowledge graph', inputSchema: { type: 'object', properties: { projectPath: { type: 'string', description: 'Path to the project', }, baseRecommendation: { type: 'object', description: 'Base recommendation to enhance', }, projectFeatures: { type: 'object', properties: { language: { type: 'string' }, framework: { type: 'string' }, size: { type: 'string', enum: ['small', 'medium', 'large'] }, complexity: { type: 'string', enum: ['simple', 'moderate', 'complex'] }, hasTests: { type: 'boolean' }, hasCI: { type: 'boolean' }, hasDocs: { type: 'boolean' }, isOpenSource: { type: 'boolean' }, }, required: ['language'], }, }, required: ['projectPath', 'baseRecommendation', 'projectFeatures'], }, }, { name: 'memory_learning_stats', description: 'Get comprehensive learning and knowledge graph statistics', inputSchema: { type: 'object', properties: { includeDetails: { type: 'boolean', description: 'Include detailed statistics', default: true, }, }, }, }, { name: 'memory_knowledge_graph', description: 'Query the knowledge graph for relationships and paths', inputSchema: { type: 'object', properties: { query: { type: 'object', properties: { nodeTypes: { type: 'array', items: { type: 'string' }, description: 'Filter by node types', }, edgeTypes: { type: 'array', items: { type: 'string' }, description: 'Filter by edge types', }, startNode: { type: 'string', description: 'Starting node for path queries', }, maxDepth: { type: 'number', description: 'Maximum path depth', default: 3, }, }, }, }, required: ['query'], }, }, { name: 'memory_contextual_search', description: 'Perform contextual memory retrieval with intelligent ranking', inputSchema: { type: 'object', properties: { query: { type: 'string', description: 'Search query', }, context: { type: 'object', properties: { currentProject: { type: 'object', properties: { path: { type: 'string' }, language: { type: 'string' }, framework: { type: 'string' }, size: { type: 'string', enum: ['small', 'medium', 'large'] }, }, }, userIntent: { type: 'object', properties: { action: { type: 'string', enum: ['analyze', 'recommend', 'deploy', 'troubleshoot', 'learn'], }, urgency: { type: 'string', enum: ['low', 'medium', 'high'] }, experience: { type: 'string', enum: ['novice', 'intermediate', 'expert'] }, }, }, temporalContext: { type: 'object', properties: { recency: { type: 'string', enum: ['recent', 'all', 'historical'] }, timeRange: { type: 'object', properties: { start: { type: 'string' }, end: { type: 'string' }, }, }, }, }, }, }, options: { type: 'object', properties: { maxResults: { type: 'number', default: 10 }, minRelevance: { type: 'number', default: 0.3 }, includeReasoning: { type: 'boolean', default: true }, }, }, }, required: ['query', 'context'], }, }, { name: 'memory_agent_network', description: 'Manage multi-agent memory sharing and collaboration', inputSchema: { type: 'object', properties: { action: { type: 'string', enum: [ 'register_agent', 'share_memory', 'sync_request', 'get_insights', 'network_status', ], description: 'Action to perform', }, agentInfo: { type: 'object', properties: { name: { type: 'string' }, capabilities: { type: 'array', items: { type: 'string' } }, specializations: { type: 'array', items: { type: 'string' } }, trustLevel: { type: 'string', enum: ['low', 'medium', 'high', 'trusted'] }, }, }, memoryId: { type: 'string', description: 'Memory ID for sharing operations', }, targetAgent: { type: 'string', description: 'Target agent for sync operations', }, options: { type: 'object', properties: { anonymize: { type: 'boolean', default: false }, requireValidation: { type: 'boolean', default: false }, }, }, }, required: ['action'], }, }, { name: 'memory_insights', description: 'Get insights and patterns from memory', inputSchema: { type: 'object', properties: { projectId: { type: 'string', description: 'Project ID to analyze', }, timeRange: { type: 'object', properties: { start: { type: 'string', format: 'date-time' }, end: { type: 'string', format: 'date-time' }, }, description: 'Time range for analysis', }, }, }, }, { name: 'memory_similar', description: 'Find similar projects from memory', inputSchema: { type: 'object', properties: { analysisId: { type: 'string', description: 'Analysis ID to find similar projects for', }, limit: { type: 'number', description: 'Maximum number of similar projects', default: 5, }, }, required: ['analysisId'], }, }, { name: 'memory_export', description: 'Export memories to JSON or CSV', inputSchema: { type: 'object', properties: { format: { type: 'string', enum: ['json', 'csv'], description: 'Export format', default: 'json', }, filter: { type: 'object', properties: { type: { type: 'string' }, projectId: { type: 'string' }, startDate: { type: 'string', format: 'date-time' }, endDate: { type: 'string', format: 'date-time' }, }, description: 'Filter memories to export', }, }, }, }, { name: 'memory_cleanup', description: 'Clean up old memories', inputSchema: { type: 'object', properties: { daysToKeep: { type: 'number', description: 'Number of days of memories to keep', default: 30, }, dryRun: { type: 'boolean', description: 'Preview what would be deleted without actually deleting', default: false, }, }, }, }, { name: 'memory_pruning', description: 'Intelligent memory pruning and optimization', inputSchema: { type: 'object', properties: { policy: { type: 'object', properties: { maxAge: { type: 'number', description: 'Maximum age in days', default: 180 }, maxSize: { type: 'number', description: 'Maximum storage size in MB', default: 500 }, maxEntries: { type: 'number', description: 'Maximum number of entries', default: 50000, }, preservePatterns: { type: 'array', items: { type: 'string' }, description: 'Pattern types to preserve', }, compressionThreshold: { type: 'number', description: 'Compress entries older than X days', default: 30, }, redundancyThreshold: { type: 'number', description: 'Remove similar entries with similarity > X', default: 0.85, }, }, }, dryRun: { type: 'boolean', description: 'Preview pruning without executing', default: false, }, }, }, }, { name: 'memory_temporal_analysis', description: 'Analyze temporal patterns and trends in memory data', inputSchema: { type: 'object', properties: { query: { type: 'object', properties: { timeRange: { type: 'object', properties: { start: { type: 'string', format: 'date-time' }, end: { type: 'string', format: 'date-time' }, }, }, granularity: { type: 'string', enum: ['hour', 'day', 'week', 'month', 'year'], default: 'day', }, aggregation: { type: 'string', enum: ['count', 'success_rate', 'activity_level', 'diversity'], default: 'count', }, filters: { type: 'object', properties: { types: { type: 'array', items: { type: 'string' } }, projects: { type: 'array', items: { type: 'string' } }, outcomes: { type: 'array', items: { type: 'string' } }, tags: { type: 'array', items: { type: 'string' } }, }, }, }, }, analysisType: { type: 'string', enum: ['patterns', 'metrics', 'predictions', 'insights'], default: 'patterns', }, }, }, }, { name: 'memory_visualization', description: 'Generate visual representations of memory data', inputSchema: { type: 'object', properties: { visualizationType: { type: 'string', enum: ['dashboard', 'timeline', 'network', 'heatmap', 'distribution', 'trends', 'custom'], default: 'dashboard', }, options: { type: 'object', properties: { timeRange: { type: 'object', properties: { start: { type: 'string', format: 'date-time' }, end: { type: 'string', format: 'date-time' }, }, }, includeCharts: { type: 'array', items: { type: 'string' } }, config: { type: 'object', properties: { width: { type: 'number', default: 800 }, height: { type: 'number', default: 600 }, theme: { type: 'string', enum: ['light', 'dark', 'auto'], default: 'light' }, exportFormat: { type: 'string', enum: ['svg', 'png', 'json', 'html'], default: 'svg', }, interactive: { type: 'boolean', default: true }, }, }, }, }, customVisualization: { type: 'object', properties: { type: { type: 'string', enum: [ 'line', 'bar', 'scatter', 'heatmap', 'network', 'sankey', 'treemap', 'timeline', ], }, query: { type: 'object', properties: { filters: { type: 'object' }, groupBy: { type: 'string' }, aggregation: { type: 'string' }, }, }, }, }, }, }, }, { name: 'memory_export_advanced', description: 'Advanced memory export with multiple formats and options', inputSchema: { type: 'object', properties: { outputPath: { type: 'string', description: 'Output file path' }, options: { type: 'object', properties: { format: { type: 'string', enum: ['json', 'jsonl', 'csv', 'xml', 'yaml', 'sqlite', 'archive'], default: 'json', }, compression: { type: 'string', enum: ['gzip', 'zip', 'none'], default: 'none' }, includeMetadata: { type: 'boolean', default: true }, includeLearning: { type: 'boolean', default: true }, includeKnowledgeGraph: { type: 'boolean', default: true }, filters: { type: 'object', properties: { types: { type: 'array', items: { type: 'string' } }, dateRange: { type: 'object', properties: { start: { type: 'string', format: 'date-time' }, end: { type: 'string', format: 'date-time' }, }, }, projects: { type: 'array', items: { type: 'string' } }, tags: { type: 'array', items: { type: 'string' } }, outcomes: { type: 'array', items: { type: 'string' } }, }, }, anonymize: { type: 'object', properties: { enabled: { type: 'boolean', default: false }, fields: { type: 'array', items: { type: 'string' } }, method: { type: 'string', enum: ['hash', 'remove', 'pseudonymize'], default: 'hash', }, }, }, encryption: { type: 'object', properties: { enabled: { type: 'boolean', default: false }, algorithm: { type: 'string', enum: ['aes-256-gcm', 'aes-192-gcm', 'aes-128-gcm'], default: 'aes-256-gcm', }, password: { type: 'string' }, }, }, }, }, }, required: ['outputPath'], }, }, { name: 'memory_import_advanced', description: 'Advanced memory import with validation and conflict resolution', inputSchema: { type: 'object', properties: { inputPath: { type: 'string', description: 'Input file path' }, options: { type: 'object', properties: { format: { type: 'string', enum: ['json', 'jsonl', 'csv', 'xml', 'yaml', 'sqlite', 'archive'], default: 'json', }, mode: { type: 'string', enum: ['merge', 'replace', 'append', 'update'], default: 'merge', }, validation: { type: 'string', enum: ['strict', 'loose', 'none'], default: 'strict' }, conflictResolution: { type: 'string', enum: ['skip', 'overwrite', 'merge', 'rename'], default: 'skip', }, backup: { type: 'boolean', default: true }, dryRun: { type: 'boolean', default: false }, mapping: { type: 'object', description: 'Field mapping for different schemas' }, transformation: { type: 'object', properties: { enabled: { type: 'boolean', default: false }, rules: { type: 'array', items: { type: 'object', properties: { field: { type: 'string' }, operation: { type: 'string', enum: ['convert', 'transform', 'validate'] }, params: { type: 'object' }, }, }, }, }, }, }, }, }, required: ['inputPath'], }, }, { name: 'memory_migration', description: 'Create and execute migration plans between different memory systems', inputSchema: { type: 'object', properties: { action: { type: 'string', enum: ['create_plan', 'execute_migration', 'validate_compatibility'], default: 'create_plan', }, sourcePath: { type: 'string', description: 'Source data path' }, migrationPlan: { type: 'object', properties: { sourceSystem: { type: 'string' }, targetSystem: { type: 'string', default: 'DocuMCP' }, mapping: { type: 'object' }, transformations: { type: 'array' }, validation: { type: 'array' }, postProcessing: { type: 'array', items: { type: 'string' } }, }, }, sourceSchema: { type: 'object', description: 'Source system schema' }, targetSchema: { type: 'object', description: 'Target system schema' }, options: { type: 'object', properties: { autoMap: { type: 'boolean', default: true }, preserveStructure: { type: 'boolean', default: true }, customMappings: { type: 'object' }, }, }, }, }, }, { name: 'memory_optimization_metrics', description: 'Get comprehensive optimization metrics and recommendations', inputSchema: { type: 'object', properties: { includeRecommendations: { type: 'boolean', default: true }, timeRange: { type: 'object', properties: { start: { type: 'string', format: 'date-time' }, end: { type: 'string', format: 'date-time' }, }, }, }, }, }, ];

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/tosin2013/documcp'

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