Skip to main content
Glama
omd0
by omd0

translate_srt

Prepares SRT subtitle content for AI translation by parsing text, preserving timing and formatting, and returning structured data ready for translation.

Instructions

šŸŒ SRT TRANSLATION HELPER TOOL šŸŒ

🚨 CRITICAL: THIS IS A HELPER TOOL ONLY - AI DOES THE TRANSLATION! 🚨

šŸŽÆ PURPOSE: This tool helps prepare SRT content for AI translation but DOES NOT translate text itself. The AI assistant must perform the actual translation work.

šŸ“ WHAT IT DOES:

  • Parses SRT content and extracts subtitle text for AI translation

  • Preserves timing and formatting structure

  • Returns structured data for AI to translate

  • Provides context and metadata for better translation

āŒ WHAT IT DOES NOT DO:

  • āŒ Does NOT translate text automatically

  • āŒ Does NOT return translated content

  • āŒ Does NOT perform any AI translation

āœ… WHAT IT RETURNS:

  • Structured SRT data with original text

  • Timing and formatting information

  • Translation context and metadata

  • Ready-to-translate format for AI

šŸ”„ RECOMMENDED WORKFLOW:

  1. Use detect_conversations to analyze file structure

  2. Use get_next_chunk to get individual chunks

  3. Use translate_srt to prepare chunk for AI translation

  4. AI assistant translates the text content

  5. AI assistant combines results into final SRT file

šŸ’” USAGE PATTERNS:

Prepare Full File for Translation: {"content": "full SRT content", "targetLanguage": "es", "sourceLanguage": "en"}

Prepare Individual Chunk for Translation: {"content": "chunk SRT content", "targetLanguage": "es", "sourceLanguage": "en"}

āš ļø CRITICAL INSTRUCTIONS:

  • This tool ONLY prepares content for AI translation

  • AI assistant must do the actual text translation

  • Use this to get structured data, then translate with AI

  • Return format is ready for AI processing

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
contentYesSRT file content to translate
targetLanguageYesTarget language code (e.g., es, fr, de)
sourceLanguageNoSource language code (optional, auto-detect if not provided)

Implementation Reference

  • The main execution handler for the 'translate_srt' tool. Parses SRT content using parseSRTFile and structures it into a format with subtitles, timings, and instructions for an AI to perform the actual translation. Does not translate text itself; it's a helper tool.
    private async handleTranslateSRT(args: any) {
      const { content, targetLanguage, sourceLanguage } = args;
      
      const parseResult = parseSRTFile(content);
    
      if (!parseResult.success || !parseResult.file) {
        const errorDetails = parseResult.errors?.map(e => `${e.type}: ${e.message}`).join(', ') || 'Unknown parsing error';
        throw new Error(`Failed to parse SRT file: ${errorDetails}`);
      }
    
      // Return structured data for AI translation - DO NOT TRANSLATE HERE
      const translationData = {
        originalSRT: content,
        parsedData: parseResult.file,
        translationInstructions: {
          targetLanguage: targetLanguage,
          sourceLanguage: sourceLanguage || 'auto',
          preserveTiming: true,
          preserveFormatting: true,
          context: 'subtitle_translation'
        },
        subtitles: parseResult.file.subtitles.map((subtitle, index) => ({
          index: index,
          id: `subtitle-${subtitle.index}`,
          startTime: subtitle.startTime,
          endTime: subtitle.endTime,
          originalText: subtitle.text,
          translationInstructions: {
            preserveTags: true,
            maintainTone: 'conversational',
            context: `Subtitle ${index + 1} of ${parseResult.file!.subtitles.length}`
          }
        })),
        aiTranslationTask: {
          description: `Translate ${parseResult.file!.subtitles.length} subtitles from ${sourceLanguage || 'auto'} to ${targetLanguage}`,
          instructions: [
            'Translate each subtitle text while preserving timing and formatting',
            'Maintain conversational tone and context',
            'Preserve any HTML tags or formatting',
            'Return complete translated SRT file'
          ],
          expectedOutput: 'Complete translated SRT file with all timing preserved'
        }
      };
    
      return {
        content: [
          {
            type: 'text',
            text: JSON.stringify(translationData, null, 2),
          },
        ],
      };
    }
  • Tool registration in the MCP server's listTools handler, including the tool name, detailed description emphasizing it's a helper, and input schema defining parameters: content (required), targetLanguage (required), sourceLanguage (optional).
              {
                name: 'translate_srt',
                description: `šŸŒ SRT TRANSLATION HELPER TOOL šŸŒ
    
    🚨 CRITICAL: THIS IS A HELPER TOOL ONLY - AI DOES THE TRANSLATION! 🚨
    
    šŸŽÆ PURPOSE:
    This tool helps prepare SRT content for AI translation but DOES NOT translate text itself.
    The AI assistant must perform the actual translation work.
    
    šŸ“ WHAT IT DOES:
    - Parses SRT content and extracts subtitle text for AI translation
    - Preserves timing and formatting structure
    - Returns structured data for AI to translate
    - Provides context and metadata for better translation
    
    āŒ WHAT IT DOES NOT DO:
    - āŒ Does NOT translate text automatically
    - āŒ Does NOT return translated content
    - āŒ Does NOT perform any AI translation
    
    āœ… WHAT IT RETURNS:
    - Structured SRT data with original text
    - Timing and formatting information
    - Translation context and metadata
    - Ready-to-translate format for AI
    
    šŸ”„ RECOMMENDED WORKFLOW:
    1. Use detect_conversations to analyze file structure
    2. Use get_next_chunk to get individual chunks
    3. Use translate_srt to prepare chunk for AI translation
    4. AI assistant translates the text content
    5. AI assistant combines results into final SRT file
    
    šŸ’” USAGE PATTERNS:
    
    Prepare Full File for Translation:
    {"content": "full SRT content", "targetLanguage": "es", "sourceLanguage": "en"}
    
    Prepare Individual Chunk for Translation:
    {"content": "chunk SRT content", "targetLanguage": "es", "sourceLanguage": "en"}
    
    āš ļø CRITICAL INSTRUCTIONS:
    - This tool ONLY prepares content for AI translation
    - AI assistant must do the actual text translation
    - Use this to get structured data, then translate with AI
    - Return format is ready for AI processing`,
                inputSchema: {
                  type: 'object',
                  properties: {
                    content: {
                      type: 'string',
                      description: 'SRT file content to translate',
                    },
                    targetLanguage: {
                      type: 'string',
                      description: 'Target language code (e.g., es, fr, de)',
                    },
                    sourceLanguage: {
                      type: 'string',
                      description: 'Source language code (optional, auto-detect if not provided)',
                    },
                  },
                  required: ['content', 'targetLanguage'],
                },
              },
  • Input schema for the translate_srt tool, specifying the expected arguments structure and types.
    inputSchema: {
      type: 'object',
      properties: {
        content: {
          type: 'string',
          description: 'SRT file content to translate',
        },
        targetLanguage: {
          type: 'string',
          description: 'Target language code (e.g., es, fr, de)',
        },
        sourceLanguage: {
          type: 'string',
          description: 'Source language code (optional, auto-detect if not provided)',
        },
      },
      required: ['content', 'targetLanguage'],
    },

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/omd0/srt-mcp'

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