---
name: transcript-kit-jobs
description: "Step-by-step job recipes for the Transcript Kit MCP server: Transcribe a recording into text and captions; Search your saved transcripts; Translate subtitles and make a dub script. Use when the user asks things like \"This is a talk our team recorded and published, so we have the rights to transcribe it. Transcribe it and give me SRT captions: https://tools.openkrill.app/samples/clipper-talk.mp4.\" or \"Which of my transcripts mention backups, and at what time?\""
license: MIT
---

# Transcript Kit jobs

Each section below walks through one job with the tools of the `transcript-kit` MCP server. The same recipes are MCP prompts (prompts/list) on `https://api.openkrill.app/gateway/mcp`.
Connect the server at `https://transcript.openkrill.app/mcp` in your MCP client settings (remote streamable HTTP, no key), then call its tools as normal tool calls. They are not command line programs: Bash, curl and scripts cannot reach them.

## Transcribe a recording into text and captions

Job: Transcribe a recording into text and captions, with the Transcript Kit MCP server.

Use the `transcribe_media` tool for this job.

Work on the user's request. If there is none yet, ask what they need. A request this job handles: "This is a talk our team recorded and published, so we have the rights to transcribe it. Transcribe it and give me SRT captions: https://tools.openkrill.app/samples/clipper-talk.mp4."

Steps:
1. Call `transcribe_media` as a normal MCP tool call, with the request's values in the fields of its inputSchema. It needs `confirm_rights`.
2. If a value the tool needs is missing and you cannot tell it from the request, ask the user one short question first.
3. This input is known to work; copy its format, not its values: `{"url":"https://media.example.com/talk.wav","confirm_rights":true}`
4. For the request "This is a talk our team recorded and published, so we have the rights to transcribe it. Transcribe it and give me SRT captions: https://tools.openkrill.app/samples/clipper-talk.mp4.", a correct answer looks like this: A transcript_id, the language, the length in seconds, the SRT text with numbered cues and clock times, the expiry time and the minutes left today.
5. Follow the server's own rules:
   - Use transcribe_media when the user wants the words of an audio or video file they uploaded or a direct link to an audio or video file.
   - First make sure the user owns the recording or has the rights to use it; ask if it is unclear, and set confirm_rights true only after they say so.
   - It also takes the link of a public video on TikTok, Instagram or another social platform; that needs no rights statement.
   - For a YouTube link use get_transcript instead.
   - It reads one video per call, never a whole channel.
   - Say that translations are machine output to check before publishing.
   - If transcribe_media returns a library_id, pass it to the other tools and to later transcribe_media calls.
   - Say that transcripts are deleted after 24 hours and the media is never kept.
   - Report usage.seconds_left_today when the daily allowance is low, and if a call is refused for the daily limit say when it resets (00:00 UTC).
   - Transcripts can contain mistakes: say so when the user plans to publish one.
   - Clip scores only rank clips against each other and do not predict views.
   - These tools only read and rank text: they cannot cut, edit or publish video.
6. If the call fails or the answer looks wrong, tell the user, then report it with `submit_feedback` (kind bug, tool `transcribe_media`).

## Search your saved transcripts

Job: Search your saved transcripts, with the Transcript Kit MCP server.

Use the `search_transcripts` tool for this job.

Work on the user's request. If there is none yet, ask what they need. A request this job handles: "Which of my transcripts mention backups, and at what time?"

Steps:
1. Call `search_transcripts` as a normal MCP tool call, with the request's values in the fields of its inputSchema.
2. If a value the tool needs is missing and you cannot tell it from the request, ask the user one short question first.
3. This input is known to work; copy its format, not its values: `{"query":"pricing","library_id":"lib_9b6a98861ea4f54bff8f5cf1"}`
4. For the request "Which of my transcripts mention backups, and at what time?", a correct answer looks like this: Passages with transcript_id, start and end times and a snippet around the word, or an empty result that says transcripts are deleted after 24 hours.
5. Follow the server's own rules:
   - First make sure the user owns the recording or has the rights to use it; ask if it is unclear, and set confirm_rights true only after they say so.
   - It also takes the link of a public video on TikTok, Instagram or another social platform; that needs no rights statement.
   - For a YouTube link use get_transcript instead.
   - It reads one video per call, never a whole channel.
   - Say that translations are machine output to check before publishing.
   - Use search_transcripts to find passages or repeated themes in the transcripts the user made earlier, and suggest_clips for the best short stretches of one transcript.
   - Say that transcripts are deleted after 24 hours and the media is never kept.
   - Report usage.seconds_left_today when the daily allowance is low, and if a call is refused for the daily limit say when it resets (00:00 UTC).
   - Transcripts can contain mistakes: say so when the user plans to publish one.
   - Clip scores only rank clips against each other and do not predict views.
   - These tools only read and rank text: they cannot cut, edit or publish video.
6. If the call fails or the answer looks wrong, tell the user, then report it with `submit_feedback` (kind bug, tool `search_transcripts`).

## Translate subtitles and make a dub script

Job: Translate subtitles and make a dub script, with the Transcript Kit MCP server.

Use the `translate_subtitles` tool for this job.

Work on the user's request. If there is none yet, ask what they need. A request this job handles: "Translate the captions of that talk into Spanish and write me a dub script."

Steps:
1. Call `translate_subtitles` as a normal MCP tool call, with the request's values in the fields of its inputSchema. It needs `target_lang`.
2. If a value the tool needs is missing and you cannot tell it from the request, ask the user one short question first.
3. This input is known to work; copy its format, not its values: `{"transcript_id":"tr_a6f8c87a9b2eb748","target_lang":"es","library_id":"lib_9b6a98861ea4f54bff8f5cf1"}`
4. For the request "Translate the captions of that talk into Spanish and write me a dub script.", a correct answer looks like this: Spanish SRT and VTT with the original times, and a dub script with one spoken line per segment, each with start, end, max_chars and a fit of ok, tight or long.
5. Follow the server's own rules:
   - First make sure the user owns the recording or has the rights to use it; ask if it is unclear, and set confirm_rights true only after they say so.
   - It also takes the link of a public video on TikTok, Instagram or another social platform; that needs no rights statement.
   - For a YouTube link use get_transcript instead.
   - It reads one video per call, never a whole channel.
   - Use translate_subtitles for captions or a dub script in another language, from a transcript_id or the text of an SRT or VTT file the user owns (then set source_lang and confirm_rights).
   - Say that translations are machine output to check before publishing.
   - Say that transcripts are deleted after 24 hours and the media is never kept.
   - Report usage.seconds_left_today when the daily allowance is low, and if a call is refused for the daily limit say when it resets (00:00 UTC).
   - Transcripts can contain mistakes: say so when the user plans to publish one.
   - Clip scores only rank clips against each other and do not predict views.
   - These tools only read and rank text: they cannot cut, edit or publish video.
6. If the call fails or the answer looks wrong, tell the user, then report it with `submit_feedback` (kind bug, tool `translate_subtitles`).
