txscribe MCP Server
OfficialEnables creating txscribe transcriptions from Dropbox links; recordings are transcribed without being downloaded, and the resulting transcript and summary can be retrieved.
Enables creating txscribe transcriptions from Google Drive links; recordings are transcribed without being downloaded, and the resulting transcript and summary can be retrieved.
Enables creating txscribe transcriptions from YouTube links, then retrieving transcription status, transcripts, and summaries through the MCP tools.
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@txscribe MCP ServerTranscribe this YouTube link and provide a concise summary."
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
@txscribe/mcp
An MCP server for the txscribe developer API. It lets an AI assistant transcribe a link with your txscribe account and read the transcript and the summary back, through the same API documented at https://txscribe.ai/developers.
There are two ways to connect, with the same eight tools:
Hosted —
https://txscribe.ai/mcp(Streamable HTTP). Claude and ChatGPT connect to it as a custom connector and sign you in to txscribe with OAuth; nothing to install. Clients that take a header can send an API key instead.Local — this package, run as a command (
npx -y @txscribe/mcp) by Claude Desktop, Claude Code, Cursor and other clients that start MCP servers themselves, with your API key in its environment.
Both are thin wrappers: every tool is one call to the developer API as you. What a tool may do, and the minutes it uses, is exactly what your account may do in the app. Nothing is cached or stored on your machine.
Hosted: Claude and ChatGPT
Claude (claude.ai, the desktop app): Settings → Connectors → Add custom connector, URL
https://txscribe.ai/mcp. Claude opens txscribe; sign in and choose Allow.ChatGPT (with developer mode on): add a connector with the URL
https://txscribe.ai/mcpand OAuth as its authentication, then allow it on the txscribe page that opens.Claude Code:
claude mcp add --transport http txscribe https://txscribe.ai/mcp(it signs in with OAuth), or with a key:claude mcp add --transport http txscribe https://txscribe.ai/mcp --header "Authorization: Bearer txs_live_…".Cursor and others that take a URL and headers: the URL above with the header
Authorization: Bearer txs_live_….
A connection made with Allow is an API key the app holds for you. It is listed under Plan and billing → Developer API, where Revoke disconnects that app. It does not expire on its own.
Related MCP server: MeetGeek MCP Server
Local: this package
In the app, open Plan and billing → Developer API and make a key (it starts with
txs_live_; you see it once).Add the server to your client with the key in its environment.
Claude Desktop (claude_desktop_config.json) or any client that takes a command:
{
"mcpServers": {
"txscribe": {
"command": "npx",
"args": ["-y", "@txscribe/mcp"],
"env": { "TXSCRIBE_API_KEY": "txs_live_…" }
}
}
}Claude Code:
claude mcp add txscribe --env TXSCRIBE_API_KEY=txs_live_… -- npx -y @txscribe/mcpTXSCRIBE_API_BASE points the server at another deployment (default
https://txscribe.ai/api/v1).
Tools
Tool | What it does | Writes? |
| Your transcriptions, newest first, with paging | no |
| Which recordings said a word or phrase, and when: up to five matches each, with the second they start at. Reads the finished ones among your newest 500 recordings; searches what was said, not titles. | no |
| Create a transcription from a link (YouTube, Google Drive, Dropbox …). The recording is transcribed, never downloaded. Uses your minutes. | yes |
| Status and metadata of one transcription | no |
| The finished transcript as | no |
| The summary and its status | no |
| Ask for a summary, or a new one, in a language and for a kind of recording | yes |
| Delete a transcription and everything made from it. Cannot be undone. | yes, destructive |
Five tools only read; three change your account. Uploading a file is not a tool: the API's upload is a signed PUT of the whole file, which an assistant cannot make from a chat. Use the app, or the API directly, for files.
A typical exchange: "Transcribe this talk and give me the three claims to check" →
transcribe_link → get_transcription until status is done → get_transcript (txt) →
the assistant reads it; request_summary + get_summary for the summary txscribe makes.
Finding something in recordings you already have: "What did we agree about the budget?" →
search_transcriptions ("budget") → get_transcript with from/to around the matches it
returned, instead of whole transcripts.
Errors
API refusals come back as tool errors with the API's own code (invalid_api_key,
quota_exceeded, not_ready, unsupported_link …), the HTTP status, the request id to quote
to support and, on 429, the Retry-After seconds. Neither server retries anything itself.
Develop
npm ci
npm testThe tests run the server over an in-memory transport against a fake fetch; nothing reaches
the network. The hosted server lives in the web app (web/src/lib/mcp/), and its tests check
that its tool list matches this one.
Publish (maintainers)
cd mcp
npm ci && npm test
npm login # an npm account that owns the @txscribe scope
npm publish # publishConfig makes it public; prepublishOnly runs the testsserver.json is the entry for the MCP Registry (registry.modelcontextprotocol.io); its name
matches mcpName in package.json, which is how the registry checks the npm package is ours.
Publish it after the npm package is up and the hosted endpoint is switched on, with
mcp-publisher and DNS proof of txscribe.ai.
Available Tools
8 toolsdelete_transcriptionDelete a transcriptionADestructiveIdempotent
Delete a transcription, its media and everything made from it. Cannot be undone.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare destructiveHint and idempotentHint, so the description is not carrying the safety burden alone. It still adds real value beyond them by disclosing the blast radius — media and all derived artifacts are removed, not just the transcription record — and that the effect is irreversible.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, no filler, and the cascade scope plus irreversibility warning are both front-loaded where an agent will read them before acting.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a single-parameter destructive endpoint with full annotation coverage and no output schema, this covers what an agent needs before calling. The remaining gap is the identity of the id argument and any async/permission behavior.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
There is exactly one required parameter, id, with 0% schema description coverage. The description never clarifies whether that id identifies the transcription, the media file, or a derived artifact, leaving genuine ambiguity for a cascading delete.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (delete), a specific resource (transcription), and the cascade scope (its media and everything made from it). No sibling tool in the list performs deletion, so the operation is unambiguously distinct.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is implied by the irreversible nature of the operation, but the description never states when an agent should prefer this over, say, archiving, nor any prerequisites such as ownership or permission requirements, or whether confirmation is expected.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_summaryRead a summaryARead-only
The summary of a finished transcription and its status. Ask for one with request_summary if there is none yet.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and openWorldHint=true, so the safety profile is covered structurally. The description adds useful context that this reads a summary for a finished transcription and that request_summary is the fallback. It does not describe return format, status values, or failure behavior, so it adds some but not rich behavioral detail.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two short sentences with no wasted wording. It front-loads the resource and status, then follows with the alternative-tool routing. Every sentence contributes to selection or usage.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
This is a simple read-only tool with annotations covering safety and no output schema. The description explains the resource at a high level but leaves the id parameter ambiguous and does not describe what the returned summary or status looks like. For a one-parameter read tool it is adequate but incomplete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema has a single required id parameter with 0% description coverage, and the description never explains what id refers to. It is unclear whether id identifies the transcription, the summary, or something else. The description therefore fails to compensate for the schema's missing parameter documentation.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description identifies the resource as the summary of a finished transcription and also mentions its status, which is more specific than the title alone. It distinguishes this tool from request_summary by naming that sibling as the alternative when no summary exists. The only minor gap is that the retrieval verb is implied rather than stated explicitly.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives a clear routing rule: use request_summary if there is no summary yet, which implies get_summary is for when one already exists. It also implies the transcription must be finished. It does not spell out error conditions or prerequisites beyond that, but the main when-to-use guidance is present.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_transcriptRead a transcriptARead-only
The finished transcript. json gives segments with word timings and speakers (what the app shows); txt, srt and vtt give the file the app's Export menu makes. A long recording is a lot of text: pass from and to (seconds) for only the paragraphs around a moment, such as a match from search_transcriptions, or summaryOnly for the summary instead. Not ready yet answers with the not_ready error; check get_transcription first.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | ||
| to | No | Seconds into the recording where it ends. | |
| from | No | Seconds into the recording where the stretch to read starts. Paragraphs overlapping it come back whole. | |
| format | No | json, txt, srt or vtt. | txt |
| speakers | No | Include speaker names. | |
| timestamps | No | txt: include the time of each paragraph. | |
| summaryOnly | No | true: the summary instead of the transcript, as get_summary returns it. Leave format, from and to out with it: they are not used. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the readOnlyHint/openWorldHint annotations, it discloses the failure mode and its error identifier (not_ready), warns that long recordings return a lot of text, explains that from/to pull whole overlapping paragraphs, and notes that format/from/to are ignored when summaryOnly is set. This is operational context an agent cannot derive from annotations or schema.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with the resource and format contract, then progressively narrower guidance (windowing, summaryOnly, error state) — no sentence is filler. Some clauses are dense, e.g. the parenthetical "(what the app shows)" vs "the app's Export menu makes", but each carries real meaning for format choice.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With seven parameters, no output schema and a read-only annotation set, the description covers what is returned per format, how to bound large payloads, the summary substitution, and the not-ready case. It does not spell out the exact json segment structure beyond 'word timings and speakers', a minor gap given there is no output schema.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is already 86%, so the baseline is 3; the description earns above that by explaining intent for from/to (paragraphs overlapping a moment, e.g. a search_transcriptions match), what summaryOnly swaps in (the get_summary payload), and the format split between app-style json and export-file text.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens by naming the resource returned ("The finished transcript") and immediately differentiates the four output formats: json yields segments with word timings and speakers, while txt/srt/vtt yield exported file text. That distinguishes it from a status tool like get_transcription and from get_summary without needing the schema, though the opening is a noun phrase rather than an explicit 'read the transcript of...' verb.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It gives explicit conditional guidance: pass from/to for paragraphs around a moment (naming search_transcriptions as the source of such a moment), use summaryOnly for the summary, and 'check get_transcription first' when the transcript is not ready. Both the alternative tool and the exclusion condition are stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_transcriptionTranscription statusBRead-only
Status and metadata of one transcription: fetching, uploading, preparing, transcribing, done or error.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | The transcription id. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
readOnlyHint and openWorldHint already declare this is a safe, external-facing read, so the description only needs to add context. It usefully discloses the state machine (fetching through error), but says nothing about behavior for unknown ids, unavailable metadata while still processing, or polling frequency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
One compact sentence with the resource front-loaded and the state list trailing as supporting detail. Nothing extraneous, though the sentence-fragment style is slightly terse.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple one-parameter read tool with annotations covering the safety profile, this is close to sufficient, but with no output schema the description should say more about what 'metadata' comprises and what is returned while a transcription is still in flight.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and the single 'id' parameter is documented in the schema as 'The transcription id.' The description adds only the implication that the id selects a single transcription, which is marginal beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Names the resource precisely (one transcription's status and metadata) and enumerates the lifecycle states it can return, so it is clearly distinct from get_transcript and get_summary. The verb is implicit ('Status and metadata of...') rather than stated, but the tool name supplies it.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is only implied: the enumeration of states signals polling-until-done, but the description never says when to call this instead of list_transcriptions, get_transcript, or get_summary, nor what to do once status is 'done'.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_transcriptionsList transcriptionsARead-only
The account's transcriptions, newest first. Pass the previous page's nextCursor to read on.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Page size. | |
| cursor | No | nextCursor from the previous page. | |
| status | No | The API's filter: all, active (still working), done, error. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare this is a read-only/open-world operation. The description adds useful behavior: account scope, newest-first ordering, and cursor-based continuation, but it does not explain default status behavior or what the response contains.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short sentences, front-loaded with the resource and ordering, followed immediately by the pagination instruction. There is no wasted text.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple read-only list tool with fully documented parameters and annotations covering safety, the description covers scope, ordering, and pagination adequately. It could be slightly more complete by mentioning default filtering or the shape of the paged response, but it is sufficient to invoke the tool correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so all three parameters are already documented in the schema. The description reinforces that `cursor` comes from the previous page's `nextCursor`, but adds little beyond the schema for `limit` or `status`.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly identifies the resource and ordering: the account's transcriptions, newest first. It implies a list operation but does not explicitly contrast itself with sibling `search_transcriptions` or explain whether it returns all statuses by default.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It provides pagination guidance by saying to pass the previous page's `nextCursor`, which helps continuation. However, it gives no explicit guidance on when to use this tool versus `search_transcriptions` or the single-transcription getters.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
request_summaryRequest a summaryA
Ask for a summary of a finished transcription, or a new one. Returns at once with status generating; read it with get_summary.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | ||
| scene | No | meeting, interview, lecture, … Omit to let the model choose. | |
| language | No | Output language; defaults to the transcript's. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=false and destructiveHint=false; the description adds the crucial non-obvious behavior that the call is asynchronous — it returns immediately with status 'generating' rather than the finished text. It omits whether re-requesting overwrites an existing summary or what happens on a pending transcription.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short sentences, both front-loaded with the actionable facts: what it does, that it returns immediately with a generating status, and where to read the result. No filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 3-param tool with no output schema, the asynchronous contract and the get_summary handoff cover the most important gaps. Missing are the meaning of the required id, behavior when a summary already exists, and any note on cost/latency of generation, so an agent could still invoke it incorrectly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema documents scene and language (67% coverage), but the only required parameter, id, has no description anywhere, and the description never clarifies what 'id' identifies (transcription vs. summary). Otherwise it adds nothing parameter-level beyond the schema, which is the expected baseline here.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb+resource (request a summary) tied to a finished transcription, and implicitly distinguishes itself from the read-side sibling get_summary. The phrase 'or a new one' is slightly ambiguous about regeneration vs. first-time creation, which keeps it from a 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly routes follow-up reads to get_summary, which is the main alternative an agent would otherwise confuse with this tool. It gives clear context for use but does not state when *not* to call it (e.g. when a summary already exists and is complete).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_transcriptionsSearch transcriptionsARead-only
Which of the account's recordings said something, and when. Looks for the words as one phrase in what was said (not in titles), in the newest 500 recordings (ones still processing or failed among them are skipped; truncated is true when there may be older ones, which are not read): give a distinctive word or short phrase, not a question. Each result has up to five matches with the second each starts at; read around one with get_transcript's from and to rather than reading the whole transcript.
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes | The word or phrase. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the readOnly/openWorld annotations, it discloses the search corpus (newest 500 recordings), exclusions (processing or failed ones skipped), the truncation signal ('truncated is true when there may be older ones, which are not read'), and the per-result cap of five matches with start offsets. These are non-obvious behavioral limits an agent cannot infer from the schema.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The scope statement is front-loaded and every clause carries information, but the single long sentence with stacked parentheticals reads as a run-on and takes effort to parse on first pass.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema provided, the description still conveys the return shape (up to five matches per result, second offsets, truncated flag) plus the next step, so an agent knows both what it will get back and how to drill in. Nothing essential for correct invocation is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the baseline is 3; the description earns more by clarifying that the query is matched as one contiguous phrase in transcript text and should be a distinctive word or short phrase rather than a natural-language question. It conveys matching semantics the schema's 'The word or phrase.' does not.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Opens with a concrete question the tool answers ('which recordings said something, and when') and specifies the matching surface: the words as one phrase in what was said, not in titles. That explicitly separates it from title/metadata-oriented siblings like list_transcriptions.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Tells the agent how to phrase the input ('give a distinctive word or short phrase, not a question') and routes follow-up work to get_transcript's from/to instead of reading whole transcripts. It never explicitly states when NOT to use it (e.g., you already know the recording), so it falls short of the top band.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
transcribe_linkTranscribe a linkA
Create a transcription from a link to a video or recording (YouTube, Google Drive, Dropbox and others; the recording is transcribed, never downloaded). Starts at once and uses the account's minutes. Returns the transcription with its id; poll get_transcription until status is done, then read get_transcript.
| Name | Required | Description | Default |
|---|---|---|---|
| url | Yes | The link. | |
| captions | No | YouTube only: use the video's own captions when they fit; uses no minutes. | |
| language | No | "auto", or one of the codes the API lists in openapi.json — a full tag such as en-US, pt-BR or es-MX, never "en". Omit for automatic detection. | |
| diarization | No | Label speakers (default true; not every language supports it). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations only establish that this is a non-idempotent, non-destructive, open-world write. The description adds the behavior an agent actually needs: it is asynchronous, kicks off immediately, consumes account minutes, returns an id rather than the finished text, and never downloads the media. That is substantive context beyond the structured fields.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three tight sentences, front-loaded with the action, then the accepted sources, then the workflow. Every clause carries information an agent needs; nothing is redundant with the title.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
There is no output schema, so the description carries the burden of explaining the return value, and it does: a transcription object with an id plus the polling path to reach the text. Combined with the cost note and source list, an agent has everything needed to invoke and follow up correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so all four parameters are already documented with meaningful detail (including the captions/minutes tradeoff and the language code format). The description adds no parameter-level information beyond the notion that the input is a link, so the baseline of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ("Create a transcription from a link to a video or recording") and enumerates accepted sources. It also explicitly positions itself against the sibling read tools by naming get_transcription and get_transcript as the follow-up steps, so an agent can distinguish it without opening the schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives a concrete workflow: call this, poll get_transcription until status is done, then read get_transcript. It also flags the cost model ("uses the account's minutes") and that it starts immediately. It stops short of stating when not to use it (e.g. for already-uploaded files or existing transcriptions), so it is strong but not exhaustive.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
8 tool updates
v0.2.0- First observed
delete_transcription - First observed
get_summary - First observed
get_transcript - First observed
get_transcription - First observed
list_transcriptions - First observed
request_summary - First observed
search_transcriptions - First observed
transcribe_link
TDQS
Scored across 8 tools
Each tool maps to a distinct operation, but the trio get_transcription (status/metadata), get_transcript (content) and get_summary (summary) shares similar names and resource focus, so an agent must read descriptions carefully to pick correctly. The descriptions do explicitly disambiguate (e.g., 'Not ready yet... check get_transcription first'), keeping overlap manageable.
All eight tools follow a consistent snake_case verb_noun pattern: list_transcriptions, get_transcript, get_summary, request_summary, delete_transcription, transcribe_link, search_transcriptions, get_transcription. Verbs are used predictably (get_ for reads, request_ for creating async work, delete_ for removal).
Eight tools is well-scoped for a transcription service, with each tool earning its place across listing, creation, status polling, content retrieval, search, summarization, and deletion. No redundant or filler tools.
The lifecycle is largely covered: create via link, poll status, retrieve transcript in multiple formats, summarize, search, and delete. Minor gaps exist—there is no tool for directly uploading a local media file (despite an 'uploading' status) and no rename/update metadata operation.
Maintenance
Related MCP Connectors
AI transcription API: turn voice memos, meetings and audio URLs into text and SRT subtitles.
Transcribe audio and video and work with your transcript library from any AI app. 119 languages.
Transcribe audio and video to text, SRT or VTT. Summaries, translation. Optional OAuth sign-in.
YouTube transcripts, search, and channel and playlist listings for any AI app. Hosted.
Related MCP Servers
- AlicenseAqualityDmaintenanceEnables access to Fireflies.ai meeting transcripts with capabilities to retrieve, search, filter, and generate AI-powered summaries of meeting content through the Fireflies API.466 npm1MIT

MeetGeek MCP Serverofficial
FlicenseNot gradedqualityDmaintenanceEnables AI tools to access and manage MeetGeek meetings, including transcripts, highlights, summaries, and recording uploads.8 npm23-- AlicenseAqualityBmaintenanceEnables AI assistants to transcribe audio and video from URLs or local files with high accuracy, speaker diarization, 119 languages, and word-level timestamps, while also supporting transcription management and caption export in SRT, WebVTT, or plain text.1492 npm11MIT
- AlicenseNot gradedqualityAmaintenanceEnables AI clients to pull full transcripts from YouTube videos, search videos and channels, browse a channel's complete upload history, search within a single channel, and extract every video in a playlist through one hosted remote endpoint. It supports API-key or OAuth 2.1 sign-in with no local installation, returning metadata and paginated results with stable error codes.27MIT