Skip to main content

MCP Audio Tools

MCP tools for audio and video transcription, speaker diarization, transcript search, and segment extraction.

Overview

The Trix MCP server includes five tools for working with audio and video content. These tools let AI assistants transcribe files, search within transcripts, extract segments by speaker or time range, and monitor transcription jobs.

Audio tools return timestamps in human-readable HH:MM:SS format alongside raw seconds, so AI assistants can reference specific moments in recordings naturally.

list_audio_files

List audio and video files with their transcription status. Use this to browse available files, find those needing transcription, or check transcription progress.

Parameters

NameTypeRequiredDefaultDescription
limitnumberno20Maximum number of results
offsetnumberno0Number of results to skip for pagination
space_idstringno—Filter by space ID
transcription_status"pending" | "processing" | "completed" | "failed"no—Filter by transcription status

Example

// Tool: list_audio_files
{
  "space_id": "sp_abc123",
  "transcription_status": "completed",
  "limit": 10
}

// Returns:
{
  "count": 3,
  "total": 3,
  "audio_files": [
    {
      "id": "aud_001",
      "filename": "team-standup-2026-03-28.mp3",
      "duration_seconds": 1845,
      "transcription_status": "completed",
      "created_at": "2026-03-28T09:15:00Z"
    }
  ]
}

get_audio_transcript

Get the full transcript of an audio or video file, optionally including timestamped segments and speaker diarization data.

Parameters

NameTypeRequiredDefaultDescription
audio_file_idstringyes—The ID of the audio file
include_segmentsbooleannofalseInclude timestamped segments
include_speakersbooleannofalseInclude speaker diarization info

Example

// Tool: get_audio_transcript
{
  "audio_file_id": "aud_001",
  "include_segments": true,
  "include_speakers": true
}

// Returns:
{
  "transcript": {
    "audio_file_id": "aud_001",
    "full_text": "Good morning everyone. Let's start with...",
    "duration_seconds": 1845,
    "word_count": 3200,
    "segments": [
      {
        "id": "seg_01",
        "text": "Good morning everyone.",
        "start_time": 0.5,
        "end_time": 2.1,
        "speaker": "Alice",
        "confidence": 0.97
      }
    ],
    "speakers": [
      { "id": "spk_1", "name": "Alice", "total_duration": 620 },
      { "id": "spk_2", "name": "Bob", "total_duration": 480 }
    ]
  }
}

search_audio_transcripts

Search within audio transcripts using semantic similarity. Returns matches with timestamps, speaker attribution, and optional clip URLs for direct access to specific moments.

Parameters

NameTypeRequiredDefaultDescription
querystringyes—The search query
limitnumberno10Maximum number of results
thresholdnumberno0.5Minimum similarity score (0-1)
space_idstringno—Filter by space ID

Example

// Tool: search_audio_transcripts
{
  "query": "deployment timeline",
  "space_id": "sp_abc123",
  "threshold": 0.7,
  "limit": 5
}

// Returns:
{
  "query": "deployment timeline",
  "count": 2,
  "total": 2,
  "matches": [
    {
      "audio_file_id": "aud_001",
      "filename": "team-standup-2026-03-28.mp3",
      "match_text": "We're targeting April 15th for the prod deploy",
      "start_time": 342.5,
      "end_time": 348.1,
      "similarity": 0.89,
      "speaker": "Alice",
      "timestamp_formatted": "05:42 - 05:48"
    }
  ]
}

get_audio_segments

Get transcript segments filtered by speaker or time range. Useful for extracting what a specific person said, or isolating a portion of a recording for summarization.

Parameters

NameTypeRequiredDefaultDescription
audio_file_idstringyes—The ID of the audio file
speakerstringno—Filter by speaker ID (e.g., "speaker_1")
start_timenumberno—Start time in seconds
end_timenumberno—End time in seconds

Example

// Tool: get_audio_segments
{
  "audio_file_id": "aud_001",
  "speaker": "Alice",
  "start_time": 300,
  "end_time": 600
}

// Returns:
{
  "audio_file_id": "aud_001",
  "count": 8,
  "segments": [
    {
      "id": "seg_15",
      "text": "We're targeting April 15th for the prod deploy",
      "start_time": 342.5,
      "end_time": 348.1,
      "speaker": "Alice",
      "confidence": 0.94,
      "timestamp_formatted": "05:42 - 05:48"
    }
  ]
}

trigger_transcription

Start transcription of an uploaded audio or video file. Supports language selection, speaker diarization, and entity detection. Returns a job ID for tracking progress.

Parameters

NameTypeRequiredDefaultDescription
memory_idstringyes—The memory ID of the uploaded audio/video file
languagestringno—Language code (e.g., "en", "es", "fr"). Auto-detected if not specified.
enable_diarizationbooleannotrueEnable speaker diarization to identify different speakers
enable_entity_detectionbooleannofalseDetect and tag entities like names, dates, locations

Example

// Tool: trigger_transcription
{
  "memory_id": "mem_xyz789",
  "language": "en",
  "enable_diarization": true,
  "enable_entity_detection": true
}

// Returns:
{
  "job": {
    "job_id": "job_abc123",
    "memory_id": "mem_xyz789",
    "status": "pending",
    "language": "en",
    "enable_diarization": true,
    "enable_entity_detection": true,
    "created_at": "2026-03-28T10:00:00Z",
    "estimated_completion": "2026-03-28T10:05:00Z"
  },
  "message": "Transcription job started with ID: job_abc123"
}

The memory_id must reference a memory that contains an audio or video file attachment. Use list_audio_files to find files with transcription_status: "pending" before triggering.

MCP Resources

In addition to tools, the MCP server exposes audio content as resources that clients can read directly using URI templates.

trix://audio/{id}              # Audio file metadata and status
trix://audio/{id}/transcript   # Full transcript text
trix://audio/{id}/segments     # Timestamped segments with speaker info

Resources are read-only and return the same data as the corresponding tools. Use resources when you need to attach audio context to a conversation without explicitly calling a tool.