Meeting Processor: Raw Dump to Structured Note
Paste a raw meeting dump into your vault and have Claude turn it into action items, decisions, and links.
Run this workflow
CI-verified, 4/4 fixtures passing.
Intended Use
Anyone who brain-dumps meeting notes and wants Claude to turn them into a structured, linked record (action items with assignees and dates, decisions, tags) via the obsidian-mcp server.
Not for
- People who won't install Claude Desktop
- Vaults you haven't backed up, the MCP server can write to them
The Stack
Tested Against
obsidian-mcp@0.xclaude-desktopnode@20.xSide effects & data flow
- Network
- Anthropic API, only in the non-CI Claude step
- Writes
- ./vault/Meetings/, claude_desktop_config.json
- Credentials
- Claude Desktop login, for the structuring step only
Data privacy
- Anthropic (Claude), only in the non-CI agent step ← your meeting notes (retention: per Anthropic's API/data policy)
Prerequisites
- Claude Desktop, https://claude.ai/download
- Node 20+ (obsidian-mcp runs via npx)
- Back up your vault (git ideal), the server can write to it
Steps
- 1
Check your toolchain
The config validation only needs Node. Claude Desktop is the agent for the final step.
command -v node >/dev/null 2>&1 || { echo "MISSING required: node"; exit 1; } command -v claude >/dev/null 2>&1 || echo "optional: Claude Desktop (for the structuring step)" echo "preflight OK" - 2
Validate the Claude Desktop config (Option A)
The #1 setup failure is a malformed config. We write the exact Option A block from the guide and prove it parses and points npx at obsidian-mcp.
cat > claude_desktop_config.json <<'EOF' { "mcpServers": { "obsidian": { "command": "npx", "args": ["-y", "obsidian-mcp", "/Users/you/Documents/MyVault"] } } } EOF node -e 'const c=JSON.parse(require("fs").readFileSync("claude_desktop_config.json","utf8"));const o=c.mcpServers.obsidian;if(o.command==="npx"&&o.args.includes("obsidian-mcp")){console.log("config OK: npx -> obsidian-mcp")}else{console.log("BAD");process.exit(1)}' - 3
Scaffold the inbox
Create Inbox/ and Meetings/ and drop a sample raw meeting note to process.
mkdir -p vault/Inbox vault/Meetings printf '%s\n' 'Synced with Alex re: launch. Decided to ship Friday. Alex owns QA.' > vault/Inbox/raw.md echo "inbox ready: vault/Inbox/raw.md" - 4
Structure it (the Claude step, not checked by CI)
With obsidian-mcp connected, drop your dump in Inbox/raw.md and tell Claude: turn it into Meetings/{today}-{topic}.md with action items (assignee + due date), a Decisions section, links to related Projects/ notes, and tags, then clear the inbox. Save that as a Claude Project instruction. This step needs Claude Desktop and is non-deterministic, so CI doesn't run it.
Eval, 4 fixtures
Last passed: verified 10d agoclean-exitexit_codetimeout 15s · max $0Expected:
0config-validcontainstimeout 15s · max $0Expected:
config OK: npx -> obsidian-mcpinbox-readycontainstimeout 15s · max $0Expected:
inbox ready: vault/Inbox/raw.mdpreflight-okcontainstimeout 15s · max $0Expected:
preflight OK
Results
The instant-payoff pick from the WebAfterAI guide.