Skip to main content
Glama
txscribe MCP Server

txscribe MCP Server

Official
by txscribe-ai

@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/mcp and 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: @scriptivox/mcp-server

Local: this package

  1. In the app, open Plan and billing → Developer API and make a key (it starts with txs_live_; you see it once).

  2. 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/mcp

TXSCRIBE_API_BASE points the server at another deployment (default https://txscribe.ai/api/v1).

Tools

Tool

What it does

Writes?

list_transcriptions

Your transcriptions, newest first, with paging

no

search_transcriptions

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

transcribe_link

Create a transcription from a link (YouTube, Google Drive, Dropbox …). The recording is transcribed, never downloaded. Uses your minutes.

yes

get_transcription

Status and metadata of one transcription

no

get_transcript

The finished transcript as json (segments, word timings, speakers), txt, srt or vtt; from and to (seconds) for only the paragraphs around a moment, summaryOnly for the summary instead

no

get_summary

The summary and its status

no

request_summary

Ask for a summary, or a new one, in a language and for a kind of recording

yes

delete_transcription

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 test

The 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 tests

server.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 tools
delete_transcriptionDelete a transcriptionA
DestructiveIdempotent
Inspect

Delete a transcription, its media and everything made from it. Cannot be undone.

Inputs: id (required).

get_summaryRead a summaryA
Read-only
Inspect

The summary of a finished transcription and its status. Ask for one with request_summary if there is none yet.

Inputs: id (required).

get_transcriptRead a transcriptA
Read-only
Inspect

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.

Inputs: id (required), to, from, format, +3 more.

get_transcriptionTranscription statusB
Read-only
Inspect

Status and metadata of one transcription: fetching, uploading, preparing, transcribing, done or error.

Inputs: id (required).

list_transcriptionsList transcriptionsA
Read-only
Inspect

The account's transcriptions, newest first. Pass the previous page's nextCursor to read on.

Inputs: limit, cursor, status.

request_summaryRequest a summaryAInspect

Ask for a summary of a finished transcription, or a new one. Returns at once with status generating; read it with get_summary.

Inputs: id (required), scene, language.

search_transcriptionsSearch transcriptionsA
Read-only
Inspect

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.

Inputs: query (required).

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

Loading tool schema changelog…

    TDQS

    A4/5.0

    Scored across 8 tools

    Disambiguation4/5

    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.

    Naming Consistency5/5

    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).

    Tool Count5/5

    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.

    Completeness4/5

    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

    ActivityMaintained
    ResponsivenessNo recent community issues

    Related MCP Connectors

    Related MCP Servers

    • A
      license
      Not graded
      quality
      C
      maintenance
      Enables AI assistants to search meeting transcripts, retrieve speaker-attributed quotes, decisions, and action items, and transcribe new files or links directly from the QuillHub archive.
      MIT
    • A
      license
      Not graded
      quality
      B
      maintenance
      Enables AI clients to transcribe YouTube links and uploaded audio or video files, then retrieve the resulting transcripts as text, SRT, VTT, or JSON with timestamps and optional speaker labels. Also supports paging through long transcripts, checking upload progress, listing or deleting jobs, and viewing remaining account minutes.
      354 npm
      1
      MIT