App-only tools

transcript_words_window

Read approximate word annotations for transcript lines

App/internal read-only semantic locator for a small set of transcript lines on a RAW recording (the drawer, not an episode). Word annotations are approximate and never authorize a structural cut; episode editing locates candidate media with episode_read and places precise boundaries from episode_zoom or episode_sample_frames evidence.

Surface: App-only

Product release eb8538f4a297f331d0399351c1e175bffcd212d2
Public contract commit 20688e11af473a363145ed880d5019c90a7ec1e2
Public contract SHA-256 87a94b85a84dc19245fc03f9b544c70d64bd9f5e08585dcccb38157cace5700d
Captured 2026-10-04T11:55:45.577Z. Review or improve this contract on GitHub.

These blocks show the complete MCP descriptors captured from serving Rails. Security schemes and resource URIs can differ by connected host.

App descriptor

{
  "name": "transcript_words_window",
  "title": "Read approximate word annotations for transcript lines",
  "description": "App/internal read-only semantic locator for a small set of transcript lines on a RAW recording (the drawer, not an episode). Word annotations are approximate and never authorize a structural cut; episode editing locates candidate media with episode_read and places precise boundaries from episode_zoom or episode_sample_frames evidence.",
  "inputSchema": {
    "type": "object",
    "properties": {
      "recording_id": {
        "type": "string",
        "description": "The recording public ID whose transcript lines to inspect."
      },
      "line_numbers": {
        "type": "array",
        "description": "Specific transcript line numbers to inspect, such as [31, 33].",
        "items": {
          "type": "integer"
        }
      },
      "start_line": {
        "type": "integer",
        "description": "First line in an inclusive contiguous range."
      },
      "end_line": {
        "type": "integer",
        "description": "Last line in an inclusive contiguous range. Defaults to start_line when omitted by internal callers."
      },
      "transcript_fingerprint": {
        "type": "string",
        "description": "Required fingerprint for the recording's current line segmentation; prevents stale line numbers after retranscription or speaker-label changes."
      },
      "segmentation_version": {
        "type": "string",
        "description": "Optional segmentation version for the recording's current line segmentation."
      }
    },
    "required": [
      "recording_id",
      "transcript_fingerprint"
    ],
    "additionalProperties": false
  },
  "annotations": {
    "title": "Read approximate word annotations for transcript lines",
    "readOnlyHint": true,
    "destructiveHint": false,
    "idempotentHint": true,
    "openWorldHint": false
  },
  "securitySchemes": [
    {
      "type": "noauth"
    }
  ],
  "_meta": {
    "securitySchemes": [
      {
        "type": "noauth"
      }
    ],
    "ui": {
      "visibility": [
        "app"
      ]
    },
    "openai/widgetAccessible": true,
    "openai/visibility": "private"
  },
  "outputSchema": {
    "type": "object",
    "properties": {
      "recording_id": {
        "type": "string"
      },
      "segmentation_version": {
        "type": "string"
      },
      "transcript_fingerprint": {
        "type": "string"
      },
      "line_count": {
        "type": "integer"
      },
      "transcript": {
        "type": "string",
        "description": "Plain text timing for the requested line(s). Word-timed transcripts include word_id values for semantic anchors and local timing reference; unit fallback rows are line-selection only."
      }
    },
    "required": [],
    "additionalProperties": false
  }
}

Errors

[
  "recording_not_found",
  "transcript_not_ready",
  "invalid_input"
]

Examples

[]