{"_id":"pepys-mcp","_rev":"3-2a674e3b1f3f0777cd8f18e73e5ed0ce","name":"pepys-mcp","dist-tags":{"latest":"0.1.1"},"versions":{"0.1.0":{"name":"pepys-mcp","version":"0.1.0","keywords":["mcp","model-context-protocol","transcription","speech-to-text","diarization","subtitles","podcast","pepys"],"license":"MIT","_id":"pepys-mcp@0.1.0","maintainers":[{"name":"shrestan","email":"ankur@kmfv.cc"}],"homepage":"https://pepys.co/developers","bin":{"pepys-mcp":"dist/index.js"},"dist":{"shasum":"3950e98f4a9a20e95c0d27abf2af19ba7136f337","tarball":"https://registry.npmjs.org/pepys-mcp/-/pepys-mcp-0.1.0.tgz","fileCount":26,"integrity":"sha512-DvRL+S+YnoPyj/vYDl8jUmCVumfvW7/PJtZoorEkHUWSJZFK/k5jOWHjNLdvO2NMB/8cGrINqxI/F+TNxS/Uyg==","signatures":[{"sig":"MEUCIAi9a0IdMlRH+TKXGY8jqA86susta+MQQudeseRWL4epAiEAr2z7cR6svvT2wGNiRhgOOQRP1+fkjkPyQ6JfCSbOGyI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":74574},"type":"module","engines":{"node":">=18"},"exports":{"./core":{"types":"./dist/core.d.ts","default":"./dist/core.js"}},"gitHead":"a7d4eb99e79f35a48e89731f21359af00b557131","scripts":{"build":"tsc && chmod +x dist/index.js","smoke":"node scripts/smoke-test.mjs","start":"node dist/index.js","typecheck":"tsc --noEmit","prepublishOnly":"npm run build"},"_npmUser":{"name":"shrestan","email":"ankur@kmfv.cc"},"_npmVersion":"11.6.2","description":"Pepys transcription MCP server (stdio) – transcribe hours-long audio/video, diarization, timed SRT/VTT, paste-a-link (YouTube/podcast), batch, word-level export. Never trains on your audio.","directories":{},"_nodeVersion":"24.11.1","dependencies":{"zod":"^4.4.3","@modelcontextprotocol/sdk":"^1.29.0"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.9.0","@types/node":"^22.10.0"},"_npmOperationalInternal":{"tmp":"tmp/pepys-mcp_0.1.0_1783153861739_0.35120445635075637","host":"s3://npm-registry-packages-npm-production"}},"0.1.1":{"name":"pepys-mcp","version":"0.1.1","keywords":["mcp","model-context-protocol","transcription","speech-to-text","diarization","subtitles","podcast","pepys"],"license":"MIT","_id":"pepys-mcp@0.1.1","maintainers":[{"name":"shrestan","email":"ankur@kmfv.cc"}],"homepage":"https://pepys.co/developers","bin":{"pepys-mcp":"dist/index.js"},"dist":{"shasum":"fccb457dae11df21cc9141827237970509cb16f8","tarball":"https://registry.npmjs.org/pepys-mcp/-/pepys-mcp-0.1.1.tgz","fileCount":26,"integrity":"sha512-2lWQDmiLC1mu7OHIRRLb6q/FcwGEPBGDMNU1+SdoRaJlmb1nJjkK5w0p0c7CCYEFO56woMQucqxjenjKOngZcw==","signatures":[{"sig":"MEYCIQCQWVqTdPV3RMhwSEJYlIVj0RzLiAhz4mva4Tic5CR5fgIhAO6JArQCmOXorCxXOVhhCyOdddQkKuq3rq+p2/oItXyx","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":74609},"type":"module","engines":{"node":">=18"},"exports":{"./core":{"types":"./dist/core.d.ts","default":"./dist/core.js"}},"gitHead":"a37eb1e4b06e4d8aa6fab44b954cca34b1ce7997","mcpName":"co.pepys/pepys-mcp","scripts":{"build":"tsc && chmod +x dist/index.js","smoke":"node scripts/smoke-test.mjs","start":"node dist/index.js","typecheck":"tsc --noEmit","prepublishOnly":"npm run build"},"_npmUser":{"name":"shrestan","email":"ankur@kmfv.cc"},"_npmVersion":"11.6.2","description":"Pepys transcription MCP server (stdio) – transcribe hours-long audio/video, diarization, timed SRT/VTT, paste-a-link (YouTube/podcast), batch, word-level export. Never trains on your audio.","directories":{},"_nodeVersion":"24.11.1","dependencies":{"zod":"^4.4.3","@modelcontextprotocol/sdk":"^1.29.0"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.9.0","@types/node":"^22.10.0"},"_npmOperationalInternal":{"tmp":"tmp/pepys-mcp_0.1.1_1783154937972_0.759691351457287","host":"s3://npm-registry-packages-npm-production"}}},"time":{"created":"2026-07-04T08:31:01.688Z","modified":"2026-07-17T13:40:58.047Z","0.1.0":"2026-07-04T08:31:01.898Z","0.1.1":"2026-07-04T08:48:58.107Z"},"license":"MIT","homepage":"https://pepys.co/developers","keywords":["mcp","model-context-protocol","transcription","speech-to-text","diarization","subtitles","podcast","pepys"],"description":"Pepys transcription MCP server (stdio) – transcribe hours-long audio/video, diarization, timed SRT/VTT, paste-a-link (YouTube/podcast), batch, word-level export. Never trains on your audio.","maintainers":[{"email":"ankur@kmfv.cc","name":"ankurmans"}],"readme":"# pepys-mcp\n\nThe **Pepys transcription MCP server** – give any MCP-speaking agent (Claude, ChatGPT, Cursor, Gemini, open-source agents) accurate, speaker-labeled, timestamped transcription of hours-long audio and video: diarization, correctly-timed SRT/VTT captions, paste-a-link ingestion (YouTube, podcasts, Drive/Dropbox), batch, and word-level export – work a general model can't do on a raw file. **Pepys never trains on your audio.**\n\nThin stdio wrapper over the Pepys [v1 REST API](https://pepys.co/developers). Phase-1 (BYO-key). OAuth/remote is on the roadmap.\n\n## Install & configure\n\nRequires **Node ≥ 18** and a Pepys API key (`pk_live_…`) from <https://pepys.co/developers>. **You get 60 free minutes on signup** – no card. Buy any pack once to unlock diarization, batch, and word-level export.\n\nRun it with `npx` (no global install):\n\n**Claude Desktop / Claude Code** – `claude_desktop_config.json` (or `claude mcp add`):\n\n```json\n{\n  \"mcpServers\": {\n    \"pepys\": {\n      \"command\": \"npx\",\n      \"args\": [\"-y\", \"pepys-mcp\"],\n      \"env\": { \"PEPYS_API_KEY\": \"pk_live_your_key_here\" }\n    }\n  }\n}\n```\n\n**Cursor** – `~/.cursor/mcp.json`, same shape. **Windsurf / other dev agents** – point them at `npx -y pepys-mcp` with `PEPYS_API_KEY` in the env.\n\nOptional env: `PEPYS_API_BASE` (defaults to `https://pepys.co/api/v1`).\n\n## Tools\n\n| Tool | What it does |\n|---|---|\n| `transcribe` | Start a transcription from a `url` (file / YouTube / podcast / Drive) or a `file_ref`. Options: `diarize` (paid), `summary`, `chapters`, `translate_to`, `quality`, podcast `episode_guid`/`episode_index`. Returns `{ job_id, status }`. |\n| `get_transcription` | Fetch a job by `job_id`; set `wait_ms:25000` to long-poll short clips to completion in one call. |\n| `upload_file` | Upload local media (a `path` or `bytes_base64`) → a `file_ref` for `transcribe`. |\n| `list_transcriptions` | Recent jobs (id, status, title, minutes). |\n| `list_podcast_episodes` | Episodes of an RSS/Apple/Spotify feed, with `episode_guid`s. |\n| `transcribe_podcast_feed` | Batch a whole feed (or latest N). **Paid.** |\n| `export_transcript` | Export SRT / VTT / TXT / MD / JSON. Segment-level is free; `word_level:true` is a **paid** unlock. (DOCX/PDF: use the web app.) |\n| `search_transcript` | Find a phrase in a long transcript → only the matching timestamped segments (no full-transcript context load). |\n| `get_credit_balance` | Remaining credit minutes + whether Pro is unlocked. |\n\nAlso exposes finished transcripts as the resource `pepys://transcription/{id}` and a `transcribe_and_summarize` prompt.\n\n**Billing over MCP:** two graceful prompts – `402` (out of minutes → top up at pepys.co/billing) and a Pro-feature upgrade message (diarization / batch / word-level → unlock with any one-time purchase). Segment exports, single transcription, links, and uploads are free on your minutes.\n\n## Develop\n\n```bash\nnpm install\nnpm run build      # tsc → dist/ (+ chmod the bin)\nnpm run smoke      # PEPYS_API_KEY=pk_live_… npm run smoke  – hits the live API to verify your key\n```\n\n## Publish\n\n`npm run build && npm publish` (publishes `pepys-mcp`). Registry listings (MCP registry, mcp.so, Smithery, PulseMCP, Glama, `awesome-mcp-servers`) are submitted separately.\n\n## License\n\nMIT\n","readmeFilename":"README.md"}