m4x

m4x

Local, private audio transcription MCP server enabling AI agents to transcribe audio files entirely on-device without uploading data.

Category
Visit Server

README

m4x — local, private audio transcription

Turn voice memos and podcasts into text entirely on your own machine. m4x is a thin, fast wrapper around whisper.cpp that ships as both a command-line tool and an MCP server for AI agents.

Think of it as a tiny, local-first alternative to cloud transcription products (Plaud, Otter, etc.) — with one big difference: your audio never leaves your computer. No account, no upload, no API key, no per-minute fee. It runs beautifully on Apple-silicon Macs (Metal-accelerated) but works anywhere whisper.cpp does.

⚡ On an Apple M-series machine, the large-v3-turbo model transcribes roughly an hour of audio in a couple of minutes, fully offline.

Why local?

m4x (local) Typical cloud transcriber
Where your audio goes Stays on your machine Uploaded to a third party
Account / API key None Required
Cost Free Per-minute or subscription
Works offline Yes No
Summaries Bring your own LLM (see below) Built-in (cloud)

Requirements

  • Python 3.10+
  • whisper.cpp (whisper-cli) — install via Homebrew: brew install whisper-cpp
  • A ggml model — download once (see below)

Install

# 1. the transcription engine
brew install whisper-cpp

# 2. a model (large-v3-turbo: great quality/speed; ~1.5 GB)
mkdir -p ~/whisper-models
curl -L -o ~/whisper-models/ggml-large-v3-turbo.bin \
  https://huggingface.co/ggerganov/whisper.cpp/resolve/main/ggml-large-v3-turbo.bin

# 3. m4x itself
pipx install .        # or: pip install .

CLI usage

# a single voice memo
m4x transcribe ~/Downloads/memo.m4a
# -> writes ~/Downloads/memo.txt

# a whole folder of podcasts, German
m4x transcribe ~/Podcasts --lang de

# print to stdout and pipe straight into your own LLM for a summary
m4x transcribe interview.mp3 --stdout | llm "summarise this into 5 bullet points and action items"

Options: --lang (e.g. en, de, or auto), --model <path>, --out <dir>, --stdout.

MCP usage (Claude Desktop & other agents)

m4x also runs as an MCP server so an agent can transcribe for you. Long files run as a background job — start, then poll.

Add to your MCP client config (e.g. Claude Desktop claude_desktop_config.json):

{
  "mcpServers": {
    "m4x": {
      "command": "m4x-mcp"
    }
  }
}

Tools exposed: transcribe_start(file_path, language) → job_id, transcribe_result(job_id), transcribe_list_jobs().

"Mini-Plaud" pattern: transcribe → summarise

m4x deliberately does transcription only and stays out of the AI-summary business, so you keep full control (and privacy) over that step. Pair it with any LLM you like:

m4x transcribe standup.m4a --stdout | llm "Extract decisions, owners, and due dates as a table"

Or, in an agent: call transcribe_start, poll transcribe_result, then ask the model to summarise the returned text.

Configuration

Everything has sensible defaults; override via environment variables:

Variable Default Meaning
M4X_WHISPER_BIN whisper-cli on PATH, else /opt/homebrew/bin/whisper-cli Path to the whisper.cpp binary
M4X_MODEL ~/whisper-models/ggml-large-v3-turbo.bin Path to the ggml model

How it works

m4x shells out to whisper-cli with your chosen model and language, writes a .txt transcript next to the audio (or to --out), and returns the text. The CLI and the MCP server share one small core module — no duplicated logic. That's the whole thing: ~200 lines, no magic.

License

MIT — see LICENSE. Contributions welcome; see CONTRIBUTING.md and SECURITY.md.

Recommended Servers

playwright-mcp

playwright-mcp

A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.

Official
Featured
TypeScript
Magic Component Platform (MCP)

Magic Component Platform (MCP)

An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.

Official
Featured
Local
TypeScript
Audiense Insights MCP Server

Audiense Insights MCP Server

Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.

Official
Featured
Local
TypeScript
VeyraX MCP

VeyraX MCP

Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.

Official
Featured
Local
graphlit-mcp-server

graphlit-mcp-server

The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.

Official
Featured
TypeScript
Kagi MCP Server

Kagi MCP Server

An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.

Official
Featured
Python
E2B

E2B

Using MCP to run code via e2b.

Official
Featured
Neon Database

Neon Database

MCP server for interacting with Neon Management API and databases

Official
Featured
Exa Search

Exa Search

A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.

Official
Featured
Qdrant Server

Qdrant Server

This repository is an example of how to create a MCP server for Qdrant, a vector search engine.

Official
Featured