Connect Your Meeting Notes to Claude Code or Codex: A Humla MCP Setup Guide
On this page
Short answer - what you need:
- Humla installed and opened at least once, so there's a notes library on disk for the server to read.
- The switch on in Settings → General → Integrations. It's off by default.
- One config line per client. The Integrations panel shows it for your install, with your real binary path already quoted.
- Nothing else. No API key, no token, no account. The server is a local binary that reads Humla's own SQLite file.
(Disclosure: I make Humla. It's free and MIT-licensed, and yes, I'd like you to install it. This post assumes you already have, so it's mostly commands.)
Why a setup guide at all
I already wrote the launch post for the MCP server, the one with the why, the architecture and the tradeoffs. Turns out it's one of the most-read posts on this blog, and the thing people do after reading it is not ponder the architecture. They try to set it up, and then they search for the exact command.
Fair. Nobody wants a philosophy of stdio when the cursor is blinking at them. So this one is the boring, copy-pasteable version, plus the errors I've watched happen.
Everything here was checked on 3 November 2026 against Humla 0.74.0. Claude Code I tested first-hand: the server is connected in the session I'm writing this in, and a real tool call came back with my folders. The Codex config is the one Humla's Settings hands you, checked against OpenAI's MCP docs the same day.
Step 1: Turn it on in Humla
Open Humla, go to Settings → General → Integrations, and flip Enable the MCP server.
Two things happen. The switch writes a setting to Humla's database, which the server checks on every single call. And the panel reveals a snippet for Claude Code, one for Codex, and a note for anything else. The snippets use the path of the humla-mcp binary that actually sits next to your running app, so if you've put Humla somewhere other than /Applications, copy from the panel rather than from this post.
Step 2a: Claude Code
One command:
claude mcp add --scope user humla -- "/Applications/Humla.app/Contents/MacOS/humla-mcp"
What the pieces do:
| Piece | Meaning |
|---|---|
--scope user | Available in every project, not just the folder you ran it in. Leave it off and you get the default local scope, which is this project only |
humla | The server's name in Claude Code. Tools show up as mcp__humla__search_notes and friends |
-- | Everything after this is the command to launch. Skipping it is how flags get eaten by the wrong program |
"…/humla-mcp" | The binary. Quoted, because any path with a space in it splits into two arguments otherwise |
Then check it:
claude mcp get humla
You want Status: ✔ Connected and Type: stdio. Inside a session, /mcp shows the same thing. Mine says exactly that, which is a relief, given that I'd look a bit silly otherwise.
You can also use --scope project, which writes a .mcp.json into the repo. I wouldn't, for this one: your notes are yours, and a checked-in config pointing at a binary on your Mac does nothing on a teammate's machine except confuse them.
Step 2b: Codex
Add this to ~/.codex/config.toml:
[mcp_servers.humla]
command = "/Applications/Humla.app/Contents/MacOS/humla-mcp"
Or let Codex write it for you:
codex mcp add humla -- "/Applications/Humla.app/Contents/MacOS/humla-mcp"
Per OpenAI's docs (as of November 2026), that one config file is shared by the Codex CLI, the IDE extension and the ChatGPT desktop app, so setting it up once covers all three. Check it with /mcp in the Codex TUI or composer, or codex mcp list from the shell.
Two optional keys worth knowing: startup_timeout_sec (default 10) and enabled = false, which parks the server without deleting the table. You shouldn't need the first. humla-mcp opens a file and starts answering, there's no network handshake to wait for.
Step 2c: Anything else
Any MCP client that speaks stdio can launch the same binary with no arguments. That's the whole contract: your client starts humla-mcp, talks JSON-RPC over stdin and stdout, and gets six read-only tools back.
I ran the raw handshake by hand to make sure that's true rather than aspirational. The server reports itself as humla with Humla's version number, speaks MCP protocol 2025-06-18, and lists search_notes, get_note, get_transcript, list_notes, list_folders and list_clients.
I'm deliberately not printing configs for clients I haven't run it in. If yours takes a command and no args, you have everything you need.
Step 3: Ask it something
The server tells the client when to reach for it: whenever the answer depends on something that happened in a meeting rather than something in the code or on the web. So you don't have to name the tool. Just ask:
- "What did we agree with the client about the launch date?"
- "Did I promise anyone the CSV export? Find the meeting and quote me."
- "List my meetings from the last two weeks that mention the migration."
- "Before you write this, check what the team decided about rollbacks."
A good agent will search_notes, read a hit with get_note, and go to get_transcript when the exact words matter. That last step is the useful one. Excerpts come back tagged [body], [summary] or [transcript], so the agent can tell what someone actually said from what got written down about it afterwards.
When it doesn't work
The five I've seen, roughly in order of how often:
| What you see | What's going on | Fix |
|---|---|---|
| Every tool says the integration is turned off | The switch is off. The server still starts, on purpose, so the client gets a plain answer instead of a broken server | Settings → General → Integrations → on. Takes effect on the next call, no restart |
Server fails to start: no Humla library at … | Humla has never been opened on this Mac, so there's no database yet | Open Humla once. The server refuses to create an empty library, because that would answer every question with a confident, wrong "you have no notes" |
| "Command not found" or a missing-binary error | The path is wrong or unquoted, or Humla lives outside /Applications | Copy the snippet from the Integrations panel. It uses your real path |
| A search finds nothing you know is there | Search is keyword-only, and keywords don't cross languages. A Norwegian meeting won't match an English query | Ask the agent to try other words or the meeting's language. Results carry a lang: field and tools take a language filter |
| A teammate's brand-new note doesn't turn up in search | In a team workspace, the keyword index is built by the app, so a note that synced while Humla was closed isn't indexed yet | It's still readable via list_notes. Open Humla and search catches up |
That keyword-only thing deserves a sentence more, because it's the one that makes people think the server is broken. The in-app chat uses hybrid retrieval with embeddings, so it finds things you phrased differently. The MCP server doesn't, because embedding a query needs an API key and a call out of your Mac. An agent compensates by just searching again with different words, which, a bit annoyingly for the person who built the embedding half, works most of the time. More on that in the launch post and the RAG write-up.
What you just gave it access to
Worth thirty seconds before you move on, because this is real meetings with real people:
- Read-only. No tool can create, change or delete a note.
- No audio. Nothing returns or references a recording, whatever your Keep recorded audio setting is.
- Your current workspace only. Personal or a team workspace, decided by Humla, never by a tool argument.
- Nothing leaves your Mac because of Humla. The server reads a local file. Whatever your agent then does with the text, like sending it to its own model, is between you and that agent's provider. If that's the part you care about, I've written up what Anthropic and OpenAI keep.
And if you change your mind, flip the switch off. The next tool call gets told no.
Try it
Humla is free and open source, on your Mac, local-first by default. Install it, record one meeting, flip the switch, and ask Claude Code what was decided. The first time it quotes your own meeting back at you in the middle of a coding session is a weirdly good feeling, and I say that as the person who should be most used to it by now.
Michael Wilhelmsen builds Humla, the open source meeting notes app for Mac, from Norway.