RAGOpen SourceFreeActiveMachine-verified· intermediate · ~10 min setup

Obsidian × MCPVault: The Argument Builder

Give Claude a thesis and have it assemble a sourced, ranked argument from everything you've ever written.

by Shilpa Mitra· verified 13d ago· v1.0.0

Run this workflow

CI-verified, 3/3 fixtures passing.

Intended Use

Anyone writing to persuade who wants Claude to pull supporting evidence from the whole vault (BM25-ranked search_notes + read_multiple_notes) into a structured argument with the strongest evidence first and links back to sources.

Not for

  • Thin vaults with little to draw on
  • People who won't install Claude Desktop

The Stack

Tested Against

mcpvault@latestclaude-desktopnode@20.xobsidian@1.7.x

Side effects & data flow

Network
Anthropic API, only in the non-CI Claude step
Writes
./vault/Arguments/, claude_desktop_config.json
Credentials
Claude Desktop login, for the assembly step only

Data privacy

  • Anthropic (Claude), only in the non-CI agent step the thesis and the notes it ranks as evidence (retention: per Anthropic's API/data policy)

Prerequisites

  • Claude Desktop, https://claude.ai/download
  • Node 20+ (MCPVault runs via npx)
  • A vault with enough notes to argue from

Steps

  1. 1

    Validate config and scaffold the Arguments/ folder

    CI validates the MCPVault config and creates the Arguments/ target the assembled case is written to.

    cat > claude_desktop_config.json <<'EOF'
    { "mcpServers": { "obsidian": { "command": "npx", "args": ["@bitbonsai/mcpvault@latest", "/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.some(a=>a.indexOf("@bitbonsai/mcpvault")===0)){console.log("config OK: npx -> @bitbonsai/mcpvault")}else{console.log("BAD");process.exit(1)}'
    mkdir -p vault/Arguments
    test -d vault/Arguments && echo "arguments ready: vault/Arguments/"
  2. 2

    Assemble the argument (the Claude step, not checked by CI)

    Give Claude your thesis and have it search the whole vault for evidence, organize it strongest-first, and save Arguments/<thesis>.md with links back to each source. Uses BM25-ranked search_notes + read_multiple_notes; runs a model, so CI doesn't run it.

Eval, 3 fixtures

Last passed: verified 13d ago
  • config-validcontainstimeout 30s · max $0

    Expected: config OK: npx -> @bitbonsai/mcpvault

  • arguments-readycontainstimeout 30s · max $0

    Expected: arguments ready: vault/Arguments/

  • clean-exitexit_codetimeout 30s · max $0

    Expected: 0

Results

Where the BM25-ranked search earns its keep, from the WebAfterAI Part 2 guide.

Did this work for you?

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

Liked this workflow?

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