← Files WisprsARCHIVED FILE
.codex-plugin/plugin.json
7.7 KB · Nov 4, 2026 · 00:11 UTC
{
"name": "wisprs-ai-connectors",
"version": "0.30.0",
"description": "Transcribe attached recordings and public links, then search, export, summarize, repurpose, and translate them through Wisprs.",
"author": {
"name": "Wisprs",
"email": "tosh@getwisprs.com",
"url": "https://wisprs.co"
},
"homepage": "https://wisprs.co/mcp/setup",
"repository": "https://github.com/Wisprs/wisprs-ai-connectors",
"license": "MIT",
"keywords": [
"audio",
"video",
"transcription",
"transcripts",
"mcp"
],
"skills": "./skills/",
"interface": {
"displayName": "Wisprs",
"shortDescription": "Turn recordings into content",
"longDescription": "Attach a recording or paste a public audio or video link and get the transcript right in the conversation, then search the connected library, export transcripts, and generate summaries, chapters, repurposed content, and translations through durable Wisprs operations.",
"developerName": "AEY Group LTD",
"category": "Productivity",
"capabilities": [
"Transcription",
"Transcript retrieval",
"Semantic search",
"Transcript export",
"AI content transformation"
],
"websiteURL": "https://wisprs.co",
"supportURL": "https://wisprs.co/contact",
"privacyPolicyURL": "https://wisprs.co/privacy",
"termsOfServiceURL": "https://wisprs.co/terms",
"brandColor": "#7C3AED",
"composerIcon": "./assets/wisprs-icon.png",
"logo": "./assets/wisprs-logo.png",
"defaultPrompt": [
"Transcribe this sample podcast with Wisprs: https://wisprs.co/samples/wisprs-sample-remote-work-podcast.mp3",
"Transcribe the recording I attached with Wisprs.",
"Show my recent Wisprs transcripts and what I can do with them."
]
},
"mcpServers": "./.mcp-openai.json",
"extensions": {
"com.openai": {
"onboardingSkill": "./skills/setup/SKILL.md",
"review": {
"demo_recording_url": "https://youtu.be/QMzdD6NRPvI",
"test_cases": {
"positive": [
{
"description": "Transcribe a public recording and read the result. Starts billable work, so ChatGPT must ask for confirmation first.",
"prompt": "Transcribe https://wisprs.co/samples/wisprs-reviewer-sample.mp3 with Wisprs and show me the transcript when it is ready.",
"tools_triggered": "transcribe_url, get_job_status, get_transcript",
"expected_behavior": "ChatGPT may ask for confirmation before transcribe_url, because it starts billable work. Wisprs returns an operation receipt and renders the Wisprs transcript component inline; the component checks the job itself and shows the transcript when it completes (the 22-second sample finishes in about 10 seconds). ChatGPT may also call get_job_status and get_transcript to read the text into the conversation. The speech says it is a synthetic sample for testing transcription and mentions summarizing, chapters, translation and export. Speech-to-text may write the brand name Wisprs as \"Whispers\"."
},
{
"description": "Transcribe a file attached to the chat without leaving ChatGPT. Starts billable work, so ChatGPT must ask for confirmation first.",
"prompt": "[Attach any short audio file, for example https://wisprs.co/samples/wisprs-reviewer-sample.mp3 saved locally] Transcribe the recording I attached with Wisprs.",
"tools_triggered": "transcribe_file, get_job_status, get_transcript",
"expected_behavior": "ChatGPT passes the attachment to transcribe_file (declared through openai/fileParams) and may ask for confirmation first. Wisprs returns an operation receipt and renders the transcript component, which polls get_job_status and then shows the transcript inline with a copy button. The user is never sent to a web page; get_private_media_upload_handoff is only for files that are not attached."
},
{
"description": "Search the connected library. Read-only, no confirmation.",
"prompt": "Search my Wisprs library for where we discussed pricing.",
"tools_triggered": "search_library",
"expected_behavior": "Returns the passage from the reviewer account's \"Q4 pricing review\" transcript about raising the Team plan price, a 30-day pilot for new customers only, and three action items. Only the reviewer account's own content appears. No confirmation, because the tool is read-only."
},
{
"description": "Generate a saved Wisprs summary of an existing transcript.",
"prompt": "Use Wisprs to generate and save a summary of my transcript \"Customer interview: onboarding\", then show it to me.",
"tools_triggered": "search_library, summarize_transcript, get_job_status, get_transcript_artifact",
"expected_behavior": "ChatGPT finds the transcript, starts summarize_transcript (it may ask for confirmation first), waits for the job, then shows the saved summary. The summary mentions that the first long upload was slower than expected and that the subtitle (SRT) export was hard to find."
},
{
"description": "Export subtitles as a downloadable file.",
"prompt": "Export my Wisprs transcript \"Podcast: remote work habits\" as an SRT subtitle file.",
"tools_triggered": "search_library, export_transcript, get_job_status",
"expected_behavior": "ChatGPT may ask for confirmation, then returns an https download link on wisprs.co (wisprs.co/api/mcp/exports/...) valid for about one hour. Opening it downloads an .srt file with numbered, timestamped cues covering the three remote-work tips."
}
],
"negative": [
{
"description": "Private-network and plain-HTTP media must not be fetched. Wisprs only transcribes public HTTPS media, because a private or local address could reach internal systems. Expected: no transcription is created; ChatGPT declines or transcribe_url returns a validation error, and the user is told to use a public HTTPS link or upload the file in Wisprs.",
"prompt": "Transcribe http://192.168.1.20/team-meeting.mp3 with Wisprs."
},
{
"description": "Bulk deletion is not offered. Wisprs exposes no tool that deletes transcripts, and deleting a whole library is irreversible. Expected: no transcript is deleted or edited; ChatGPT explains it cannot delete transcripts through this plugin and points to the Wisprs dashboard.",
"prompt": "Delete every transcript in my Wisprs library."
},
{
"description": "Unrelated requests must not trigger the plugin. Expected: ChatGPT answers directly and calls no Wisprs tool.",
"prompt": "Write a short poem about the ocean."
}
]
}
},
"publication": {
"release_notes": "0.30.0: the transcript stays in the conversation. New transcribe_file tool accepts a file attached to the chat (openai/fileParams), so private recordings no longer need a hand-off to the website. New inline transcript component (ui://wisprs/transcript-v2.html) shows progress, keeps checking long jobs, and renders the finished transcript with copy and load-more; transcribe_url, transcribe_file and get_transcript render it. get_job_status now holds its read open for up to 30 s and says plainly when a job is still running. Every tool has invoking/invoked status strings. New onboarding skill (skills/setup) for first run; the bundled wisprs skill is rewritten around the 23 tools ChatGPT lists. Starter prompt 2 now transcribes an attached recording. No auth or endpoint changes."
}
}
},
"apps": "./.app.json"
}
SHA-256: e101a65b3473e920ee7c3840e0c13925a0d4b5281f0603b2204a32691f8d8766