Private reviewer release

A recording goes in. Your transcript comes back to the conversation.

Wisprs gives ChatGPT, Codex, Claude, and Claude Code a secure transcription workflow over MCP—built for long-running media, least-privilege access, and reliable retries.

01 · Public HTTPS media
https://…/recording.mp3
02 · Durable operation
op_… · queued → running
03 · Paginated transcript
tr_… · ready to retrieve

Choose your host

One service. Two distribution paths.

The hosted connector uses OAuth. Public directory buttons remain hidden until each platform has approved the listing.

Reviewer package ready

ChatGPT + Codex

A universal OpenAI plugin package with the same remote MCP endpoint, skill instructions, and bounded tool contracts.

  • OAuth connection
  • Bounded remote tool contracts
  • Install CTA unlocks after approval
Read OpenAI setup
Connector package ready

Claude + Claude Code

A Claude plugin and connector definition built around the identical operation receipts and transcript handles.

  • OAuth connection
  • Bounded remote tool contracts
  • Install CTA unlocks after approval
Read Claude setup

Public v1.1 contract

The complete transcript workflow.

Transcribe, search, export, summarize, chapter, repurpose, translate, and retrieve generated artifacts through one tenant-safe asynchronous contract. Large exports use private expiring MCP resources instead of filling the conversation.

transcribe_url

Submit public HTTPS audio or video and receive a durable operation receipt.

transcripts:write
get_private_media_upload_handoff

Open the authenticated Wisprs chunked uploader for local or private media.

transcripts:write
get_video_transcript

Instantly fetch the free caption transcript of a public YouTube, TikTok, or Instagram video.

transcripts:read
list_tts_voices

List active text-to-speech voices available to the connected plan.

tts:read
synthesize_speech

Start a metered text-to-speech job with a plan-authorized voice handle.

tts:write
list_tts_syntheses

List bounded text-to-speech history with short untrusted previews.

tts:read
get_tts_audio

Get a short-lived private download URL for a completed synthesis.

tts:read
list_meeting_sessions

List meeting capture sessions with consent state and transcript availability.

meetings:read
schedule_meeting_capture

Schedule a Wisprs meeting agent after explicit recording consent.

meetings:write
cancel_meeting_capture

Cancel a not-yet-dispatched meeting agent after confirmation.

meetings:write
list_support_tickets

List your own support tickets with bounded previews.

support:read
create_support_ticket

Create a bounded support request for the connected account.

support:write
list_webhook_endpoints

List webhook endpoints with signing secrets redacted.

webhooks:read
create_webhook_endpoint

Create an HTTPS webhook endpoint after SSRF-safe validation.

webhooks:write
update_webhook_endpoint

Update a tenant-owned webhook URL or active state.

webhooks:write
delete_webhook_endpoint

After confirmation, reversibly disable a webhook endpoint.

webhooks:write
list_organization_members

List workspace members without private account fields.

organization:read
list_creator_packs

List the bounded Wisprs creator packs available to the account.

creator:read
list_creator_templates

List bounded creator workflow templates and their outcomes.

templates:read
list_notifications

List bounded in-app notifications for the connected user.

notifications:read
mark_notifications_read

Mark selected or all unread notifications as read.

notifications:write
list_operations

List bounded operation history without payloads or source URLs.

operations:read
get_job_status

Check an operation without making the model hold an open request.

operations:read
get_transcript

Retrieve a completed transcript in bounded, repeatable pages.

transcripts:read
get_transcript_artifact

Read summaries, chapters, repurposed assets, and translations in bounded pages.

ai:transform
search_library

Search the connected personal or workspace library for ranked transcript moments.

library:search
list_transcripts

List a bounded page of transcripts with lifecycle and folder metadata.

transcripts:read
get_transcription_metadata

Read metadata for one transcription without returning transcript text.

transcripts:read
list_folders

List tenant-owned media folders and their live item counts.

library:read
get_usage_and_limits

Read the connected account plan, usage meters, and reset windows.

usage:read
create_folder

Create a tenant-owned media folder through a durable operation.

library:write
rename_folder

Rename a tenant-owned media folder without changing its contents.

library:write
move_transcript_to_folder

File or unfile one tenant-owned transcript.

library:write
delete_folder

After confirmation, soft-delete a folder while preserving its media.

library:write
rename_transcript

Rename one transcript with an optimistic revision guard.

transcripts:write
edit_transcript_text

Apply a confirmed bounded find-and-replace edit against an exact revision.

transcripts:write
retry_transcription

Requeue a failed transcript from retained source media after confirmation.

transcripts:write
create_share_link

Create an explicitly confirmed, expiring public transcript link.

sharing:write
revoke_share_link

Revoke an active public transcript link through a durable operation.

sharing:write
export_transcript

Create TXT, SRT, VTT, JSON, Markdown, or DOCX exports as expiring resources.

transcripts:export
summarize_transcript

Generate or reuse a durable structured transcript summary.

ai:transform
generate_chapters

Generate or reuse timestamped chapters for a completed transcript.

ai:transform
repurpose_transcript

Create show notes, threads, blog drafts, or quote selections.

ai:transform
translate_transcript

Translate a transcript into a specified BCP-47 language.

ai:transform

Least privilege

Write and read scopes are separate. Grants are bound to the authenticated user and, where applicable, their workspace.

Content-free telemetry

Channel analytics records fixed operational dimensions—not prompts, transcript text, media URLs, filenames, tokens, email addresses, or raw IPs.

Safe retries

Idempotency keys, durable receipts, pagination, and explicit terminal states let hosts recover from disconnects without duplicating work.

Try the workflow

Three prompts. One durable loop.

  1. 1Transcribe this public recording and tell me when it is ready: https://…
  2. 2Check operation op_… with get_job_status and report its current state.
  3. 3Retrieve transcript tr_… page by page and preserve the source order.
Developer connection

Need stdio or an API key today?

The existing @wisprs/mcp package remains the developer-controlled alternative. It is separate from the hosted OAuth directory listings.

Connection checklist

No tools appear

Reconnect the host, confirm OAuth completed, then open a new conversation so the host refreshes its tool list.

A URL is rejected

Use a public HTTPS media URL. Private network addresses, unsafe redirects, and oversized responses are blocked.

The operation is still running

Keep the op_ receipt and check it later. Long media is deliberately asynchronous; do not resubmit it.

Access was revoked

Reconnect through the host. Revoked grants fail closed and cannot read earlier handles without valid tenant access.

Wisprs for ChatGPT and Claude | Transcription over MCP