AgentsOpen SourceFreeActiveMachine-verified· beginner · ~10 min setup

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.

by Shilpa Mitra· verified today· v1.0.0

Run this workflow

CI-verified, 4/4 fixtures passing.

Build this with your agent

One copy-paste hands Claude Code, Codex, or Cursor the full recipe, steps included, nothing to fetch.

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.x

Side 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. 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. 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. 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. 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 today
  • preflight-okcontainstimeout 15s · max $0

    Expected: preflight OK

  • config-validcontainstimeout 15s · max $0

    Expected: config OK: npx -> obsidian-mcp

  • inbox-readycontainstimeout 15s · max $0

    Expected: inbox ready: vault/Inbox/raw.md

  • clean-exitexit_codetimeout 15s · max $0

    Expected: 0

Results

The instant-payoff pick from the WebAfterAI guide.

Did this work for you?

Our CI checks the setup runs. You tell us if the whole thing worked. Tell us straight.

Related workflows

Liked this workflow?

Get new verified workflows in WebAfterAI, three issues a week (Tue, Thu, Sat).