Skip to main content
Glama

hebbian-vault

MCP server for intelligent, use-adaptive Obsidian vault search.

Your vault remembers what matters. Files you use strengthen. Unused files fade. Hub pages surface first. Search gets better over time.

What it does

Unlike standard Obsidian search (keyword matching), hebbian-vault uses four signals merged via Reciprocal Rank Fusion:

  • BM25 -- keyword relevance (like standard search, but ranked)

  • Personalized PageRank -- graph centrality biased toward your query (hub pages surface first)

  • Hebbian usage -- files you actually use rank higher, with recency decay

  • RRF merge -- combines all signals without weight tuning

Works with any Obsidian vault. No cloud. No Obsidian running required. Direct filesystem access.

Related MCP server: background-vault-analysis

Install

pip install hebbian-vault

Usage

Claude Code

claude mcp add hebbian-vault -- hebbian-vault --vault ~/my-vault

Claude Desktop

Add to claude_desktop_config.json:

{
  "mcpServers": {
    "hebbian-vault": {
      "command": "uvx",
      "args": ["hebbian-vault", "--vault", "/path/to/vault"]
    }
  }
}

Direct

hebbian-vault --vault ~/my-vault

MCP Tools

Tool

Description

configure_vault

Point the server at a vault at runtime (if not set via --vault)

vault_search

Hybrid ranked search (BM25 + PageRank + Hebbian)

vault_read

Read a note with frontmatter, links, and Hebbian metadata

vault_neighbors

Find connected notes by wikilinks (1-hop or 2-hop)

vault_hot

Top-N most-used files by Hebbian score

vault_stats

Vault analytics (files, links, orphans, hubs)

vault_health

Structural integrity check (broken links, orphans)

How Hebbian learning works

Every time vault_search or vault_read returns a file, that file's retrieval count increments. Files accessed recently get a recency boost. Files untouched for weeks decay. Over time, the vault develops a "heat signature" -- frequently useful files strengthen, rarely useful files fade.

This is Hebbian learning applied to information retrieval: "neurons that fire together wire together." Your vault adapts to how you actually use it.

Storage

By default, tracking data is stored in a .hebbian/ sidecar directory inside your vault. Your markdown files are not modified.

Pro users can enable --inline-tracking to write retrieval_count directly into YAML frontmatter (visible natively in Obsidian, queryable via Dataview).

Pro tier

The free tier is fully featured for most use. Pro unlocks convenience features for power users:

  • --inline-tracking — write retrieval counts into note frontmatter instead of sidecar files

  • Priority email support from the developer

  • Future premium features ship Pro-unlocked by default

License activation — any one of these works:

# 1. Environment variable (good for shell profiles)
export HEBBIAN_VAULT_LICENSE="eyJhbGc..."

# 2. CLI flag (good for one-off testing)
hebbian-vault --license-key "eyJhbGc..." --vault ~/my-vault

# 3. Config file (good for permanent install)
echo "eyJhbGc..." > ~/.hebbian-vault/license.jwt

Licenses are verified fully offline — no phone-home, no activation server. Get a license: [coming soon — Dodo Payments storefront in verification].

Options

hebbian-vault --vault PATH          Path to Obsidian vault
              --inline-tracking     [Pro] Write tracking to file frontmatter
              --license-key KEY     Pro license JWT (also reads HEBBIAN_VAULT_LICENSE env)
              --transport TYPE      stdio (default) or streamable-http
              --port PORT           Port for HTTP transport (default: 8000)

Requirements

  • Python 3.10+

  • An Obsidian vault (any size, wikilinks recommended for graph features)

License

MIT

Available Tools

7 tools
configure_vaultA

Configure the vault path for this server. Call this first if the server started without a --vault argument. The vault_path must be an absolute path to an Obsidian vault directory containing .md files.

Inputs: vault_path (required), inline_tracking. Returns: result

vault_healthA
Read-only

Structural integrity check: broken links, orphaned leaves, missing frontmatter. Returns a list of issues found.

Inputs: no named parameters. Returns: result

vault_hotA
Read-only

Top-N most-used files by Hebbian score (usage frequency weighted by recency). Shows what the vault considers most important based on actual usage patterns.

Inputs: limit. Returns: result

vault_neighborsB
Read-only

Find notes connected to a given note by wikilinks. Shows both outgoing and incoming links, with PageRank scores for prioritization.

Inputs: path (required), depth, limit. Returns: result

vault_readA

Read a single vault note by relative path. Returns full content with parsed frontmatter, outgoing links, and incoming links. Strengthens the file's Hebbian score.

Inputs: path (required). Returns: result

vault_statsA
Read-only

Vault-level analytics: file count, link count, orphans, broken links, average connectivity, and top hub pages by PageRank.

Inputs: no named parameters. Returns: result

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

Loading tool schema changelog…

    TDQS

    A3.9/5.0

    Scored across 7 tools

    Disambiguation5/5

    Each tool has a clearly distinct purpose: setup, search, read, graph navigation, hot files, stats, health. No overlapping functionality.

    Naming Consistency4/5

    Most tools follow a 'vault_' prefix pattern, but 'configure_vault' breaks the pattern by placing 'vault' at the end, introducing minor inconsistency.

    Tool Count5/5

    With 7 tools, the server covers essential operations for analyzing an Obsidian vault without unnecessary bloat or gaps.

    Completeness3/5

    The tool set provides strong read/analysis capabilities but lacks write operations (create, update, delete notes), which limits full vault interaction.

    Maintenance

    ActivityInactive
    ResponsivenessNo recent community issues

    Related MCP Connectors

    Related MCP Servers

    • A
      license
      Not graded
      quality
      D
      maintenance
      Self-hosted MCP server that provides embedding-powered semantic search with graph context over Obsidian vaults, supporting multiple vaults, local embeddings, and a web dashboard.
      MIT
    • A
      license
      Not graded
      quality
      D
      maintenance
      An MCP server that provides always-fresh semantic search over Obsidian vaults, automatically watching file changes and using local embeddings via Ollama.
      76 npm
      MIT