
Company News
Socket Joins New OpenJS Program to Fund Node.js Security Work
Socket is joining the OpenJS Security Stewardship Program to fund Node.js vulnerability research, maintainer remediation, and security releases.
@samuraizer/mcp-server
Advanced tools
[Model Context Protocol](https://modelcontextprotocol.io/) server for [Samuraizer](https://github.com/UladzKha/samuraizer-cli) — exposes processed meetings to AI agents (Claude Desktop, Claude Code, MCP Inspector, etc.) over stdio.
Model Context Protocol server for Samuraizer — exposes processed meetings to AI agents (Claude Desktop, Claude Code, MCP Inspector, etc.) over stdio.
The server provides two modes:
samuraizer itself: whisper-cli, ffmpeg, ffprobe, and a running Ollama instance.Everything stays local. The server reads meetings from a directory on your machine and never sends data to any external service.
This package depends on @samuraizer/cli for its config and pipeline. Before using the MCP server, install and initialize the CLI:
npm install -g @samuraizer/cli
samuraizer init
Edit the generated config (path printed by samuraizer config path) and make sure meetingsDir points to the directory where your processed meetings live. The MCP server reads from that same directory.
For process mode, you additionally need the Samuraizer runtime dependencies installed and configured: whisper-cli from whisper.cpp, ffmpeg / ffprobe, and a running Ollama server with a pulled model. See the main Samuraizer README for setup details.
For query mode only (list_meetings, get_meeting, meeting:// resources), none of the runtime dependencies are required — just a populated meetingsDir.
npm install -g @samuraizer/mcp-server
This exposes a samuraizer-mcp binary on your PATH.
samuraizer-mcp
The server speaks MCP over stdio. It is not meant to be used interactively from a shell — it is intended to be launched by an MCP client such as Claude Desktop or MCP Inspector.
npx @modelcontextprotocol/inspector samuraizer-mcp
Opens a browser UI where you can list tools and resources, call them with arguments, and see responses. Useful for debugging.
Add the server to your Claude Desktop configuration file:
~/Library/Application Support/Claude/claude_desktop_config.json (macOS) or ~/.config/Claude/claude_desktop_config.json (Linux)%APPDATA%\Claude\claude_desktop_config.json{
"mcpServers": {
"samuraizer": {
"command": "samuraizer-mcp"
}
}
}
If samuraizer-mcp is not found by Claude Desktop (PATH issues are common with version managers like fnm, nvm, or volta), use an absolute path instead. Find it with which samuraizer-mcp, then:
{
"mcpServers": {
"samuraizer": {
"command": "/absolute/path/to/samuraizer-mcp"
}
}
}
You can also override the meetings directory per-server via environment variables:
{
"mcpServers": {
"samuraizer-personal": {
"command": "samuraizer-mcp",
"env": {
"SAMURAIZER_MEETINGS_DIR": "/Users/me/personal-meetings"
}
},
"samuraizer-work": {
"command": "samuraizer-mcp",
"env": {
"SAMURAIZER_MEETINGS_DIR": "/Users/me/work-meetings"
}
}
}
}
Restart Claude Desktop after editing the config.
claude mcp add samuraizer samuraizer-mcp
See the Claude Code MCP documentation for managing MCP servers from the CLI.
The MCP server reads the same config file as @samuraizer/cli. There is no separate config for the server itself.
All config fields accept env-var overrides, useful for running the server in different contexts (e.g. one MCP server per project):
| Variable | Maps to |
|---|---|
SAMURAIZER_MEETINGS_DIR | meetingsDir |
SAMURAIZER_MODEL | model |
SAMURAIZER_OLLAMA_BASE_URL | ollamaBaseUrl |
SAMURAIZER_WHISPER_COMMAND | whisperCommand |
SAMURAIZER_WHISPER_MODEL_PATH | whisperModelPath |
SAMURAIZER_LANGUAGE | language |
SAMURAIZER_FFMPEG_COMMAND | ffmpegCommand |
SAMURAIZER_FFPROBE_COMMAND | ffprobeCommand |
Env vars override values from the config file.
list_meetingsList processed meetings, sorted newest first.
Input:
limit (integer, optional) — maximum number of results to return.Returns: JSON array of meeting summaries (id, name, generated_at, summary_preview, participant_count, duration_sec).
get_meetingRetrieve the full processed output for a specific meeting.
Input:
id (string, required) — the meeting ID (ULID).Returns: the full meeting JSON, including transcript, summary, action items, decisions, and provenance metadata. Returns an error if the meeting is not found.
These tools run parts of the Samuraizer pipeline on demand. They have local runtime dependencies (whisper-cli, ffmpeg, Ollama).
process_recordingRun the full pipeline on an audio file. Recommended entrypoint for processing recordings via an agent.
Input:
filePath (string, required) — absolute path to the audio file.model (string, optional) — Ollama model to use; falls back to the configured default.Returns: JSON with summary, action items, decisions, and output file paths.
normalize_audioNormalize an audio file to 16 kHz mono PCM WAV (the format Whisper expects).
Input: inputPath, outputPath (both required absolute paths).
transcribe_audioTranscribe an audio file with whisper.cpp.
Input: filePath (required absolute path).
summarize_transcriptGenerate a meeting summary from transcript text.
Input: transcriptText (required), model (optional).
extract_action_itemsExtract action items from a transcript.
Input: transcriptText (required), model (optional).
extract_decisionsExtract confirmed decisions from a transcript.
Input: transcriptText (required), model (optional).
The server exposes each processed meeting as an MCP resource:
meeting://{id}application/jsonget_meeting returns.Listing resources returns one entry per meeting in meetingsDir. Reading a resource returns its full content. Resources are particularly useful for clients that surface them in their UI (e.g. Claude Desktop's resource picker).
All meeting JSON conforms to the open Samuraizer meeting-output schema, which describes meeting structure, transcript segments, summaries, action items, decisions, and provenance metadata.
The schema and its specification live in the memnex-spec package:
spec/meeting-output.schema.jsonspec/SPEC.mdspec/examples/Error: The config file is not created, please run 'samuraizer init'The MCP server uses the same config as the CLI. Install @samuraizer/cli and run samuraizer init first.
list_meetings returns an empty arrayEither meetingsDir is empty, or all meeting.json files in it failed schema validation. The server logs structured warnings to stderr for each invalid meeting it skips — check the terminal where the MCP server is running (or the Claude Desktop logs at ~/Library/Logs/Claude/mcp-server-samuraizer.log on macOS).
EACCES when launching the serverAfter running npm run build from source, the executable bit on dist/index.js may need to be set. The package's postbuild script handles this automatically when installing from npm. If you cloned the repo, make sure chmod +x dist/index.js ran.
Common causes:
samuraizer-mcp is not on the PATH that Claude Desktop sees. Use an absolute path.jq . < claude_desktop_config.json.MIT — see LICENSE.
github.com/UladzKha/samuraizer-cli (monorepo)
FAQs
Local-first MCP server for meeting recordings: transcripts, summaries, action items, and decisions. Runs on your machine with whisper.cpp and Ollama — no cloud.
The npm package @samuraizer/mcp-server receives a total of 35 weekly downloads. As such, @samuraizer/mcp-server popularity was classified as not popular.
We found that @samuraizer/mcp-server demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 1 open source maintainer collaborating on the project.

Company News
Socket is joining the OpenJS Security Stewardship Program to fund Node.js vulnerability research, maintainer remediation, and security releases.

Security News
Two compromised GitHub Actions were re-enabled with malicious tags intact, exposing thousands of downstream repositories to Mini Shai-Hulud.

Research
/Security News
A malicious Firefox extension fetches its payload after installation to evade detection, steal Google session cookies, and automate account takeover.