meeting-memory-mcp
A local-first MCP server that gives Claude memory across your meeting transcripts.
Most "AI meeting notes" tools summarize one meeting at a time and forget everything once the chat window closes. This server stores transcripts locally (SQLite, full-text search) and lets Claude maintain a living, human-readable markdown wiki of decisions, open commitments, and contradictions across meetings — so the next time you talk to Claude about a project or a client, it already remembers what happened last time.
Everything stays on your machine. No transcript or summary is ever sent anywhere except to the LLM you're already chatting with (Claude).
How it works
- You paste a transcript into Claude and say "log this meeting."
- Claude calls
add_meetingto store it, thensearch_meetingsto pull up anything
related from past meetings.
- Claude reasons over both (in its own context — this server does no LLM calls itself)
and calls write_wiki_page to update a markdown page for that topic/client/project with the latest decisions, status, and any contradictions it noticed.
- Next time, Claude calls
read_wiki_pagefirst to recall context before you even
mention details.
The wiki pages are plain markdown files on disk (~/.meeting-memory-mcp/wiki/ by default) — you can open, edit, or read them yourself anytime, no app required.
Tools
| Tool | Purpose | |---|---| | add_meeting | Store a new transcript | | search_meetings | Full-text search across all past transcripts | | get_meeting | Fetch a full transcript by id | | list_meetings | List all stored meetings | | write_wiki_page | Create/update a durable markdown memory page | | read_wiki_page | Read a memory page | | list_wiki_pages | List all memory pages |
Setup
Requires uv.
git clone <this repo>
cd meeting-memory-mcp
uv sync
Claude Desktop / Claude Code
Add to your MCP config (claude_desktop_config.json or .mcp.json):
{
"mcpServers": {
"meeting-memory": {
"command": "uv",
"args": ["--directory", "/absolute/path/to/meeting-memory-mcp", "run", "meeting-memory-mcp"]
}
}
}
Restart Claude. Then just say: "Here's a transcript from today's call, log it and let me know if it conflicts with anything we discussed before."
Where data is stored
Defaults to ~/.meeting-memory-mcp/. Override with the MEETING_MEMORY_DIR environment variable (e.g. to keep separate memory per client or sync the folder via your own backup tool).
Why this exists
Every meeting-notes tool on the market summarizes a single meeting well. None of them help a non-technical user notice "you committed to this three meetings ago and it never came up again," because that requires reasoning across history, not just one transcript. This server doesn't do that reasoning itself — it gives Claude the storage and retrieval it needs to do it, and a human-readable place to keep what it learns.
License
MIT











