neuro-vault-mcp is an MCP server that gives an AI assistant two things over an Obsidian vault: semantic search (over a Smart Connections embedding corpus) and direct vault operations (notes, properties, tags, structured queries). TypeScript, ESM, Node ≥ 20.
This is a cheat sheet for working in the repo — deeper docs live under docs/ (map: docs/README.md), decisions in docs/adr/. It does not repeat them.
npm test— full vitest suite.npm run lint— eslint.npm run typecheck(tsc --noEmit) — typecheck. Authoritative — atsupbuild alone is not enough (isolatedModules).npm run build(tsup) ·npm run dev(tsx src/cli.ts) ·npm run spec(OpenSpec CLI).
npm test, npm run lint, and npm run typecheck must all pass before any commit or PR. CI (.github/workflows/ci.yml) enforces these plus npm run build and commitlint on every push to main and PR.
These tools are kept because each is the sole path to its capability; reach for them deliberately:
get_note_links— traverse the wikilink graph around a note (incoming + outgoing edges, including unresolved targets).find_duplicates— vault-wide all-pairs near-duplicate sweep (corpus hygiene; high embedding similarity).remove_property— the only way to delete a frontmatter key (set_propertyonly sets;edit_notepreserves frontmatter).
- Capability change → an OpenSpec opsx change; smaller work → a direct PR. Which one:
.claude/rules/opsx-routing.md. Full flow:docs/workflow.md. - PRs go to
mainviagh pr create— never push directly. Release:npm run releaseonmain, after the PR merges. Pushing the tag auto-publishes the GitHub Release from theCHANGELOG.mdsection.