Meetscribe
БесплатноНе проверенRecord, transcribe, and extract action items from meetings inside Claude Code. Bring your own API key. macOS, Node 18+.
Описание
Record, transcribe, and extract action items from meetings inside Claude Code. Bring your own API key. macOS, Node 18+.
README
Record, transcribe, and extract action items from meetings - directly inside Claude Code. No subscriptions, no separate app. Bring your own API key and get structured meeting notes in seconds.
Think of it as your own Granola, running as a Claude Code plugin.
What it does
- Record - captures mic audio (+ system audio if BlackHole is installed) via ffmpeg
- Transcribe - streams to Deepgram in real time, or batch-transcribes with AssemblyAI or OpenAI Whisper
- Extract - MeetScribe pulls out action items, decisions, blockers, and a summary
- Save - writes everything to a clean markdown file in your project
One command to start, one to stop. Everything else is automatic.
Quick start
Prerequisites
- macOS (recording uses ffmpeg's avfoundation; other platforms can still use
meeting_import) - Node.js 18+
- ffmpeg (
brew install ffmpeg) - A transcription API key (any one of the three providers)
Install
# Clone the plugin
git clone https://github.com/qa-aman/meetscribe.git
cd meetscribe
npm install
# Add your API key
cp .env.example .env
# Edit .env and add your key
Connect to Claude Code
Option A - all projects (recommended). From the cloned folder, run:
npm run connect
That's it - no paths to figure out. It registers MeetScribe at user scope so it works in every project. Restart Claude Code, then verify with /mcp - meetscribe should be listed as connected.
Under the hood it runs:
claude mcp add meetscribe --scope user -- node "$(pwd)/src/index.js"
Option B - single project. Add to that project's .mcp.json with the absolute path:
{
"mcpServers": {
"meetscribe": {
"command": "node",
"args": ["/absolute/path/to/meetscribe/src/index.js"]
}
}
}
Either way, meeting notes always save into the project you run it from (<project>/meetscribe/), and the API key is read from the MeetScribe install directory - no per-project key setup.
Use it
You: meeting_setup # check prerequisites
You: meeting_start "Sprint 14" # start recording
... have your meeting ...
You: meeting_stop # stop, transcribe, extract, save
Your notes land in meetscribe/YYYY-MM-DD_Sprint-14/.
Tools
| Tool | What it does |
|---|---|
meeting_setup |
Check prerequisites (ffmpeg, API keys, config) |
meeting_start |
Start recording with a title |
meeting_stop |
Stop recording and run the full pipeline |
meeting_import |
Import an existing audio or transcript file |
meeting_save |
Save extracted notes (called automatically) |
meeting_list |
List all past meetings |
meeting_config |
View current configuration |
Transcription providers
| Provider | Free tier | Speaker labels | Streaming | Languages |
|---|---|---|---|---|
| Deepgram (default) | $200 credit | Yes | Yes (live) | 60+ |
| AssemblyAI | $50 credit | Yes | No (batch) | 6 |
| OpenAI Whisper | None (pay-as-you-go) | No | No (batch) | 50+ |
Switch providers in meetscribe/config.yaml:
provider: assemblyai # deepgram | assemblyai | whisper
Streaming vs batch
With Deepgram (the default), MeetScribe streams audio over WebSocket and writes the transcript in real time as you speak. meeting_stop returns extraction-ready text instantly.
For AssemblyAI and Whisper, audio is uploaded and transcribed after meeting_stop (batch mode). Streaming auto-falls-back to batch if the WebSocket connection fails.
Disable streaming explicitly in config.yaml:
streaming: false
Multi-language support
Set the language field in config.yaml:
language: en # ISO code: en, hi, es, fr, de, ja, ...
# or
language: multi # Deepgram auto-detects language per utterance
Import existing recordings
Already have an audio file or transcript? Import it directly:
meeting_import '/path/to/recording.m4a'
meeting_import '/path/to/transcript.txt'
Supported audio formats: .m4a, .mp3, .wav, .ogg, .flac, .aac
Supported transcript formats: .txt, .srt, .vtt
Speaker mapping
Create a team.md file in your project root with your team members:
# Team
- Alice Chen - Engineering Lead
- Bob Park - Backend Developer
- Carol Liu - Product Manager
MeetScribe will map "Speaker 0", "Speaker 1" to real names using context from the conversation (who's addressed by name, who discusses what, role references).
Requirements:
- Provider must return speaker labels - works with Deepgram and AssemblyAI, automatically skipped for Whisper
- If
team.mddoesn't exist, mapping is skipped silently (no error) - Configure the path in
meetscribe/config.yamlviateam_file, or set tonullto disable
Customizing extraction
Edit meetscribe/extract.md to change what gets extracted. The default template pulls:
- Action items (owner, task, deadline)
- Key decisions
- Open questions and blockers
- 3-sentence summary
System audio capture (optional)
To capture all meeting participants (not just your mic):
- Install BlackHole:
brew install blackhole-2ch - Open Audio MIDI Setup
- Create a Multi-Output Device combining your speakers + BlackHole
MeetScribe auto-detects BlackHole and switches to dual-capture mode.
Configuration
All config lives in meetscribe/config.yaml:
provider: deepgram # deepgram | assemblyai | whisper
language: en # ISO code, or "multi" for Deepgram auto-detection
streaming: true # real-time transcription (deepgram only, auto-disabled for whisper/assemblyai)
output_dir: ./meetscribe # where meeting folders are created
keep_audio: true # keep audio files after transcription
extraction_prompt: ./meetscribe/extract.md
auto_extract: true # run extraction automatically on meeting_stop
team_file: ./team.md # path to team file, or null to skip
Safety features
- Recordings auto-stop after 4 hours (ffmpeg hard cap)
- Stale recording state auto-expires after 4h5m
- Transcription API calls timeout after 5 minutes (10 min for AssemblyAI)
- Orphaned ffmpeg processes are detected and cleaned up on restart
- SIGKILL fallback if ffmpeg doesn't respond to graceful shutdown
Output structure
meetscribe/
config.yaml
extract.md
2026-04-15_Sprint-14/
2026-04-15_sprint-14.md # final notes
recording.m4a # audio file
transcript.txt # raw transcript
Feedback
Found a bug? Have an idea? Want to share how you're using it?
- Issues: https://github.com/qa-aman/meetscribe/issues (bug reports and feature requests use the built-in templates)
- Email: [email protected]
- GitHub: @qa-aman
License
MIT
Author
Установка Meetscribe
У этого сервера нет опубликованного пакета — он собирается из исходников. Открой репозиторий и следуй инструкции в README.
▸ github.com/qa-aman/meetscribeFAQ
Meetscribe MCP бесплатный?
Да, Meetscribe MCP бесплатный — установка в пару кликов через Unyly без оплаты.
Нужен ли API-ключ для Meetscribe?
Нет, Meetscribe работает без API-ключей и переменных окружения.
Meetscribe — hosted или self-hosted?
Self-hosted: сервер запускается локально на твоей машине командой из раздела установки.
Как установить Meetscribe в Claude Desktop, Claude Code или Cursor?
Открой Meetscribe на unyly.org, выбери вкладку своего клиента (Claude Desktop, Claude Code, Cursor) и нажми Install — конфиг сгенерируется автоматически, без правки JSON.
Похожие MCP
GitHub
PRs, issues, code search, CI status
автор: GitHubFilesystem
Secure file operations with configurable access controls.
Memory
Knowledge graph-based persistent memory system.
Template MCP Server
A CLI tool to create a new Model Context Protocol server project with TypeScript support, dual transport options, and an extensible structure
автор: mcpdotdirectCompare Meetscribe with
Не уверен что выбрать?
Найди свой стек за 60 секунд
Автор?
Embed-бейдж для README
Похожее
Все в категории development
