Back to Browse

Smart Connections MCP Server

Developer ToolsModerate7.3MCP RegistryLocal
Free

Server data from the Official MCP Registry

MCP server for Obsidian Smart Connections. Semantic search using your vault's embeddings.

About

MCP server for Obsidian Smart Connections. Semantic search using your vault's embeddings.

Security Report

7.3
Moderate7.3Low Risk

Valid MCP server (2 strong, 4 medium validity signals). 3 known CVEs in dependencies (0 critical, 3 high severity) Package registry verified. Imported from the Official MCP Registry. Trust signals: trusted author (3/3 approved).

8 files analyzed · 4 issues found

Security scores are indicators to help you make informed decisions, not guarantees. Always review permissions before connecting any MCP server.

Permissions Required

This plugin requests these system permissions. Most are normal for its category.

file_system

Check that this permission is expected for this type of plugin.

env_vars

Check that this permission is expected for this type of plugin.

What You'll Need

Set these up before or after installing:

Absolute path to your Obsidian vault (e.g., /Users/you/Documents/MyVault)Optional

Environment variable: VAULT_PATH

How to Install

Add this to your MCP configuration file:

{
  "mcpServers": {
    "io-github-gogogadgetbytes-smart-connections": {
      "env": {
        "VAULT_PATH": "your-vault-path-here"
      },
      "args": [
        "-y",
        "@gogogadgetbytes/smart-connections-mcp"
      ],
      "command": "npx"
    }
  }
}

Documentation

View on GitHub

From the project's GitHub README.

Smart Connections MCP Server

License: MIT Node.js Version

A security-first MCP server for Smart Connections. Read-only. Path-validated. Auditable.

Exposes Smart Connections embeddings to Claude Code and other MCP clients for semantic search of your Obsidian vault.

Why This Exists

We needed semantic search of our Obsidian vault from Claude Code. Existing options have problems:

  • No path validation - User input passed directly to file operations
  • Write access - Some expose mutation tools we don't need
  • Heavy dependencies - PyTorch/transformers for what's essentially vector math

This implementation:

  • Minimal dependencies - MCP SDK + Transformers.js (for text search)
  • Fail-closed security - path validation with realpath, symlink detection
  • Auditable - small TypeScript codebase you can actually read

Features

  • Text search - query with plain text, not just note paths
  • Semantic search using Smart Connections embeddings
  • Local inference - uses Transformers.js (same model as Smart Connections)
  • Read-only - no write operations, no shell execution
  • Secure - strict path validation, bounded responses
  • Offline - works without Obsidian running

Security Model

PropertyGuarantee
Path confinementAll file access validated against vault root
No traversal../ and symlink attacks blocked
Read-onlyNo write operations exposed
Bounded responsesCapped results (50), content length (10KB)
Fail closedErrors deny access, never bypass
Audit loggingSecurity events logged with context

Installation

Prerequisites

  • Node.js 18+
  • Obsidian with Smart Connections plugin installed
  • Embeddings built (open vault in Obsidian, let Smart Connections index)

Setup

git clone https://github.com/gogogadgetbytes/smart-connections-mcp
cd smart-connections-mcp
npm install
npm run build

Configure Claude Code

Add to your Claude Code config:

claude mcp add smart-connections \
  -e VAULT_PATH="/path/to/your/obsidian/vault" \
  -- node /path/to/smart-connections-mcp/dist/index.js

Or manually add to ~/.claude.json:

{
  "mcpServers": {
    "smart-connections": {
      "command": "node",
      "args": ["/path/to/smart-connections-mcp/dist/index.js"],
      "env": {
        "VAULT_PATH": "/path/to/your/obsidian/vault"
      }
    }
  }
}

Restart Claude Code to load the server.

Usage

Once configured, Claude Code can use these tools:

Search by Text

"Search my vault for notes about backup strategies"
→ Uses search_by_text tool

Search Similar Notes

"Find notes similar to Topics/Claude_Code.md"
→ Uses search_similar tool

Get Note Content

"Show me the content of Topics/Obsidian.md"
→ Uses get_note tool

List Indexed Notes

"What notes are indexed in my vault?"
→ Uses list_indexed tool

Tools

ToolDescription
search_by_textSearch using freeform text (computes embedding locally)
search_similarFind notes semantically similar to a given note
search_by_embeddingSearch using a raw embedding vector
get_noteGet content of a specific note (path validated)
get_model_infoGet embedding model configuration
list_indexedList all indexed notes

Configuration

VariableRequiredDescription
VAULT_PATHYesAbsolute path to Obsidian vault

Limitations

  • Single vault - Configure one vault per MCP server instance
  • Index from Smart Connections - Note embeddings come from the plugin; text queries are embedded locally
  • No write access - By design; use Obsidian for edits
  • First run downloads model - ~50MB model cached in ~/.cache/huggingface/

Development

# Build
npm run build

# Test with MCP Inspector
npx @modelcontextprotocol/inspector node dist/index.js

Contributing

See CONTRIBUTING.md. Security-focused PRs welcome.

Security

To report security vulnerabilities, please email gogogadgetcode@proton.me. Do not open public issues for security concerns.

License

MIT - see LICENSE

Credits

Reviews

No reviews yet

Be the first to review this server!