Back to Directory/Developer Tools

io.github.jwulff/whisper-mcp

Local audio transcription using whisper.cpp. Transcribe with OpenAI Whisper models.

Developer ToolsTypeScriptv0.1.1

Whisper MCP Server

A lightweight MCP (Model Context Protocol) server for local audio transcription using whisper.cpp. There are several Whisper MCP implementations out there. This one is minimal and pairs with apple-voice-memo-mcp for a complete voice memo workflow.

Features

  • Local transcription - All processing happens on your machine
  • Multiple models - Choose from tiny, base, small, medium, or large models
  • Various formats - Supports wav, mp3, m4a, and other audio formats
  • Timestamps - Get transcriptions with or without timestamps

Requirements

  • macOS (tested on Apple Silicon)
  • Node.js 18+
  • whisper-cpp: brew install whisper-cpp
  • ffmpeg: brew install ffmpeg

Installation

npm install -g whisper-mcp

Or run directly:

npx whisper-mcp

Configuration

Claude Desktop

Add to your Claude Desktop config file:

macOS: ~/Library/Application Support/Claude/claude_desktop_config.json

{
  "mcpServers": {
    "whisper-mcp": {
      "command": "npx",
      "args": ["-y", "whisper-mcp"]
    }
  }
}

After editing, restart Claude Desktop.

Claude Code (CLI)

For Claude Code, add to your project's .mcp.json file:

{
  "mcpServers": {
    "whisper-mcp": {
      "command": "npx",
      "args": ["-y", "whisper-mcp"]
    }
  }
}

Or for user-wide configuration, add to ~/.claude/settings.json:

{
  "mcpServers": {
    "whisper-mcp": {
      "command": "npx",
      "args": ["-y", "whisper-mcp"]
    }
  }
}

Tip: Use /mcp in Claude Code to verify the server is connected.

Local Development Setup

If running from source instead of npm:

{
  "mcpServers": {
    "whisper-mcp": {
      "command": "node",
      "args": ["/path/to/whisper-mcp/dist/index.js"]
    }
  }
}

With Apple Voice Memos MCP

For a complete voice memo workflow, use alongside apple-voice-memo-mcp:

{
  "mcpServers": {
    "apple-voice-memo-mcp": {
      "command": "npx",
      "args": ["-y", "apple-voice-memo-mcp"]
    },
    "whisper-mcp": {
      "command": "npx",
      "args": ["-y", "whisper-mcp"]
    }
  }
}

MCP Tools

transcribe_audio

Transcribe an audio file using Whisper.

Parameters:

  • file_path (required): Absolute path to the audio file
  • model (optional): Model to use (tiny.en, base.en, small.en, medium.en, large). Default: base.en
  • language (optional): Language code. Default: en
  • output_format (optional): text, timestamps, or json. Default: text

Example:

{
  "file_path": "/path/to/audio.m4a",
  "model": "medium.en",
  "output_format": "timestamps"
}

list_whisper_models

List available Whisper models and their download status.

Returns:

{
  "models": [
    {
      "name": "base.en",
      "size": "142 MB",
      "downloaded": true,
      "path": "/Users/you/.whisper/ggml-base.en.bin"
    }
  ]
}

download_whisper_model

Download a Whisper model for local use.

Parameters:

  • model (required): Model to download (tiny.en, base.en, small.en, medium.en, large)

Models

ModelSizeSpeedQuality
tiny.en75 MBFastestBasic
base.en142 MBFastGood
small.en466 MBMediumBetter
medium.en1.5 GBSlowGreat
large2.9 GBSlowestBest

Models are stored in ~/.whisper/.

Workflow Example

  1. List your voice memos: list_voice_memos
  2. Get audio path: get_audio with memo ID
  3. Transcribe: transcribe_audio with the file path
  4. Save to your vault

Development

# Clone and install
git clone https://github.com/jwulff/whisper-mcp.git
cd whisper-mcp
npm install

# Build
npm run build

# Test with MCP inspector
npm run inspector

License

MIT

Installation

Source-derived launch command. Check the maintainer’s required arguments and credentials before running:

bash
npx -y whisper-mcp

Set up in your AI client

Merge this template into ~/Library/Application Support/Claude/claude_desktop_config.json. Keep existing servers. Add any arguments, credentials, and permissions required by the maintainer; this template has not been install-tested.

json
{
  "mcpServers": {
    "io-github-jwulff-whisper-mcp": {
      "command": "npx",
      "args": [
        "-y",
        "whisper-mcp"
      ]
    }
  }
}

Restart Claude Desktop completely for changes to take effect. Confirm the server appears connected in the client’s tool list, then try a read-only example from its documentation.

Claude Desktop setup reference

Package

whisper-mcpnpm

Compatible MCP Clients

io.github.jwulff/whisper-mcp works with any MCP-compatible client. Copy the config snippet from the Configuration section above and add it to the file shown for your client, then restart the application.

  • Claude Desktop~/Library/Application Support/Claude/claude_desktop_config.jsonRestart Claude Desktop completely for changes to take effect.
  • Cursor~/.cursor/mcp.jsonRestart Cursor for changes to take effect.
  • VS Code.vscode/mcp.jsonReload VS Code window for changes to take effect.
  • Windsurf~/.codeium/windsurf/mcp_config.jsonRestart Windsurf for changes to take effect.
  • Claude Code.mcp.jsonSave at the project root, then start Claude Code in that project and review the MCP server approval prompt. Keep real credentials out of shared files.

Learn More