PluginBench
MCP Server
Maintained
MIT

io.github.msdanyg/smart-connections-mcp MCP Server

io.github.msdanyg/smart-connections-mcp

Local semantic search over your Obsidian vault using Smart Connections embeddings—no cloud, fully private.

What is the io.github.msdanyg/smart-connections-mcp MCP server?

The Smart Connections MCP server enables Claude to perform semantic search across your Obsidian vaults by reusing embeddings generated by the Smart Connections plugin. It runs the embedding model locally, matches notes and blocks by meaning rather than keywords, and keeps all data private on your machine.

This server bridges Claude and your Obsidian vault, letting you search your notes by semantic meaning rather than exact keywords. It leverages embeddings already computed by the Smart Connections plugin, runs the embedding model locally (no cloud calls), and supports multiple vaults. Perfect for AI-assisted note discovery and context retrieval when working with Claude.

How to install io.github.msdanyg/smart-connections-mcp

Copy-paste configuration for popular MCP clients.

transport: stdio
Config generated by PluginBench — verify against the source before use.
Environment / auth
  • SMART_VAULT_PATH
    required

    One or more absolute Obsidian vault paths, comma-separated (alias: SMART_VAULT_PATHS)

~/Library/Application Support/Claude/claude_desktop_config.json
{
  "mcpServers": {
    "smart-connections-mcp": {
      "command": "npx",
      "args": [
        "-y",
        "smart-connections-mcp"
      ],
      "env": {
        "SMART_VAULT_PATH": "<YOUR_SMART_VAULT_PATH>"
      }
    }
  }
}

Tools & capabilities

Tools this server exposes to the agent.

  • search_notes — Semantic search across one or many vaults, matching whole notes and individual sections (blocks), returning similarity-ranked results with content snippets.
  • get_similar_notes — Find notes similar to a given note using stored embeddings.
  • get_connection_graph — Walk similarity links outward to map related ideas and connections.
  • get_note_content — Read a note or extract specific blocks.
  • list_vaults — List loaded vaults and their status.
  • get_stats — Get statistics about loaded vaults, counts, embedding models, and any load errors.

Use cases

  • Search your Obsidian vault by meaning to find relevant notes and sections without exact keyword matches
  • Discover related notes and ideas by exploring semantic connections in your knowledge base
  • Provide Claude with rich context from your vault during conversations and research
  • Maintain a private, local semantic index of your notes without uploading to cloud services
  • Automatically pick up edits made in Obsidian for real-time search updates

io.github.msdanyg/smart-connections-mcp MCP server FAQ

What is the Smart Connections MCP server?

It's an MCP server that gives Claude semantic search over your Obsidian vault using embeddings from the Smart Connections plugin. All processing happens locally—your vault never leaves your machine.

Is it free?

Yes, the server is MIT-licensed and open-source. You only need Node.js 20+, Obsidian with the Smart Connections plugin, and an MCP client like Claude Desktop.

How do I install it in Claude Desktop?

Add it to your claude_desktop_config.json with the command 'npx -y smart-connections-mcp' and set the SMART_VAULT_PATH environment variable to your vault location(s), separated by commas for multiple vaults.

Do I need authentication or API keys?

No. The server runs entirely locally using embeddings already stored by Smart Connections. No cloud services or API keys are required.

What happens if the embedding model can't load?

The server degrades gracefully to keyword-based search and explicitly reports this with a 'keyword-fallback' mode and warning message, so you know when semantic search isn't available.

Can I use multiple Obsidian vaults?

Yes. Separate vault paths with commas in the SMART_VAULT_PATH environment variable, and the server will search across all of them.

README (reference)

Source of truth, from the repository.

Smart Connections MCP Server

Give Claude true semantic memory of your Obsidian vault. An MCP server that searches your notes by meaning — reusing the embeddings the Smart Connections Obsidian plugin already generated, and running the same embedding model locally to understand your queries. No cloud calls; your vault never leaves your machine.

MCP Obsidian License: MIT GitHub stars

What it does

  • search_notes — semantic search across one or many vaults. Matches whole notes and individual sections (blocks), returns similarity-ranked results with content snippets.
  • get_similar_notes — notes similar to a given note (stored embeddings).
  • get_connection_graph — walk similarity links outward to map related ideas.
  • get_note_content — read a note, or extract specific blocks.
  • list_vaults / get_stats — what's loaded, counts, models, load errors.

Requirements

  • Node.js 20+
  • An Obsidian vault with the Smart Connections plugin installed and embeddings generated (v2 tested against Smart Connections 3.x data)
  • An MCP client (Claude Desktop, Claude Code, …)

Setup (Claude Desktop)

Add to claude_desktop_config.json and restart Claude Desktop:

{
  "mcpServers": {
    "smart-connections": {
      "command": "npx",
      "args": ["-y", "smart-connections-mcp"],
      "env": {
        "SMART_VAULT_PATH": "/path/to/Vault One,/path/to/Vault Two"
      }
    }
  }
}

One vault or several — separate paths with commas.

SMART_VAULT_PATHS (plural) is also accepted as an alias for SMART_VAULT_PATH and takes precedence over it if both are set.

Claude Code

claude mcp add smart-connections -e SMART_VAULT_PATH="/path/to/vault" -- npx -y smart-connections-mcp

How it works

Smart Connections stores an embedding vector for every note and block in .smart-env/. This server loads those vectors into memory and, when you search, embeds your query with the same model your vault used (downloaded once, ~25MB, runs locally via transformers.js). Results are ranked by cosine similarity. Edits you make in Obsidian are picked up automatically.

If the embedding model can't load (e.g. no network on very first run), or a vault has no embeddings yet, search degrades to literal keyword matching and says so explicitly ("mode": "keyword-fallback" plus a warning naming the cause). When only some vaults fall back, mode stays "semantic", those rows carry "match": "keyword", and they always rank after the true semantic rows.

Migrating from v1

  • get_embedding_neighbors was removed.
  • search_notes is now genuinely semantic and its response includes vault, scope, block, snippet, and mode fields.
  • Everything else is backward compatible; single-vault SMART_VAULT_PATH configs work unchanged.

Development

npm install
npm test              # build + CI-tier tests (no network)
npm run test:live     # + real-model tests (downloads ~25MB once)
npm run smoke -- "/path/to/vault" "your query"

MIT — see LICENSE.

Related MCP servers

Task management system for AI assistants with MCP protocol, templates, and bilingual support (TR/EN)

1
Go
MIT
View repository →

A free SMTP relay that still takes a username and password, for devices that cannot do OAuth 2.0.

5
Python
MIT
View repository →

Allure TestOps MCP — projects, launches, test cases, test results via REST API.

3
Python
MIT
View repository →

GitLab CI/CD MCP — pipelines, jobs, schedules, MRs, files. Any GitLab (SaaS or self-hosted).

1
Python
MIT
View repository →

Harbor Registry MCP — projects, repos, artifacts, storage reports, cleanup (with dry-run).

1
Python
MIT
View repository →

Jaeger MCP — search traces, inspect spans, map service dependencies (read-only).

1
Python
MIT
View repository →