Skip to main content
Glama

MCP Content Analyzer

by DuncanDam
test-enhanced-system.js7.13 kB
#!/usr/bin/env node /** * Test script for the enhanced content database system * Tests the new 26-column structure and AI analysis capabilities */ import { ExcelManagerServer } from '../dist/servers/excel-manager.js'; import { ContentAnalysisEngine } from '../dist/services/content-analysis-engine.js'; import { config } from '../dist/utils/config.js'; import fs from 'fs/promises'; async function testEnhancedSystem() { console.log('🧪 Testing Enhanced Content Database System\n'); try { // Test 1: Excel Manager with Enhanced Structure console.log('1️⃣ Testing Enhanced Excel Structure...'); const excelManager = new ExcelManagerServer(); await excelManager.initialize(); // Test getting topic categories const categoriesResult = await excelManager.handleToolCall('get_topic_categories', {}); console.log(`✅ Topic Categories: ${categoriesResult.content?.categories?.length || 0} categories loaded`); // Test getting database stats const statsResult = await excelManager.handleToolCall('get_database_stats', {}); console.log(`✅ Database Stats: ${statsResult.content?.stats?.total_entries || 0} entries`); // Test 2: Content Analysis Engine console.log('\n2️⃣ Testing Content Analysis Engine...'); const analysisEngine = new ContentAnalysisEngine(); // Create sample content for testing const sampleContent = { url: 'https://example.com/family-communication', title: 'Building Bridges: Vietnamese Family Communication Strategies', content: ` Effective communication between Vietnamese parents and children requires understanding both traditional values and modern perspectives. Research shows that families who practice active listening see 70% improvement in understanding. Key strategies include: 1. Start conversations with respect for elders 2. Ask open-ended questions about goals and dreams 3. Share family stories to build cultural connection 4. Create regular family discussion time As one parent shared: "When we began listening to our daughter's perspective while sharing our own experiences, our family unity strengthened significantly." This approach honors Vietnamese cultural values while embracing generational learning. `, summary: 'Practical strategies for improving communication between Vietnamese parents and children, balancing traditional values with modern approaches.', metadata: { author: 'Dr. Mai Nguyen', publishDate: '2024-08-15', wordCount: 150, language: 'English' }, extractedAt: new Date().toISOString() }; // Perform content analysis const analysis = await analysisEngine.analyzeContent(sampleContent); console.log(`✅ Content Analysis Complete:`); console.log(` - Quality Score: ${analysis.qualityScore}/10`); console.log(` - Suitability Score: ${analysis.suitabilityScore}/10`); console.log(` - Cultural Relevance: ${(analysis.culturalRelevance * 100).toFixed(0)}%`); console.log(` - Categories: ${analysis.recommendedCategories.join(', ')}`); console.log(` - Quotes Found: ${analysis.extractedQuotes.length}`); console.log(` - Insights: ${analysis.identifiedInsights.length}`); // Test 3: Enhanced Content Entry Creation console.log('\n3️⃣ Testing Enhanced Content Entry Creation...'); const enhancedEntry = await analysisEngine.createEnhancedContentEntry(sampleContent, analysis); console.log(`✅ Enhanced Content Entry Created with 26 fields:`); console.log(` - Link to Article: ${enhancedEntry.linkToArticle}`); console.log(` - Chapter Relevance: ${enhancedEntry.chapterRelevance.join(', ')}`); console.log(` - Priority Level: ${enhancedEntry.priorityLevel}`); console.log(` - Source Credibility: ${enhancedEntry.sourceCredibility}`); console.log(` - Cultural Context: ${enhancedEntry.culturalContext}`); console.log(` - Quote Potential: ${enhancedEntry.quotePotential.substring(0, 50)}...`); // Test 4: Add Enhanced Entry to Excel console.log('\n4️⃣ Testing Excel Database Integration...'); // For now, we'll use the existing add_content_entry tool (to be enhanced later) const addResult = await excelManager.handleToolCall('add_content_entry', { url: enhancedEntry.linkToArticle, title: sampleContent.title, summary: enhancedEntry.shortDescription, topic: enhancedEntry.chapterRelevance[0] || 'Communication Bridge', keyPoints: enhancedEntry.keyWordsIdeas }); if (addResult.content?.success) { console.log(`✅ Content Entry Added to Excel Database`); } else { console.log(`❌ Failed to add content entry: ${addResult.content?.message}`); } // Test 5: Configuration System console.log('\n5️⃣ Testing Configuration System...'); console.log(`✅ Configuration Loaded:`); console.log(` - Database Path: ${config.excel.databasePath}`); console.log(` - Catalog Path: ${config.contentCatalog.guidelinesPath}`); console.log(` - AI Analysis: ${config.analysis.aiAnalysisEnabled ? 'Enabled' : 'Disabled'}`); console.log(` - Quote Extraction: ${config.analysis.quoteExtractionEnabled ? 'Enabled' : 'Disabled'}`); console.log(` - Cultural Analysis: ${config.analysis.culturalContextAnalysis ? 'Enabled' : 'Disabled'}`); // Test 6: Content Catalog Guidelines console.log('\n6️⃣ Testing Content Catalog Guidelines...'); try { const catalogExists = await fs.access(config.contentCatalog.guidelinesPath).then(() => true).catch(() => false); if (catalogExists) { const catalogContent = await fs.readFile(config.contentCatalog.guidelinesPath, 'utf-8'); console.log(`✅ Content Catalog Guidelines: ${catalogContent.length} characters loaded`); console.log(` - Contains chapter criteria: ${catalogContent.includes('Chapter Relevance Criteria') ? 'Yes' : 'No'}`); console.log(` - Contains quality standards: ${catalogContent.includes('Quality Thresholds') ? 'Yes' : 'No'}`); } else { console.log(`⚠️ Content Catalog Guidelines not found at: ${config.contentCatalog.guidelinesPath}`); } } catch (error) { console.log(`❌ Error reading catalog guidelines: ${error.message}`); } console.log('\n🎉 Enhanced Content Database System Test Complete!'); console.log('\n📊 Test Results Summary:'); console.log(' ✅ Excel 26-column structure: Ready'); console.log(' ✅ AI Content Analysis: Functional'); console.log(' ✅ Quality Scoring: Operational'); console.log(' ✅ Cultural Relevance: Working'); console.log(' ✅ Quote Extraction: Active'); console.log(' ✅ Configuration System: Complete'); console.log(' ✅ Vietnamese Family Context: Integrated'); } catch (error) { console.error('❌ Test failed:', error.message); console.error('Stack trace:', error.stack); process.exit(1); } } // Run the test testEnhancedSystem().catch(console.error);

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/DuncanDam/my-mcp'

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