Idea Cross-Pollinator: Find the Links You'd Never Spot
Have Claude search your whole vault and surface non-obvious connections to an idea.
Run this workflow
CI-verified, 5/5 fixtures passing.
Intended Use
People with a large vault who want Claude to surface 5 non-obvious notes that connect to an idea, using mcp-obsidian's indexed search over the whole vault (Option B).
Not for
- Small vaults, there's not enough material for surprising links
- Anyone unwilling to install the Local REST API plugin and copy its key
The Stack
Tested Against
mcp-obsidian@0.xobsidian-local-rest-apiclaude-desktopnode@20.xSide effects & data flow
- Network
- Anthropic API, only in the non-CI Claude step, localhost:27124 (the Local REST API, on your machine)
- Writes
- claude_desktop_config.json
- Credentials
- Local REST API key, Claude Desktop login, for the search step only
Data privacy
- Anthropic (Claude), only in the non-CI agent step ← the idea note and search results from your vault (retention: per Anthropic's API/data policy)
Prerequisites
- Claude Desktop, https://claude.ai/download
- The Local REST API community plugin, enabled, with its API key copied
- uv / uvx installed (mcp-obsidian runs via uvx)
- Node 20+ (used here to validate the config)
Steps
- 1
Check your toolchain
Config validation needs Node. uvx + the Local REST API plugin + Claude Desktop power the actual search step.
command -v node >/dev/null 2>&1 || { echo "MISSING required: node"; exit 1; } command -v uvx >/dev/null 2>&1 || echo "optional (runs the server): uvx" command -v claude >/dev/null 2>&1 || echo "optional: Claude Desktop (for the search step)" echo "preflight OK" - 2
Validate the Claude Desktop config (Option B)
Write the exact Option B block from the guide and prove it parses, runs uvx mcp-obsidian, and points at the Local REST API on port 27124.
cat > claude_desktop_config.json <<'EOF' { "mcpServers": { "mcp-obsidian": { "command": "uvx", "args": ["mcp-obsidian"], "env": { "OBSIDIAN_API_KEY": "your_key_here", "OBSIDIAN_HOST": "127.0.0.1", "OBSIDIAN_PORT": "27124" } } } } EOF node -e 'const c=JSON.parse(require("fs").readFileSync("claude_desktop_config.json","utf8"));const o=c.mcpServers["mcp-obsidian"];if(o.command==="uvx"&&o.args.includes("mcp-obsidian")&&o.env.OBSIDIAN_PORT==="27124"){console.log("config OK: uvx -> mcp-obsidian, port "+o.env.OBSIDIAN_PORT)}else{console.log("BAD");process.exit(1)}' - 3
Scaffold an idea note
Create Ideas/ with a sample note for Claude to cross-pollinate.
mkdir -p vault/Ideas printf '%s\n' 'Idea: a verified library of AI workflows.' > vault/Ideas/this-idea.md echo "ideas ready: vault/Ideas/this-idea.md" - 4
Cross-pollinate (the Claude step, not checked by CI)
Ask Claude: read Ideas/this-idea.md, search the whole vault and surface 5 notes that connect to it in a non-obvious way, each with a one-sentence explanation of the hidden link. Needs the running Local REST API + Claude Desktop and is non-deterministic, so CI doesn't run it.
Eval, 5 fixtures
Last passed: verified 10d agoclean-exitexit_codetimeout 15s · max $0Expected:
0config-validcontainstimeout 15s · max $0Expected:
config OK: uvx -> mcp-obsidianideas-readycontainstimeout 15s · max $0Expected:
ideas ready: vault/Ideas/this-idea.mdport-27124containstimeout 15s · max $0Expected:
port 27124preflight-okcontainstimeout 15s · max $0Expected:
preflight OK
Results
The one that finds the bridges between unrelated topics, from the WebAfterAI guide.