@houtini/gemini-mcp 1.2.1 → 1.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -583,6 +583,160 @@ Use Gemini deep research with 3 iterations focusing on cost analysis and market
583
583
 
584
584
  **Note**: Deep research takes several minutes as it performs multiple iterations. Perfect for when you need comprehensive, well-researched analysis rather than quick answers.
585
585
 
586
+ ## Video Description for Accessibility
587
+
588
+ The server includes a specialized **video description tool** designed to generate detailed audio descriptions of YouTube video content for accessibility purposes. This tool analyzes visual content including actions, spatial relationships, text overlays, and provides time-stamped descriptions suitable for screen reader users.
589
+
590
+ ### How Video Description Works
591
+
592
+ The tool uses Gemini's multimodal understanding capabilities to:
593
+
594
+ 1. **Analyze Visual Content** - Processes the video frame by frame to understand what's happening
595
+ 2. **Describe Actions** - Details all movements, gestures, and procedures shown
596
+ 3. **Spatial Awareness** - Describes positions, movements, and relationships between elements
597
+ 4. **Text Recognition** - Transcribes all on-screen text, captions, and overlays verbatim
598
+ 5. **Structured Output** - Organizes information in screen reader-friendly formats
599
+
600
+ ### Using Video Description
601
+
602
+ **Basic Usage:**
603
+ ```
604
+ Describe this YouTube video for accessibility: https://www.youtube.com/watch?v=abc123
605
+ ```
606
+
607
+ **With Specific Detail Level:**
608
+ ```
609
+ Generate a comprehensive accessibility description for this video: https://www.youtube.com/watch?v=abc123
610
+ ```
611
+
612
+ **Focus on Specific Aspects:**
613
+ ```
614
+ Describe the actions shown in this instructional video: https://www.youtube.com/watch?v=abc123
615
+ ```
616
+
617
+ ### Description Parameters
618
+
619
+ | Parameter | Options | Default | Description |
620
+ |-----------|---------|---------|-------------|
621
+ | `detail_level` | `brief`, `standard`, `comprehensive` | `standard` | Controls description depth |
622
+ | `accessibility_mode` | `true`, `false` | `true` | Includes spatial, color, and text details |
623
+ | `include_timestamps` | `true`, `false` | `true` | Adds timestamps to descriptions |
624
+ | `output_format` | `narrative`, `structured` | `structured` | Output as prose or JSON |
625
+ | `focus` | `actions`, `visual_elements`, `text_on_screen`, `all` | `all` | What to emphasize |
626
+
627
+ ### Detail Levels Explained
628
+
629
+ **Brief** (2-3 paragraphs)
630
+ - High-level summary of video content
631
+ - Main actions and key points only
632
+ - Perfect for quick overview
633
+
634
+ **Standard** (5-8 scenes)
635
+ - Balanced description with key scenes
636
+ - Major actions and visual elements
637
+ - Recommended for most use cases
638
+
639
+ **Comprehensive** (10-15+ scenes)
640
+ - Extensive detail for every significant moment
641
+ - Complete coverage of all visual information
642
+ - Best for instructional or technical content
643
+
644
+ ### Accessibility Mode Features
645
+
646
+ When enabled (default), includes:
647
+
648
+ - **Spatial Descriptions**: "on the left side of frame", "moving from right to left"
649
+ - **Color Information**: "red laser line", "blue indicator light"
650
+ - **Text Transcription**: All on-screen text verbatim
651
+ - **Facial Expressions**: When relevant to understanding
652
+ - **Sound Cues**: Visible audio indicators
653
+ - **Concrete Language**: Avoids vague references like "this" or "here"
654
+
655
+ ### Output Formats
656
+
657
+ **Structured JSON** (default):
658
+ ```json
659
+ {
660
+ "video_title": "How to Install Picture Mounts",
661
+ "duration": "4:32",
662
+ "scene_count": 8,
663
+ "scenes": [
664
+ {
665
+ "timestamp": "0:00-0:45",
666
+ "description": "Close-up of hands positioning metal cleat on frame back",
667
+ "actions": ["Marking screw holes", "Using pencil"],
668
+ "tools_visible": ["Metal cleat", "Pencil"],
669
+ "text_on_screen": null,
670
+ "spatial_notes": "Cleat positioned horizontally on upper portion of frame",
671
+ "colors": "Silver metal cleat against dark wood frame"
672
+ }
673
+ ],
674
+ "key_techniques": ["Using laser level", "Locating wall studs"],
675
+ "tools_list": ["Drill", "Laser level", "Stud finder"],
676
+ "summary": "Demonstrates professional picture hanging using interlocking cleats"
677
+ }
678
+ ```
679
+
680
+ **Narrative Prose**:
681
+ ```
682
+ [0:00] The video opens with a close-up view of hands positioning a silver metal
683
+ cleat horizontally on the back of a dark wooden picture frame...
684
+ ```
685
+
686
+ ### Perfect For
687
+
688
+ **Accessibility Needs**:
689
+ - Screen reader users
690
+ - Visually impaired individuals
691
+ - Audio description requirements
692
+ - WCAG compliance
693
+
694
+ **Content Analysis**:
695
+ - Tutorial documentation
696
+ - Training material transcription
697
+ - Video content indexing
698
+ - Instructional content breakdown
699
+
700
+ **Research & Education**:
701
+ - Video content study
702
+ - Procedural analysis
703
+ - Teaching material preparation
704
+
705
+ ### Best Practices
706
+
707
+ 1. **Choose appropriate detail level** - Brief for overviews, comprehensive for tutorials
708
+ 2. **Enable accessibility mode** - Always on for screen reader users
709
+ 3. **Use structured format** - Better for navigation with assistive technology
710
+ 4. **Include timestamps** - Essential for sync with video playback
711
+ 5. **Focus parameter** - Use when specific aspects are most important
712
+
713
+ ### Technical Requirements
714
+
715
+ - **Supported Platforms**: YouTube videos only
716
+ - **Model Used**: Gemini 2.5 Flash (optimized for video understanding)
717
+ - **Response Time**: 30-60 seconds depending on detail level
718
+ - **Token Usage**: 8,000-16,000 tokens for comprehensive descriptions
719
+
720
+ ### Example Use Cases
721
+
722
+ **Tutorial Documentation**:
723
+ ```
724
+ Generate a comprehensive accessibility description focusing on actions for this DIY tutorial:
725
+ https://www.youtube.com/watch?v=example
726
+ ```
727
+
728
+ **Content Indexing**:
729
+ ```
730
+ Create a brief structured description of this product demo:
731
+ https://www.youtube.com/watch?v=example
732
+ ```
733
+
734
+ **Training Materials**:
735
+ ```
736
+ Describe the visual elements and text shown in this training video:
737
+ https://www.youtube.com/watch?v=example
738
+ ```
739
+
586
740
  ## API Reference
587
741
 
588
742
  ### Available Tools
@@ -653,6 +807,58 @@ Conduct iterative multi-step research on complex topics.
653
807
  }
654
808
  ```
655
809
 
810
+ #### `gemini_describe_video`
811
+
812
+ Generate detailed audio descriptions of YouTube video content for accessibility.
813
+
814
+ **Parameters:**
815
+
816
+ | Parameter | Type | Required | Default | Description |
817
+ |-----------|------|----------|---------|-------------|
818
+ | `url` | string | Yes | - | YouTube URL to analyze |
819
+ | `detail_level` | string | No | `standard` | Level of detail: `brief`, `standard`, `comprehensive` |
820
+ | `accessibility_mode` | boolean | No | `true` | Include spatial descriptions, colors, text overlays |
821
+ | `include_timestamps` | boolean | No | `true` | Add timestamps for all major actions |
822
+ | `output_format` | string | No | `structured` | Format: `narrative` (prose) or `structured` (JSON) |
823
+ | `focus` | string | No | `all` | Focus: `actions`, `visual_elements`, `text_on_screen`, `all` |
824
+
825
+ **Example:**
826
+ ```json
827
+ {
828
+ "url": "https://www.youtube.com/watch?v=abc123",
829
+ "detail_level": "comprehensive",
830
+ "accessibility_mode": true,
831
+ "include_timestamps": true,
832
+ "output_format": "structured",
833
+ "focus": "all"
834
+ }
835
+ ```
836
+
837
+ **Response Format (Structured)**:
838
+ ```json
839
+ {
840
+ "video_title": "How to Install Picture Mounts",
841
+ "duration": "4:32",
842
+ "scene_count": 8,
843
+ "scenes": [
844
+ {
845
+ "timestamp": "0:00-0:45",
846
+ "description": "Detailed scene description",
847
+ "actions": ["action1", "action2"],
848
+ "tools_visible": ["tool1", "tool2"],
849
+ "text_on_screen": "Exact text or null",
850
+ "spatial_notes": "Spatial relationships",
851
+ "colors": "Color descriptions"
852
+ }
853
+ ],
854
+ "key_techniques": ["technique1", "technique2"],
855
+ "tools_list": ["all tools shown"],
856
+ "materials_list": ["all materials"],
857
+ "safety_notes": ["safety considerations"],
858
+ "summary": "Overall summary"
859
+ }
860
+ ```
861
+
656
862
  ### Available Models
657
863
 
658
864
  Models are **dynamically discovered** from Google's API. The exact list may vary, but typically includes:
@@ -883,6 +1089,19 @@ By using this software, you acknowledge that you have read this disclaimer and a
883
1089
 
884
1090
  ## Changelog
885
1091
 
1092
+ ### v1.3.0
1093
+
1094
+ **Accessibility Features**
1095
+ - Added `gemini_describe_video` tool for YouTube video accessibility descriptions
1096
+ - Comprehensive audio description generation with spatial awareness and text recognition
1097
+ - Screen reader-friendly structured JSON output format
1098
+ - Configurable detail levels (brief, standard, comprehensive)
1099
+ - Time-stamped scene descriptions for video synchronization
1100
+ - Focus parameters for emphasizing specific content aspects (actions, visual elements, text)
1101
+ - Accessibility mode with spatial descriptions, colors, and text overlays
1102
+ - Support for narrative prose and structured JSON output formats
1103
+ - Optimized for Gemini 2.5 Flash's multimodal video understanding
1104
+
886
1105
  ### v1.0.4
887
1106
 
888
1107
  **Security and Dependency Updates**
@@ -58,7 +58,7 @@ exports.config = {
58
58
  threshold: 'BLOCK_MEDIUM_AND_ABOVE'
59
59
  }
60
60
  ],
61
- defaultModel: 'gemini-2.5-flash',
61
+ defaultModel: 'gemini-2.5-flash-lite-preview-09-2025',
62
62
  maxTokens: 16384,
63
63
  temperature: 0.7,
64
64
  defaultGrounding: true,
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/config/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA0CA,wCAOC;AAhDD,+CAAiC;AAEjC,MAAM,CAAC,MAAM,EAAE,CAAC;AAEH,QAAA,MAAM,GAAW;IAC5B,MAAM,EAAE;QACN,MAAM,EAAE,OAAO,CAAC,GAAG,CAAC,cAAc;QAClC,cAAc,EAAE;YACd;gBACE,QAAQ,EAAE,0BAA0B;gBACpC,SAAS,EAAE,wBAAwB;aACpC;YACD;gBACE,QAAQ,EAAE,2BAA2B;gBACrC,SAAS,EAAE,wBAAwB;aACpC;YACD;gBACE,QAAQ,EAAE,iCAAiC;gBAC3C,SAAS,EAAE,wBAAwB;aACpC;YACD;gBACE,QAAQ,EAAE,iCAAiC;gBAC3C,SAAS,EAAE,wBAAwB;aACpC;SACF;QACD,YAAY,EAAE,kBAAkB;QAChC,SAAS,EAAE,KAAK;QAChB,WAAW,EAAE,GAAG;QAChB,gBAAgB,EAAE,IAAI;QACtB,uBAAuB,EAAE,OAAO,CAAC,GAAG,CAAC,yBAAyB,KAAK,MAAM;KAC1E;IACD,MAAM,EAAE;QACN,IAAI,EAAE,YAAY;QAClB,OAAO,EAAE,OAAO;KACjB;IACD,OAAO,EAAE;QACP,KAAK,EAAE,OAAO,CAAC,GAAG,CAAC,SAAS,IAAI,MAAM;QACtC,MAAM,EAAE,UAAU;KACnB;CACF,CAAC;AAEF,SAAgB,cAAc;IAC5B,IAAI,CAAC,cAAM,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC;QAC1B,MAAM,IAAI,KAAK,CACb,+CAA+C;YAC/C,yEAAyE,CAC1E,CAAC;IACJ,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/config/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA0CA,wCAOC;AAhDD,+CAAiC;AAEjC,MAAM,CAAC,MAAM,EAAE,CAAC;AAEH,QAAA,MAAM,GAAW;IAC5B,MAAM,EAAE;QACN,MAAM,EAAE,OAAO,CAAC,GAAG,CAAC,cAAc;QAClC,cAAc,EAAE;YACd;gBACE,QAAQ,EAAE,0BAA0B;gBACpC,SAAS,EAAE,wBAAwB;aACpC;YACD;gBACE,QAAQ,EAAE,2BAA2B;gBACrC,SAAS,EAAE,wBAAwB;aACpC;YACD;gBACE,QAAQ,EAAE,iCAAiC;gBAC3C,SAAS,EAAE,wBAAwB;aACpC;YACD;gBACE,QAAQ,EAAE,iCAAiC;gBAC3C,SAAS,EAAE,wBAAwB;aACpC;SACF;QACD,YAAY,EAAE,uCAAuC;QACrD,SAAS,EAAE,KAAK;QAChB,WAAW,EAAE,GAAG;QAChB,gBAAgB,EAAE,IAAI;QACtB,uBAAuB,EAAE,OAAO,CAAC,GAAG,CAAC,yBAAyB,KAAK,MAAM;KAC1E;IACD,MAAM,EAAE;QACN,IAAI,EAAE,YAAY;QAClB,OAAO,EAAE,OAAO;KACjB;IACD,OAAO,EAAE;QACP,KAAK,EAAE,OAAO,CAAC,GAAG,CAAC,SAAS,IAAI,MAAM;QACtC,MAAM,EAAE,UAAU;KACnB;CACF,CAAC;AAEF,SAAgB,cAAc;IAC5B,IAAI,CAAC,cAAM,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC;QAC1B,MAAM,IAAI,KAAK,CACb,+CAA+C;YAC/C,yEAAyE,CAC1E,CAAC;IACJ,CAAC;AACH,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAiBA,cAAM,eAAe;IACnB,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,aAAa,CAAgB;IACrC,OAAO,CAAC,KAAK,CAAmB;;IAkChC,OAAO,CAAC,eAAe;IAevB,OAAO,CAAC,aAAa;IAoDf,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;CAsB7B;AAkCD,OAAO,EAAE,eAAe,EAAE,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAkBA,cAAM,eAAe;IACnB,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,aAAa,CAAgB;IACrC,OAAO,CAAC,KAAK,CAAmB;;IAkChC,OAAO,CAAC,eAAe;IAiBvB,OAAO,CAAC,aAAa;IAoDf,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;CAsB7B;AAkCD,OAAO,EAAE,eAAe,EAAE,CAAC"}
package/dist/index.js CHANGED
@@ -13,6 +13,7 @@ const gemini_1 = require("./services/gemini");
13
13
  const gemini_chat_1 = require("./tools/gemini-chat");
14
14
  const gemini_list_models_1 = require("./tools/gemini-list-models");
15
15
  const gemini_deep_research_1 = require("./tools/gemini-deep-research");
16
+ const gemini_describe_video_1 = require("./tools/gemini-describe-video");
16
17
  const logger_1 = __importDefault(require("./utils/logger"));
17
18
  const error_handler_1 = require("./utils/error-handler");
18
19
  class GeminiMcpServer {
@@ -48,9 +49,11 @@ class GeminiMcpServer {
48
49
  const geminiChatTool = new gemini_chat_1.GeminiChatTool(this.geminiService);
49
50
  const geminiListModelsTool = new gemini_list_models_1.GeminiListModelsTool(this.geminiService);
50
51
  const geminiDeepResearchTool = new gemini_deep_research_1.GeminiDeepResearchTool(this.geminiService);
52
+ const geminiDescribeVideoTool = new gemini_describe_video_1.GeminiDescribeVideoTool(this.geminiService);
51
53
  this.tools.set('gemini_chat', geminiChatTool);
52
54
  this.tools.set('gemini_list_models', geminiListModelsTool);
53
55
  this.tools.set('gemini_deep_research', geminiDeepResearchTool);
56
+ this.tools.set('gemini_describe_video', geminiDescribeVideoTool);
54
57
  logger_1.default.info('Tools initialized', {
55
58
  toolCount: this.tools.size,
56
59
  tools: Array.from(this.tools.keys())
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/services/gemini/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAC9C,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EACL,WAAW,EACX,YAAY,EACZ,kBAAkB,EAGnB,MAAM,SAAS,CAAC;AAGjB,qBAAa,aAAc,SAAQ,WAAW;IAC5C,OAAO,CAAC,KAAK,CAAqB;IAClC,OAAO,CAAC,MAAM,CAAe;IAC7B,OAAO,CAAC,eAAe,CAAmB;IAC1C,OAAO,CAAC,YAAY,CAAS;IAC7B,OAAO,CAAC,iBAAiB,CAAkB;IAC3C,OAAO,CAAC,qBAAqB,CAA8B;gBAE/C,MAAM,EAAE,YAAY;YAelB,uBAAuB;YAcvB,gBAAgB;YAsBhB,kBAAkB;IAmChC,OAAO,CAAC,kBAAkB;IAkD1B,OAAO,CAAC,cAAc;IAKtB,OAAO,CAAC,iBAAiB;IAyCzB,eAAe,IAAI,MAAM;IAIzB,OAAO,CAAC,kBAAkB;IAkEpB,IAAI,CAAC,OAAO,EAAE,WAAW,GAAG,OAAO,CAAC,YAAY,CAAC;IA8IjD,UAAU,IAAI,OAAO,CAAC,kBAAkB,CAAC;IAezC,cAAc,IAAI,OAAO,CAAC,OAAO,CAAC;IAwBxC,OAAO,CAAC,iBAAiB;IAqBzB,kBAAkB,IAAI,MAAM,EAAE;IAI9B,qBAAqB,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM;CAIjD"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/services/gemini/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAC9C,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EACL,WAAW,EACX,YAAY,EACZ,kBAAkB,EAGnB,MAAM,SAAS,CAAC;AAGjB,qBAAa,aAAc,SAAQ,WAAW;IAC5C,OAAO,CAAC,KAAK,CAAqB;IAClC,OAAO,CAAC,MAAM,CAAe;IAC7B,OAAO,CAAC,eAAe,CAAmB;IAC1C,OAAO,CAAC,YAAY,CAAS;IAC7B,OAAO,CAAC,iBAAiB,CAAkB;IAC3C,OAAO,CAAC,qBAAqB,CAA8B;gBAE/C,MAAM,EAAE,YAAY;YAelB,uBAAuB;YAcvB,gBAAgB;YAsBhB,kBAAkB;IAmChC,OAAO,CAAC,kBAAkB;IAkD1B,OAAO,CAAC,cAAc;IAKtB,OAAO,CAAC,iBAAiB;IAyCzB,eAAe,IAAI,MAAM;IAIzB,OAAO,CAAC,kBAAkB;IAkEpB,IAAI,CAAC,OAAO,EAAE,WAAW,GAAG,OAAO,CAAC,YAAY,CAAC;IA8IjD,UAAU,IAAI,OAAO,CAAC,kBAAkB,CAAC;IAezC,cAAc,IAAI,OAAO,CAAC,OAAO,CAAC;IA4BxC,OAAO,CAAC,iBAAiB;IAqBzB,kBAAkB,IAAI,MAAM,EAAE;IAI9B,qBAAqB,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM;CAIjD"}
@@ -356,12 +356,13 @@ class GeminiService extends base_service_1.BaseService {
356
356
  this.logError('API key validation failed: missing key');
357
357
  return false;
358
358
  }
359
- // Test API access with a minimal request
360
- const model = this.genAI.getGenerativeModel({
361
- model: this.config.defaultModel,
362
- safetySettings: this.mapSafetySettings()
363
- });
364
- await model.generateContent('API validation check');
359
+ // Test API access by listing models (much faster than generateContent)
360
+ const apiKey = this.config.apiKey;
361
+ const response = await fetch(`https://generativelanguage.googleapis.com/v1beta/models?key=${apiKey}`, { signal: AbortSignal.timeout(5000) });
362
+ if (!response.ok) {
363
+ this.logError('API key validation failed: invalid response', new Error(`Status: ${response.status}`));
364
+ return false;
365
+ }
365
366
  this.logInfo('Gemini API key validation successful');
366
367
  return true;
367
368
  }
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/services/gemini/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/services/gemini/index.ts"],"names":[],"mappings":"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"}
@@ -7,7 +7,6 @@ export declare class GeminiDeepResearchTool {
7
7
  execute(args: any): Promise<TextContent[]>;
8
8
  private buildSmartContext;
9
9
  private buildSynthesisContext;
10
- private extractQueries;
11
10
  private extractSources;
12
11
  }
13
12
  //# sourceMappingURL=gemini-deep-research.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"gemini-deep-research.d.ts","sourceRoot":"","sources":["../../src/tools/gemini-deep-research.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,WAAW,EAAE,MAAM,oCAAoC,CAAC;AACvE,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAYnD,qBAAa,sBAAsB;IACrB,OAAO,CAAC,aAAa;gBAAb,aAAa,EAAE,aAAa;IAEhD,aAAa,IAAI,IAAI;IAmCf,OAAO,CAAC,IAAI,EAAE,GAAG,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC;IAoUhD,OAAO,CAAC,iBAAiB;IA4BzB,OAAO,CAAC,qBAAqB;IAc7B,OAAO,CAAC,cAAc;IA+DtB,OAAO,CAAC,cAAc;CAgBvB"}
1
+ {"version":3,"file":"gemini-deep-research.d.ts","sourceRoot":"","sources":["../../src/tools/gemini-deep-research.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,WAAW,EAAE,MAAM,oCAAoC,CAAC;AACvE,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAYnD,qBAAa,sBAAsB;IACrB,OAAO,CAAC,aAAa;gBAAb,aAAa,EAAE,aAAa;IAEhD,aAAa,IAAI,IAAI;IAmCf,OAAO,CAAC,IAAI,EAAE,GAAG,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC;IA0RhD,OAAO,CAAC,iBAAiB;IA4BzB,OAAO,CAAC,qBAAqB;IAa7B,OAAO,CAAC,cAAc;CAgBvB"}
@@ -71,59 +71,12 @@ class GeminiDeepResearchTool {
71
71
  report += `## Focus Areas\n${focusAreas.map((area) => `- ${area}`).join('\n')}\n\n`;
72
72
  }
73
73
  report += '## Research Process\n\n';
74
- report += '*This research involves multiple iterative searches and analysis steps. Please wait...*\n\n';
74
+ report += `*Conducting ${maxIterations} research iteration${maxIterations > 1 ? 's' : ''} with Google Search grounding...*\n\n`;
75
75
  const researchSteps = [];
76
76
  let cumulativeTokens = 0;
77
- report += '### Step 1: Creating Research Plan\n\n';
78
- // IMPROVED: More explicit planning prompt that forces specific queries
79
- const planningPrompt = `You are a research assistant. Create a detailed research plan for this question: "${researchQuestion}"
80
-
81
- ${focusAreas.length > 0 ? `Focus specifically on these areas: ${focusAreas.join(', ')}` : ''}
82
-
83
- Create EXACTLY ${maxIterations} specific, actionable research queries that will comprehensively answer this question.
84
-
85
- CRITICAL REQUIREMENTS:
86
- 1. Each query must be self-contained and include the main topic explicitly
87
- 2. Each query must be specific enough to guide a Google Search
88
- 3. Format as a numbered list: "1. [Your specific query here]"
89
- 4. Do NOT use vague phrases like "the topic", "this aspect", or "it" - always name the specific subject
90
- 5. Each query should be a complete question or statement that could stand alone
91
-
92
- Example format for a question about "Impact of electric vehicles on oil industry":
93
- 1. What is the current global adoption rate of electric vehicles and projected growth through 2030?
94
- 2. How have major oil companies' stock prices and valuations changed since 2020 in response to EV adoption?
95
- 3. What strategic pivots are oil companies making to adapt to declining gasoline demand from EVs?
96
-
97
- Now create ${maxIterations} research queries following this format for the question: "${researchQuestion}"`;
98
- let planResponse;
99
- try {
100
- planResponse = await this.geminiService.chat({
101
- message: planningPrompt,
102
- model: model,
103
- temperature: 0.7,
104
- maxTokens: 4096,
105
- grounding: false
106
- });
107
- if (planResponse.usageMetadata) {
108
- cumulativeTokens += planResponse.usageMetadata.totalTokenCount;
109
- logger_1.default.info('Planning phase tokens', {
110
- used: planResponse.usageMetadata.totalTokenCount,
111
- cumulative: cumulativeTokens
112
- });
113
- }
114
- }
115
- catch (error) {
116
- logger_1.default.error('Planning phase failed', { error });
117
- throw new error_handler_1.McpError('Failed to create research plan. The question may be too complex. Try simplifying it.', 'RESEARCH_PLANNING_FAILED');
118
- }
119
- report += planResponse.content + '\n\n';
120
- // IMPROVED: Pass research question to extraction for better fallback
121
- const researchQueries = this.extractQueries(planResponse.content, maxIterations, researchQuestion);
122
- report += `### Step 2: Executing Research Queries\n\n`;
123
- report += `*Conducting ${researchQueries.length} research iterations...*\n\n`;
124
77
  let consecutiveFailures = 0;
125
- for (let i = 0; i < researchQueries.length; i++) {
126
- const query = researchQueries[i];
78
+ // Direct research iterations - just pass the question to Gemini with grounding
79
+ for (let i = 0; i < maxIterations; i++) {
127
80
  if (cumulativeTokens >= researchBudget) {
128
81
  logger_1.default.warn('Approaching token budget, stopping research iterations', {
129
82
  cumulative: cumulativeTokens,
@@ -132,22 +85,28 @@ Now create ${maxIterations} research queries following this format for the quest
132
85
  report += `\n*Note: Research stopped at iteration ${i + 1} due to token budget limits.*\n\n`;
133
86
  break;
134
87
  }
135
- logger_1.default.info(`Research iteration ${i + 1}/${researchQueries.length}`, {
136
- query,
88
+ logger_1.default.info(`Research iteration ${i + 1}/${maxIterations}`, {
137
89
  tokensUsed: cumulativeTokens,
138
90
  budget: researchBudget
139
91
  });
140
- report += `#### Research Query ${i + 1}: ${query}\n\n`;
92
+ // Build the research prompt - either focused on a specific area or the full question
93
+ let iterationPrompt = researchQuestion;
94
+ if (focusAreas.length > 0 && i < focusAreas.length) {
95
+ iterationPrompt = `${researchQuestion}\n\nFocus specifically on: ${focusAreas[i]}`;
96
+ report += `### Iteration ${i + 1}: ${focusAreas[i]}\n\n`;
97
+ }
98
+ else {
99
+ report += `### Iteration ${i + 1}\n\n`;
100
+ }
101
+ // Include context from previous research if available
141
102
  const contextContent = this.buildSmartContext(researchSteps, researchBudget - cumulativeTokens);
142
- const searchPrompt = `Research this specific question: "${query}"
143
-
144
- ${contextContent ? `Context from previous research:\n${contextContent}` : ''}
145
-
146
- Provide detailed, factual information with specific data points. Use Google Search grounding to find current information.`;
103
+ if (contextContent && i > 0) {
104
+ iterationPrompt += `\n\nContext from previous research:\n${contextContent}`;
105
+ }
147
106
  let searchResponse;
148
107
  try {
149
108
  searchResponse = await this.geminiService.chat({
150
- message: searchPrompt,
109
+ message: iterationPrompt,
151
110
  model: model,
152
111
  temperature: 0.5,
153
112
  maxTokens: 8192,
@@ -161,13 +120,12 @@ Provide detailed, factual information with specific data points. Use Google Sear
161
120
  remaining: researchBudget - cumulativeTokens
162
121
  });
163
122
  }
164
- // IMPROVED: Validate that grounding actually occurred
123
+ // Validate that grounding actually occurred
165
124
  if (searchResponse.groundingMetadata) {
166
125
  const hasSearches = (searchResponse.groundingMetadata.webSearchQueries?.length ?? 0) > 0;
167
126
  const hasSupports = (searchResponse.groundingMetadata.groundingSupports?.length ?? 0) > 0;
168
127
  if (!hasSearches && !hasSupports) {
169
128
  logger_1.default.warn(`Iteration ${i + 1}: Grounding enabled but no searches performed`, {
170
- query,
171
129
  responsePreview: searchResponse.content.substring(0, 200)
172
130
  });
173
131
  }
@@ -180,42 +138,39 @@ Provide detailed, factual information with specific data points. Use Google Sear
180
138
  }
181
139
  else {
182
140
  logger_1.default.warn(`Iteration ${i + 1}: No grounding metadata returned`, {
183
- query,
184
141
  groundingRequested: true
185
142
  });
186
143
  }
187
- // IMPROVED: Check for generic failure responses
188
- const responsePreview = searchResponse.content.substring(0, 100).toLowerCase();
189
- if (responsePreview.includes('please specify') ||
190
- responsePreview.includes('i need to know') ||
191
- responsePreview.includes('clarify the topic')) {
192
- throw new Error('Query was too vague - received generic response requesting clarification');
193
- }
194
144
  consecutiveFailures = 0; // Reset on success
195
145
  }
196
146
  catch (error) {
197
147
  consecutiveFailures++;
198
- const errorMsg = error.message;
148
+ const errorMessage = error.message || 'Unknown error';
199
149
  logger_1.default.error(`Research iteration ${i + 1} failed`, {
200
- error: errorMsg,
201
- query,
150
+ error: errorMessage,
202
151
  consecutiveFailures
203
152
  });
204
- // IMPROVED: Fail fast if queries are systematically failing
153
+ // Fail fast if queries are systematically failing
205
154
  if (consecutiveFailures >= 2 && researchSteps.length === 0) {
206
- throw new error_handler_1.McpError(`Multiple research queries failing consecutively. This usually means:\n` +
207
- `1. The queries are too vague (missing context about "${researchQuestion}")\n` +
208
- `2. Grounding/Google Search may not be available\n` +
209
- `3. The topic may need to be more specific\n\n` +
210
- `Last attempted query: "${query}"\n` +
211
- `Error: ${errorMsg}`, 'RESEARCH_QUERIES_FAILING');
155
+ throw new error_handler_1.McpError(`Multiple research iterations failing consecutively.\n\n` +
156
+ `Error: ${errorMessage}\n\n` +
157
+ `This usually means:\n` +
158
+ `1. The question may be too broad or ambiguous\n` +
159
+ `2. API rate limits or quota exceeded\n` +
160
+ `3. Content filtering or safety blocks\n` +
161
+ `4. Network or connectivity issues\n\n` +
162
+ `Try:\n` +
163
+ `- Breaking the question into smaller, more specific queries\n` +
164
+ `- Checking your API quota and rate limits\n` +
165
+ `- Simplifying the research question\n` +
166
+ `- Waiting a few moments before retrying`, 'RESEARCH_ITERATIONS_FAILING');
212
167
  }
213
- report += `*Research query ${i + 1} failed: ${errorMsg}*\n\n`;
168
+ report += `*Iteration ${i + 1} failed: ${errorMessage}*\n\n`;
214
169
  continue;
215
170
  }
216
171
  const sources = this.extractSources(searchResponse.content);
217
172
  researchSteps.push({
218
- query,
173
+ query: iterationPrompt,
219
174
  response: searchResponse.content,
220
175
  sources,
221
176
  usageMetadata: searchResponse.usageMetadata || {
@@ -227,57 +182,65 @@ Provide detailed, factual information with specific data points. Use Google Sear
227
182
  report += searchResponse.content + '\n\n';
228
183
  }
229
184
  if (researchSteps.length === 0) {
230
- throw new error_handler_1.McpError('All research iterations failed. Possible causes:\n' +
231
- '1. Research queries were too generic\n' +
232
- '2. Grounding/Google Search is not responding\n' +
233
- '3. Network or API issues\n\n' +
234
- 'Try simplifying the question or checking your internet connection.', 'ALL_ITERATIONS_FAILED');
185
+ throw new error_handler_1.McpError('All research iterations failed.\n\n' +
186
+ 'Possible causes:\n' +
187
+ '1. The question format may not be suitable for research\n' +
188
+ '2. Google Search grounding is not responding\n' +
189
+ '3. API rate limits or quota exceeded\n' +
190
+ '4. Network or connectivity issues\n\n' +
191
+ 'Try:\n' +
192
+ '- Rephrasing the question more clearly\n' +
193
+ '- Reducing max_iterations to 3\n' +
194
+ '- Checking your internet connection and API status\n' +
195
+ '- Waiting a few minutes before retrying', 'ALL_ITERATIONS_FAILED');
235
196
  }
236
- report += '### Step 3: Synthesizing Findings\n\n';
237
- const availableForSynthesis = Math.min(synthesisReserve, modelContextWindow - cumulativeTokens - 10000);
238
- logger_1.default.info('Synthesis phase', {
239
- tokensUsed: cumulativeTokens,
240
- synthesisReserve,
241
- availableForSynthesis,
242
- researchStepsCompleted: researchSteps.length
243
- });
244
- const synthesisContext = this.buildSynthesisContext(researchSteps, availableForSynthesis);
245
- const synthesisPrompt = `Based on all the research conducted, synthesize a comprehensive answer to the original question: "${researchQuestion}"
246
-
247
- Research conducted:
248
- ${synthesisContext}
249
-
250
- Create a comprehensive synthesis that:
251
- 1. Directly answers the research question
252
- 2. Integrates findings from all research queries
253
- 3. Highlights key insights and patterns
254
- 4. Notes any contradictions or gaps
255
- 5. Provides actionable conclusions
256
-
257
- Be thorough and well-structured.`;
258
- let synthesisResponse;
259
- try {
260
- synthesisResponse = await this.geminiService.chat({
261
- message: synthesisPrompt,
262
- model: model,
263
- temperature: 0.6,
264
- maxTokens: 16384,
265
- grounding: false
197
+ // Optional synthesis if we have multiple iterations
198
+ if (researchSteps.length > 1) {
199
+ report += '### Synthesis\n\n';
200
+ const availableForSynthesis = Math.min(synthesisReserve, modelContextWindow - cumulativeTokens - 10000);
201
+ logger_1.default.info('Synthesis phase', {
202
+ tokensUsed: cumulativeTokens,
203
+ synthesisReserve,
204
+ availableForSynthesis,
205
+ researchStepsCompleted: researchSteps.length
266
206
  });
267
- if (synthesisResponse.usageMetadata) {
268
- cumulativeTokens += synthesisResponse.usageMetadata.totalTokenCount;
269
- logger_1.default.info('Synthesis tokens', {
270
- used: synthesisResponse.usageMetadata.totalTokenCount,
271
- total: cumulativeTokens
207
+ const synthesisContext = this.buildSynthesisContext(researchSteps, availableForSynthesis);
208
+ const synthesisPrompt = `Based on the research conducted, provide a comprehensive synthesis answering: "${researchQuestion}"
209
+
210
+ Research findings:
211
+ ${synthesisContext}
212
+
213
+ Create a synthesis that:
214
+ 1. Directly answers the research question
215
+ 2. Integrates findings from all iterations
216
+ 3. Highlights key insights and patterns
217
+ 4. Notes any contradictions or gaps
218
+ 5. Provides actionable conclusions`;
219
+ let synthesisResponse;
220
+ try {
221
+ synthesisResponse = await this.geminiService.chat({
222
+ message: synthesisPrompt,
223
+ model: model,
224
+ temperature: 0.6,
225
+ maxTokens: 16384,
226
+ grounding: false
272
227
  });
228
+ if (synthesisResponse.usageMetadata) {
229
+ cumulativeTokens += synthesisResponse.usageMetadata.totalTokenCount;
230
+ logger_1.default.info('Synthesis tokens', {
231
+ used: synthesisResponse.usageMetadata.totalTokenCount,
232
+ total: cumulativeTokens
233
+ });
234
+ }
273
235
  }
236
+ catch (error) {
237
+ const errorMessage = error.message || 'Unknown error';
238
+ logger_1.default.error('Synthesis phase failed', { error: errorMessage });
239
+ report += `*Note: Synthesis phase encountered an error (${errorMessage}). Individual research findings are provided above.*\n\n`;
240
+ synthesisResponse = { content: 'Synthesis unavailable. Please review the individual research findings above.' };
241
+ }
242
+ report += synthesisResponse.content + '\n\n';
274
243
  }
275
- catch (error) {
276
- logger_1.default.error('Synthesis phase failed', { error });
277
- report += '*Note: Synthesis phase encountered an error. Individual research findings are provided above.*\n\n';
278
- synthesisResponse = { content: 'Synthesis unavailable due to technical limitations. Please review the individual research findings above for insights.' };
279
- }
280
- report += synthesisResponse.content + '\n\n';
281
244
  report += '### Sources Consulted\n\n';
282
245
  const allSources = new Set();
283
246
  researchSteps.forEach(step => {
@@ -291,7 +254,7 @@ Be thorough and well-structured.`;
291
254
  else {
292
255
  report += '*Note: No external sources were cited. This may indicate grounding did not function properly.*\n';
293
256
  }
294
- report += `\n---\n\n*Research completed with ${researchSteps.length} successful iterations using ${model}*\n`;
257
+ report += `\n---\n\n*Research completed with ${researchSteps.length} successful iteration${researchSteps.length > 1 ? 's' : ''} using ${model}*\n`;
295
258
  report += `*Total tokens used: ${cumulativeTokens.toLocaleString()} / ${modelContextWindow.toLocaleString()} available*\n`;
296
259
  report += `*Context window utilization: ${((cumulativeTokens / modelContextWindow) * 100).toFixed(1)}%*\n`;
297
260
  logger_1.default.info('Deep research completed successfully', {
@@ -308,7 +271,12 @@ Be thorough and well-structured.`;
308
271
  if (error instanceof error_handler_1.McpError) {
309
272
  return (0, error_handler_1.createToolResult)(false, error.message, error);
310
273
  }
311
- return (0, error_handler_1.createToolResult)(false, `Deep research failed: ${error.message}. Try reducing max_iterations or simplifying the question.`, error);
274
+ const errorMessage = error.message || 'Unknown error';
275
+ return (0, error_handler_1.createToolResult)(false, `Deep research failed: ${errorMessage}\n\n` +
276
+ `Try:\n` +
277
+ `- Simplifying or rephrasing the question\n` +
278
+ `- Reducing max_iterations\n` +
279
+ `- Breaking it into smaller, more focused queries`, error);
312
280
  }
313
281
  }
314
282
  buildSmartContext(steps, maxTokens) {
@@ -321,7 +289,7 @@ Be thorough and well-structured.`;
321
289
  for (let i = steps.length - 1; i >= 0; i--) {
322
290
  const step = steps[i];
323
291
  const summaryLength = Math.min(1000, step.response.length);
324
- const stepSummary = `Query ${i + 1}: ${step.query}\nKey findings: ${step.response.substring(0, summaryLength)}${summaryLength < step.response.length ? '...' : ''}\n\n`;
292
+ const stepSummary = `Previous finding ${i + 1}: ${step.response.substring(0, summaryLength)}${summaryLength < step.response.length ? '...' : ''}\n\n`;
325
293
  if (currentLength + stepSummary.length > maxChars) {
326
294
  logger_1.default.info('Context budget reached, including most recent research only', {
327
295
  includedSteps: steps.length - i,
@@ -341,60 +309,9 @@ Be thorough and well-structured.`;
341
309
  const truncatedResponse = step.response.length > maxCharsPerStep
342
310
  ? step.response.substring(0, maxCharsPerStep) + '...'
343
311
  : step.response;
344
- return `Research Query ${i + 1}: ${step.query}\nFindings: ${truncatedResponse}`;
312
+ return `Research Iteration ${i + 1}:\n${truncatedResponse}`;
345
313
  }).join('\n\n');
346
314
  }
347
- // IMPROVED: Pass research question for context-aware fallback queries
348
- extractQueries(planText, maxQueries, researchQuestion) {
349
- const queries = [];
350
- const lines = planText.split('\n');
351
- // Try multiple patterns to extract queries
352
- for (const line of lines) {
353
- // Pattern 1: Standard numbered list (1. query)
354
- let match = line.match(/^\d+\.\s*(.+?)(?:\s*[-:]\s*|$)/);
355
- // Pattern 2: Bold numbered list (**1. query**)
356
- if (!match) {
357
- match = line.match(/^\*\*\d+\.\s*(.+?)\*\*/);
358
- }
359
- // Pattern 3: Query within bold markdown (**Research Query: query**)
360
- if (!match) {
361
- match = line.match(/\*\*Research Query:\s*(.+?)\*\*/i);
362
- }
363
- if (match) {
364
- let query = match[1].trim();
365
- // Remove any trailing punctuation or markdown
366
- query = query.replace(/[*_]+$/, '').trim();
367
- // Clean up query - remove question marks at the end if very long
368
- if (query.length > 200) {
369
- const questionMark = query.lastIndexOf('?');
370
- if (questionMark > 50) {
371
- query = query.substring(0, questionMark + 1);
372
- }
373
- }
374
- if (query.length > 10 && query.length < 500) {
375
- queries.push(query);
376
- }
377
- }
378
- }
379
- // IMPROVED: Use context-aware fallback queries that include the research question
380
- if (queries.length === 0) {
381
- logger_1.default.warn('Failed to extract queries from plan, using context-aware fallback queries');
382
- const fallbackQueries = [
383
- `Provide comprehensive overview of: ${researchQuestion}`,
384
- `What are the key aspects and current trends related to: ${researchQuestion}`,
385
- `What are the recent developments and changes regarding: ${researchQuestion}`,
386
- `Compare different perspectives and approaches to: ${researchQuestion}`,
387
- `What are the conclusions and recommendations about: ${researchQuestion}`
388
- ];
389
- logger_1.default.info('Using fallback queries with context', {
390
- researchQuestion: researchQuestion.substring(0, 100),
391
- fallbackCount: fallbackQueries.length
392
- });
393
- return fallbackQueries.slice(0, maxQueries);
394
- }
395
- logger_1.default.info('Extracted queries from plan', { count: queries.length, queries });
396
- return queries.slice(0, maxQueries);
397
- }
398
315
  extractSources(content) {
399
316
  const sources = [];
400
317
  const urlRegex = /https?:\/\/[^\s)]+/g;
@@ -1 +1 @@
1
- {"version":3,"file":"gemini-deep-research.js","sourceRoot":"","sources":["../../src/tools/gemini-deep-research.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"gemini-deep-research.js","sourceRoot":"","sources":["../../src/tools/gemini-deep-research.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,38 @@
1
+ import { TextContent, Tool } from '@modelcontextprotocol/sdk/types.js';
2
+ import { GeminiService } from '../services/gemini';
3
+ export interface VideoDescriptionRequest {
4
+ url: string;
5
+ detail_level?: 'brief' | 'standard' | 'comprehensive';
6
+ accessibility_mode?: boolean;
7
+ include_timestamps?: boolean;
8
+ output_format?: 'narrative' | 'structured';
9
+ focus?: 'actions' | 'visual_elements' | 'text_on_screen' | 'all';
10
+ }
11
+ export interface VideoScene {
12
+ timestamp: string;
13
+ description: string;
14
+ actions?: string[];
15
+ tools_visible?: string[];
16
+ text_on_screen?: string | null;
17
+ spatial_notes?: string;
18
+ colors?: string;
19
+ }
20
+ export interface StructuredVideoDescription {
21
+ video_title?: string;
22
+ duration?: string;
23
+ scene_count: number;
24
+ scenes: VideoScene[];
25
+ key_techniques?: string[];
26
+ tools_list?: string[];
27
+ materials_list?: string[];
28
+ safety_notes?: string[];
29
+ summary: string;
30
+ }
31
+ export declare class GeminiDescribeVideoTool {
32
+ private geminiService;
33
+ constructor(geminiService: GeminiService);
34
+ getDefinition(): Tool;
35
+ private buildAccessibilityPrompt;
36
+ execute(args: any): Promise<TextContent[]>;
37
+ }
38
+ //# sourceMappingURL=gemini-describe-video.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"gemini-describe-video.d.ts","sourceRoot":"","sources":["../../src/tools/gemini-describe-video.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,IAAI,EAAE,MAAM,oCAAoC,CAAC;AACvE,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAInD,MAAM,WAAW,uBAAuB;IACtC,GAAG,EAAE,MAAM,CAAC;IACZ,YAAY,CAAC,EAAE,OAAO,GAAG,UAAU,GAAG,eAAe,CAAC;IACtD,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B,aAAa,CAAC,EAAE,WAAW,GAAG,YAAY,CAAC;IAC3C,KAAK,CAAC,EAAE,SAAS,GAAG,iBAAiB,GAAG,gBAAgB,GAAG,KAAK,CAAC;CAClE;AAED,MAAM,WAAW,UAAU;IACzB,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IACnB,aAAa,CAAC,EAAE,MAAM,EAAE,CAAC;IACzB,cAAc,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC/B,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,0BAA0B;IACzC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,UAAU,EAAE,CAAC;IACrB,cAAc,CAAC,EAAE,MAAM,EAAE,CAAC;IAC1B,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;IACtB,cAAc,CAAC,EAAE,MAAM,EAAE,CAAC;IAC1B,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;IACxB,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,qBAAa,uBAAuB;IACtB,OAAO,CAAC,aAAa;gBAAb,aAAa,EAAE,aAAa;IAEhD,aAAa,IAAI,IAAI;IA6CrB,OAAO,CAAC,wBAAwB;IA8E1B,OAAO,CAAC,IAAI,EAAE,GAAG,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC;CA4EjD"}
@@ -0,0 +1,196 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.GeminiDescribeVideoTool = void 0;
7
+ const error_handler_1 = require("../utils/error-handler");
8
+ const logger_1 = __importDefault(require("../utils/logger"));
9
+ class GeminiDescribeVideoTool {
10
+ geminiService;
11
+ constructor(geminiService) {
12
+ this.geminiService = geminiService;
13
+ }
14
+ getDefinition() {
15
+ return {
16
+ name: 'gemini_describe_video',
17
+ description: 'Generate detailed audio description of YouTube video content for accessibility. Analyzes visual content including actions, spatial relationships, text overlays, and provides time-stamped descriptions.',
18
+ inputSchema: {
19
+ type: 'object',
20
+ properties: {
21
+ url: {
22
+ type: 'string',
23
+ description: 'YouTube URL to analyze'
24
+ },
25
+ detail_level: {
26
+ type: 'string',
27
+ enum: ['brief', 'standard', 'comprehensive'],
28
+ default: 'standard',
29
+ description: 'Level of detail in descriptions: brief (high-level summary), standard (balanced), comprehensive (extensive detail)'
30
+ },
31
+ accessibility_mode: {
32
+ type: 'boolean',
33
+ default: true,
34
+ description: 'Include spatial descriptions, colors, text overlays, and other visual details important for accessibility'
35
+ },
36
+ include_timestamps: {
37
+ type: 'boolean',
38
+ default: true,
39
+ description: 'Include timestamps for all major actions and scene changes'
40
+ },
41
+ output_format: {
42
+ type: 'string',
43
+ enum: ['narrative', 'structured'],
44
+ default: 'structured',
45
+ description: 'Output format: narrative (prose description) or structured (JSON with sections for easy navigation)'
46
+ },
47
+ focus: {
48
+ type: 'string',
49
+ enum: ['actions', 'visual_elements', 'text_on_screen', 'all'],
50
+ default: 'all',
51
+ description: 'What aspects to focus on: actions (what people do), visual_elements (objects, colors, composition), text_on_screen (captions, overlays), or all'
52
+ }
53
+ },
54
+ required: ['url']
55
+ }
56
+ };
57
+ }
58
+ buildAccessibilityPrompt(request) {
59
+ const detailLevelInstructions = {
60
+ brief: 'Provide a concise 2-3 paragraph summary of the video content.',
61
+ standard: 'Provide a balanced description with key scenes and actions, approximately 5-8 scenes.',
62
+ comprehensive: 'Provide extensive detail for every significant action and visual element, breaking the video into 10-15+ distinct scenes.'
63
+ };
64
+ const focusInstructions = {
65
+ actions: 'Focus primarily on what people are doing - movements, gestures, tool usage, and procedures.',
66
+ visual_elements: 'Focus on visual composition - objects, colors, spatial relationships, and visual design.',
67
+ text_on_screen: 'Focus on any text, captions, overlays, or written information visible in the video.',
68
+ all: 'Provide comprehensive coverage of actions, visual elements, and text equally.'
69
+ };
70
+ const accessibilityInstructions = request.accessibility_mode ? `
71
+ ACCESSIBILITY MODE REQUIREMENTS:
72
+ - Describe spatial relationships explicitly (e.g., "on the left side of the frame", "in the upper right corner", "moving from left to right")
73
+ - Include colors where relevant to understanding (e.g., "red laser line", "blue button")
74
+ - Transcribe ALL text overlays, captions, and on-screen text verbatim
75
+ - Describe facial expressions and body language when relevant
76
+ - Note sound cues if visible (e.g., "person speaking", "tool making noise", "music playing")
77
+ - Use clear, concrete language - avoid "this", "that", "here", "there" without context
78
+ - Describe what IS happening, not what viewers should do
79
+ - For tools and objects, describe them before using pronouns
80
+ ` : '';
81
+ const timestampInstructions = request.include_timestamps ? `
82
+ - Include precise timestamps for every scene or major action (format: MM:SS or H:MM:SS)
83
+ - Mark when new scenes begin, when actions change, when new tools appear
84
+ ` : '';
85
+ const outputFormatInstructions = request.output_format === 'structured' ? `
86
+ OUTPUT FORMAT: Return a valid JSON object with this exact structure:
87
+ {
88
+ "video_title": "Brief title if discernible",
89
+ "duration": "Total video length (MM:SS format)",
90
+ "scene_count": number,
91
+ "scenes": [
92
+ {
93
+ "timestamp": "0:00-0:45",
94
+ "description": "Detailed description of what's happening",
95
+ "actions": ["action 1", "action 2"],
96
+ "tools_visible": ["tool 1", "tool 2"],
97
+ "text_on_screen": "Exact text shown, or null",
98
+ "spatial_notes": "Spatial relationships if relevant",
99
+ "colors": "Color descriptions if relevant"
100
+ }
101
+ ],
102
+ "key_techniques": ["technique 1", "technique 2"],
103
+ "tools_list": ["complete list of all tools shown"],
104
+ "materials_list": ["all materials used"],
105
+ "safety_notes": ["any safety considerations visible"],
106
+ "summary": "2-3 sentence overall summary"
107
+ }
108
+
109
+ CRITICAL: Return ONLY valid JSON. Do not include any text before or after the JSON object.
110
+ ` : `
111
+ OUTPUT FORMAT: Return a narrative prose description with clear paragraphs.
112
+ ${request.include_timestamps ? 'Start each major section with timestamps in [MM:SS] format.' : ''}
113
+ `;
114
+ return `You are analyzing a YouTube video to create an audio description for accessibility purposes.
115
+
116
+ VIDEO URL: ${request.url}
117
+
118
+ DETAIL LEVEL: ${request.detail_level || 'standard'}
119
+ ${detailLevelInstructions[request.detail_level || 'standard']}
120
+
121
+ FOCUS: ${request.focus || 'all'}
122
+ ${focusInstructions[request.focus || 'all']}
123
+
124
+ ${accessibilityInstructions}
125
+ ${timestampInstructions}
126
+ ${outputFormatInstructions}
127
+
128
+ Analyze the video and provide the description according to these requirements.`;
129
+ }
130
+ async execute(args) {
131
+ try {
132
+ logger_1.default.info('Executing gemini_describe_video tool', {
133
+ url: args.url,
134
+ detail_level: args.detail_level,
135
+ accessibility_mode: args.accessibility_mode,
136
+ output_format: args.output_format
137
+ });
138
+ if (!args.url) {
139
+ throw new error_handler_1.McpError('URL is required', 'INVALID_PARAMS');
140
+ }
141
+ // Validate YouTube URL
142
+ if (!args.url.includes('youtube.com') && !args.url.includes('youtu.be')) {
143
+ throw new error_handler_1.McpError('Only YouTube URLs are supported', 'INVALID_PARAMS');
144
+ }
145
+ const request = {
146
+ url: args.url,
147
+ detail_level: args.detail_level || 'standard',
148
+ accessibility_mode: args.accessibility_mode !== false, // Default true
149
+ include_timestamps: args.include_timestamps !== false, // Default true
150
+ output_format: args.output_format || 'structured',
151
+ focus: args.focus || 'all'
152
+ };
153
+ const prompt = this.buildAccessibilityPrompt(request);
154
+ // Use Gemini 2.5 Flash for video understanding (best model for this task)
155
+ const response = await this.geminiService.chat({
156
+ message: prompt,
157
+ model: 'gemini-2.5-flash',
158
+ temperature: 0.3, // Lower temperature for more consistent, factual descriptions
159
+ maxTokens: 16000, // Comprehensive descriptions may be lengthy
160
+ grounding: false // Don't use web search for video analysis
161
+ });
162
+ // If structured output requested, try to parse and validate JSON
163
+ if (request.output_format === 'structured') {
164
+ try {
165
+ // Remove markdown code blocks if present
166
+ let cleanedContent = response.content.trim();
167
+ cleanedContent = cleanedContent.replace(/```json\n?/g, '').replace(/```\n?/g, '');
168
+ const parsed = JSON.parse(cleanedContent);
169
+ // Validate basic structure
170
+ if (!parsed.scenes || !Array.isArray(parsed.scenes)) {
171
+ logger_1.default.warn('Structured output missing scenes array, returning raw response');
172
+ return (0, error_handler_1.createToolResult)(true, response.content);
173
+ }
174
+ // Return formatted JSON
175
+ return (0, error_handler_1.createToolResult)(true, JSON.stringify(parsed, null, 2));
176
+ }
177
+ catch (parseError) {
178
+ logger_1.default.warn('Failed to parse structured output as JSON, returning raw response', {
179
+ error: parseError.message
180
+ });
181
+ return (0, error_handler_1.createToolResult)(true, response.content);
182
+ }
183
+ }
184
+ return (0, error_handler_1.createToolResult)(true, response.content);
185
+ }
186
+ catch (error) {
187
+ logger_1.default.error('gemini_describe_video tool execution failed', { error });
188
+ if (error instanceof error_handler_1.McpError) {
189
+ return (0, error_handler_1.createToolResult)(false, error.message, error);
190
+ }
191
+ return (0, error_handler_1.createToolResult)(false, `Unexpected error: ${error.message}`, error);
192
+ }
193
+ }
194
+ }
195
+ exports.GeminiDescribeVideoTool = GeminiDescribeVideoTool;
196
+ //# sourceMappingURL=gemini-describe-video.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"gemini-describe-video.js","sourceRoot":"","sources":["../../src/tools/gemini-describe-video.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@houtini/gemini-mcp",
3
- "version": "1.2.1",
3
+ "version": "1.3.0",
4
4
  "description": "Professional Model Context Protocol server for Google Gemini AI models with enterprise-grade features",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",