Claude Desktop has stricter filesystem security than Cursor. By default, MCP servers cannot write files to arbitrary locations, which causes "read-only file system" errors when trying to save transcripts.
We've added support for OUTFILE_DIR environment variable and allowedDirectories configuration to grant Claude Desktop explicit filesystem write access.
mkdir -p ~/Documents/TranscriptsEdit ~/Library/Application Support/Claude/claude_desktop_config.json:
{
"mcpServers": {
"audio-transcription": {
"command": "npx",
"args": ["-y", "audio-transcription-mcp"],
"env": {
"OPENAI_API_KEY": "sk-your-openai-api-key-here",
"INPUT_DEVICE_NAME": "BlackHole",
"CHUNK_SECONDS": "8",
"MODEL": "whisper-1",
"OUTFILE_DIR": "/Users/yourname/Documents/Transcripts"
},
"allowedDirectories": [
"/Users/yourname/Documents/Transcripts"
]
}
}
}Important:
- Replace
yournamewith your actual macOS username - Replace
sk-your-openai-api-key-herewith your actual OpenAI API key - The path in
OUTFILE_DIRmust match the path inallowedDirectories
Completely quit (Cmd+Q) and relaunch Claude Desktop.
In Claude Desktop, say:
"Start transcribing audio"
The transcript will be saved to your configured directory with a timestamped filename.
-
Added
OUTFILE_DIRenvironment variable (src/mcp-server.ts)- Defaults to
process.cwd()for backward compatibility with Cursor - Allows specifying a custom output directory for transcripts
- Defaults to
-
Updated file path handling
- Transcripts are now saved to
join(OUTFILE_DIR, filename) - Supports both absolute and relative paths
- Works seamlessly in both Cursor and Claude Desktop
- Transcripts are now saved to
- MCP_SETUP.md - Added Claude Desktop filesystem requirements
- README.md - Added separate configs for Cursor vs Claude Desktop
- env.example - Added OUTFILE_DIR with documentation
- CURSOR_CONFIG_EXAMPLE.json - Added Claude Desktop config notes
- CLAUDE_DESKTOP_CONFIG_EXAMPLE.json - New dedicated example file
- Cursor doesn't need
allowedDirectoriesand continues to work as before - Default behavior unchanged (writes to current working directory)
- Explicit
allowedDirectoriesgrants necessary filesystem access OUTFILE_DIRensures files are written to permitted locations
- Single environment variable addition
- No breaking changes to existing behavior
- All 61 tests still pass
Cause: allowedDirectories not configured or doesn't match OUTFILE_DIR
Fix:
- Ensure both
OUTFILE_DIRandallowedDirectoriesuse the same path - Ensure the directory exists:
mkdir -p ~/Documents/Transcripts - Use absolute paths (starting with
/) - Restart Claude Desktop completely
Cause: Output directory doesn't exist
Fix:
mkdir -p ~/Documents/Transcripts
# Or whatever path you specified in OUTFILE_DIRCause: OUTFILE_DIR not set, using default current working directory
Fix: Add OUTFILE_DIR to your env configuration as shown above
After setup, verify it works:
- Start Claude Desktop
- Say: "Start transcribing audio and show me the status"
- Check the status output for
outputFilepath - It should show your configured directory
- Verify the file exists:
ls -la ~/Documents/Transcripts/
The allowedDirectories configuration is a security feature. Only grant access to directories where you want transcripts saved. Don't use system directories like /System/ or /usr/.
For issues:
- Check this guide
- See MCP_SETUP.md for detailed documentation
- Verify all prerequisites from GETTING_STARTED.md
- Ensure you're using the latest version:
npx -y audio-transcription-mcp@latest