Skip to main content
Glama
aegntic

Obsidian Elite RAG MCP Server

index.ts18.5 kB
#!/usr/bin/env node /** * DailyDoco Pro MCP Server * * Provides Claude with the ability to: * - Analyze projects and detect documentation opportunities * - Control video capture and compilation * - Run AI test audience simulations * - Manage personal brand learning * - Generate authentic human-like content * - Access performance metrics and optimization insights */ import { Server } from '@modelcontextprotocol/sdk/server/index.js'; import { StdioServerTransport } from '@modelcontextprotocol/sdk/server/stdio.js'; import { CallToolRequestSchema, ErrorCode, ListToolsRequestSchema, McpError, } from '@modelcontextprotocol/sdk/types.js'; import { z } from 'zod'; import { ProjectAnalyzer } from './tools/project-analyzer.js'; import { CaptureController } from './tools/capture-controller.js'; import { AITestAudience } from './tools/ai-test-audience.js'; import { PersonalBrandManager } from './tools/personal-brand.js'; import { AuthenticityEngine } from './tools/authenticity-engine.js'; import { PerformanceMonitor } from './tools/performance-monitor.js'; import { VideoCompiler } from './tools/video-compiler.js'; import { ProjectFingerprinter } from './tools/project-fingerprinter.js'; import { ModularAIEngine } from './tools/ai-models.js'; /** * Main MCP Server class for DailyDoco Pro */ class DailyDocoMCPServer { private server: Server; private projectAnalyzer: ProjectAnalyzer; private captureController: CaptureController; private aiTestAudience: AITestAudience; private brandManager: PersonalBrandManager; private authenticityEngine: AuthenticityEngine; private performanceMonitor: PerformanceMonitor; private videoCompiler: VideoCompiler; private projectFingerprinter: ProjectFingerprinter; private aiEngine: ModularAIEngine; constructor() { this.server = new Server( { name: 'dailydoco-pro', version: '1.0.0', description: 'DailyDoco Pro MCP Server - Elite automated documentation platform', } ); // Initialize tool handlers this.projectAnalyzer = new ProjectAnalyzer(); this.captureController = new CaptureController(); this.aiTestAudience = new AITestAudience(); this.brandManager = new PersonalBrandManager(); this.authenticityEngine = new AuthenticityEngine(); this.performanceMonitor = new PerformanceMonitor(); this.videoCompiler = new VideoCompiler(); this.projectFingerprinter = new ProjectFingerprinter(); this.aiEngine = new ModularAIEngine(); this.setupHandlers(); } private setupHandlers(): void { // List available tools this.server.setRequestHandler(ListToolsRequestSchema, async () => { return { tools: [ // Project Analysis Tools { name: 'analyze_project', description: 'Analyze a project structure and identify documentation opportunities with 99%+ accuracy', inputSchema: { type: 'object', properties: { path: { type: 'string', description: 'Path to the project directory', }, include_git_analysis: { type: 'boolean', description: 'Include Git history analysis', default: true, }, detect_complexity: { type: 'boolean', description: 'Analyze code complexity and suggest documentation priority', default: true, }, }, required: ['path'], }, }, { name: 'fingerprint_project', description: 'Generate unique project fingerprint with technology stack detection', inputSchema: { type: 'object', properties: { path: { type: 'string', description: 'Project path' }, deep_analysis: { type: 'boolean', default: false }, }, required: ['path'], }, }, // Capture Control Tools { name: 'start_capture', description: 'Start intelligent video capture with predictive moment detection', inputSchema: { type: 'object', properties: { project_path: { type: 'string', description: 'Project to document' }, quality: { type: 'string', enum: ['720p', '1080p', '1440p', '4K'], default: '1080p', }, capture_audio: { type: 'boolean', default: true }, ai_optimization: { type: 'boolean', default: true }, privacy_filters: { type: 'boolean', default: true }, }, required: ['project_path'], }, }, { name: 'stop_capture', description: 'Stop video capture and begin processing', inputSchema: { type: 'object', properties: { auto_compile: { type: 'boolean', default: true }, run_test_audience: { type: 'boolean', default: true }, }, }, }, { name: 'get_capture_status', description: 'Get real-time capture status and metrics', inputSchema: { type: 'object', properties: {} }, }, // AI Test Audience Tools { name: 'run_test_audience', description: 'Run AI test audience simulation with 50-100 synthetic viewers', inputSchema: { type: 'object', properties: { video_id: { type: 'string', description: 'Video to test' }, audience_size: { type: 'number', minimum: 10, maximum: 100, default: 50, }, persona_distribution: { type: 'object', properties: { junior_developer: { type: 'number', minimum: 0, maximum: 1 }, senior_developer: { type: 'number', minimum: 0, maximum: 1 }, tech_lead: { type: 'number', minimum: 0, maximum: 1 }, product_manager: { type: 'number', minimum: 0, maximum: 1 }, }, }, optimization_focus: { type: 'array', items: { type: 'string', enum: ['engagement', 'retention', 'comprehension', 'virality'], }, }, }, required: ['video_id'], }, }, { name: 'generate_personas', description: 'Generate synthetic viewer personas for testing', inputSchema: { type: 'object', properties: { count: { type: 'number', minimum: 1, maximum: 100 }, target_niche: { type: 'string' }, experience_levels: { type: 'array', items: { type: 'string', enum: ['beginner', 'intermediate', 'advanced', 'expert'] }, }, }, required: ['count'], }, }, // Personal Brand Learning Tools { name: 'analyze_brand_performance', description: 'Analyze personal brand evolution and performance metrics', inputSchema: { type: 'object', properties: { user_id: { type: 'string' }, time_period: { type: 'string', enum: ['week', 'month', 'quarter', 'year'] }, include_predictions: { type: 'boolean', default: true }, competitive_analysis: { type: 'boolean', default: false }, }, required: ['user_id'], }, }, { name: 'get_brand_recommendations', description: 'Get AI-powered brand optimization recommendations', inputSchema: { type: 'object', properties: { user_id: { type: 'string' }, focus_areas: { type: 'array', items: { type: 'string', enum: ['content', 'audience', 'platform', 'growth'] }, }, }, required: ['user_id'], }, }, { name: 'learn_from_performance', description: 'Update personal brand model with new performance data', inputSchema: { type: 'object', properties: { user_id: { type: 'string' }, video_id: { type: 'string' }, real_metrics: { type: 'object' }, platform: { type: 'string' }, }, required: ['user_id', 'video_id', 'real_metrics'], }, }, // Authenticity Engine Tools { name: 'validate_authenticity', description: 'Validate content authenticity and AI detection resistance (95%+ target)', inputSchema: { type: 'object', properties: { content_id: { type: 'string' }, content_type: { type: 'string', enum: ['video', 'audio', 'text'] }, detection_tests: { type: 'array', items: { type: 'string', enum: ['gpt_zero', 'originality_ai', 'platform_detection'] }, }, }, required: ['content_id', 'content_type'], }, }, { name: 'apply_human_fingerprint', description: 'Apply human authenticity enhancements to content', inputSchema: { type: 'object', properties: { content_id: { type: 'string' }, fingerprint_level: { type: 'string', enum: ['minimal', 'moderate', 'high', 'maximum'], default: 'high', }, components: { type: 'array', items: { type: 'string', enum: ['speech_patterns', 'mouse_behavior', 'typing_patterns', 'error_injection'], }, }, }, required: ['content_id'], }, }, // Video Compilation Tools { name: 'compile_video', description: 'Compile video with AI optimization and professional quality', inputSchema: { type: 'object', properties: { capture_session_id: { type: 'string' }, template: { type: 'string', enum: ['quick_demo', 'tutorial', 'deep_dive', 'bug_fix', 'custom'], default: 'tutorial', }, ai_narration: { type: 'boolean', default: true }, personal_branding: { type: 'boolean', default: true }, quality_preset: { type: 'string', enum: ['draft', 'standard', 'high', 'broadcast'], default: 'high', }, target_duration: { type: 'number', description: 'Target duration in seconds' }, }, required: ['capture_session_id'], }, }, { name: 'get_compilation_status', description: 'Get video compilation progress and status', inputSchema: { type: 'object', properties: { compilation_id: { type: 'string' }, }, required: ['compilation_id'], }, }, // Performance Monitoring Tools { name: 'get_system_metrics', description: 'Get real-time system performance metrics', inputSchema: { type: 'object', properties: { include_ai_metrics: { type: 'boolean', default: true }, include_capture_metrics: { type: 'boolean', default: true }, time_range: { type: 'string', enum: ['1m', '5m', '15m', '1h'], default: '5m' }, }, }, }, { name: 'run_performance_benchmark', description: 'Run comprehensive performance benchmark', inputSchema: { type: 'object', properties: { benchmark_type: { type: 'string', enum: ['capture', 'ai', 'video_processing', 'full_system'], default: 'full_system', }, duration: { type: 'number', default: 60, description: 'Duration in seconds' }, }, }, }, // Utility Tools { name: 'get_project_insights', description: 'Get AI-powered insights about documentation opportunities', inputSchema: { type: 'object', properties: { project_path: { type: 'string' }, analysis_depth: { type: 'string', enum: ['quick', 'standard', 'deep'], default: 'standard' }, }, required: ['project_path'], }, }, { name: 'optimize_workflow', description: 'Get workflow optimization suggestions based on usage patterns', inputSchema: { type: 'object', properties: { user_id: { type: 'string' }, workflow_type: { type: 'string', enum: ['documentation', 'tutorial', 'demo'] }, }, required: ['user_id'], }, }, ], }; }); // Handle tool calls this.server.setRequestHandler(CallToolRequestSchema, async (request) => { const { name, arguments: args } = request.params; try { switch (name) { // Project Analysis case 'analyze_project': return await this.projectAnalyzer.analyzeProject(args as any); case 'fingerprint_project': return await this.projectFingerprinter.fingerprintProject(args as any); // Capture Control case 'start_capture': return await this.captureController.startCapture(args as any); case 'stop_capture': return await this.captureController.stopCapture(args as any); case 'get_capture_status': return await this.captureController.getCaptureStatus(); // AI Test Audience case 'run_test_audience': return await this.aiTestAudience.runTestAudience(args as any); case 'generate_personas': return await this.aiTestAudience.generatePersonas(args as any); // Personal Brand Learning case 'analyze_brand_performance': return await this.brandManager.analyzeBrandPerformance(args as any); case 'get_brand_recommendations': return await this.brandManager.getBrandRecommendations(args as any); case 'learn_from_performance': return await this.brandManager.learnFromPerformance(args as any); // Authenticity Engine case 'validate_authenticity': return await this.authenticityEngine.validateAuthenticity(args as any); case 'apply_human_fingerprint': return await this.authenticityEngine.applyHumanFingerprint(args as any); // Video Compilation case 'compile_video': return await this.videoCompiler.compileVideo(args as any); case 'get_compilation_status': return await this.videoCompiler.getCompilationStatus(args as any); // Performance Monitoring case 'get_system_metrics': return await this.performanceMonitor.getSystemMetrics(args as any); case 'run_performance_benchmark': return await this.performanceMonitor.runBenchmark(args as any); // Utility Tools case 'get_project_insights': return await this.projectAnalyzer.getProjectInsights(args as any); case 'optimize_workflow': return await this.brandManager.optimizeWorkflow(args as any); default: throw new McpError( ErrorCode.MethodNotFound, `Tool not found: ${name}` ); } } catch (error) { console.error(`Error executing tool ${name}:`, error); throw new McpError( ErrorCode.InternalError, `Failed to execute tool: ${error instanceof Error ? error.message : String(error)}` ); } }); // Error handling this.server.onerror = (error) => { console.error('[MCP Error]', error); }; process.on('SIGINT', async () => { console.log('Shutting down DailyDoco Pro MCP Server...'); await this.shutdown(); process.exit(0); }); } /** * Start the MCP server */ async start(): Promise<void> { console.log('Starting DailyDoco Pro MCP Server...'); console.log('Version: 1.0.0'); console.log('Features: AI Test Audience, Personal Brand Learning, Modular AI Architecture'); const transport = new StdioServerTransport(); await this.server.connect(transport); console.log('DailyDoco Pro MCP Server is running and ready to serve Claude!'); } /** * Shutdown the server gracefully */ async shutdown(): Promise<void> { console.log('Shutting down MCP server...'); // Cleanup resources await Promise.all([ this.captureController.cleanup?.(), this.performanceMonitor.cleanup?.(), this.videoCompiler.cleanup?.(), ].filter(Boolean)); console.log('MCP server shutdown complete'); } } /** * Main entry point */ async function main(): Promise<void> { const server = new DailyDocoMCPServer(); await server.start(); } // Start the server if (import.meta.url === `file://${process.argv[1]}`) { main().catch((error) => { console.error('Failed to start DailyDoco Pro MCP Server:', error); process.exit(1); }); }

Latest Blog Posts

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/aegntic/aegntic-MCP'

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