ob-smart-connections-mcp
by yejianye
README.md
# Smart Connections CLI & MCP Server
Command-line tool and MCP (Model Context Protocol) server for Smart Connections - find semantic connections in your Obsidian vaults.
## Features
- š **Find Connections** - Discover notes semantically similar to a specific note
- š **Semantic Search** - Perform text-based searches across your vault
- š **Stats** - View embedding statistics and vault coverage
- š¤ **Multiple Outputs** - Plain text or JSON format
- š **Standalone** - Works without Obsidian running
- š¤ **MCP Server** - Model Context Protocol server for AI agent integration
## Requirements
- Node.js >= 18.0.0
- Smart Connections plugin installed and vault indexed in Obsidian
## Installation
### CLI Installation
```bash
# Install globally
npm install -g @yejianye/smart-connections-mcp
```
After installing globally, you can use the `smart-cli` command:
```bash
export OBSIDIAN_VAULT=/path/to/your/vault
smart-cli connection "path/to/note.md"
smart-cli lookup "AI Coding"
smart-cli stats
```
### MCP Server Installation
Install the MCP server for AI agent integration (e.g., with Claude Desktop):
**Option 1: Using Claude MCP CLI**
```bash
claude mcp add ob-smart-connections -e OBSIDIAN_VAULT=/path/to/your/vault @yejianye/smart-connections-mcp
```
**Option 2: Manual Configuration**
Add the following json to your MCP client config (for example, `claude_desktop_config.json`):
```json
{
"mcpServers": {
"smart-connections": {
"command": "npx",
"args": ["-y", "@yejianye/smart-connections-mcp"],
"env": {
"OBSIDIAN_VAULT": "/path/to/your/vault"
}
}
}
}
```
## Usage
### Set Vault Path
```bash
# Set via environment variable (recommended)
export OBSIDIAN_VAULT=/path/to/your/vault
# Or use --vault flag with each command
smart-cli --vault=/path/to/vault <command>
```
### Find Connections
Find notes semantically similar to a specific note:
```bash
smart-cli connection "ML/Neural Networks.md"
# JSON output
smart-cli connection "Projects/Project A.md" --format=json
# Limit results
smart-cli connection "Daily/2024-01-15.md" --limit=5
```
**Example Output:**
```
Found 5 connection(s):
[0.85] Machine Learning Basics
[0.78] Deep Learning
[0.72] AI Applications
[0.68] Data Science
[0.65] Python Programming
```
### View Statistics
Show vault embedding statistics:
```bash
smart-cli stats
# JSON output
smart-cli stats --format=json
```
**Example Output:**
```
Smart Connections Vault Statistics
===================================
Sources:
Total entries: 1234
Files: 1100
Blocks: 134
Embeddings:
With embeddings: 1200
Without embeddings: 34
Coverage: 97.2%
Model Info:
Embedding model(s): TaylorAI/bge-micro-v2
Vector dimension: 384
Estimated size: 1.85 MB
Settings:
Min characters: 200
File exclusions: Untitled
Folder exclusions: (none)
Exclude blocks: false
```
### Validate Data
Check Smart Connections data integrity:
```bash
smart-cli validate
```
**Example Output:**
```
Validating Smart Connections data...
ā Vault path is valid
ā Smart Connections data found
ā Data file is valid JSON
ā Plugin settings found
ā All embeddings are valid
ā No orphaned files detected
==================================================
Validation Summary
==================================================
Checks passed: 6
Issues: 0
Warnings: 0
ā
All checks passed!
```
### Semantic Search
Perform text-based search across your vault:
```bash
smart-cli lookup "machine learning concepts"
# With options
smart-cli lookup "React hooks best practices" --limit=10 --skip-blocks
# JSON output
smart-cli lookup "project management" --format=json
```
---
## MCP Tools
The MCP server provides the following tools for AI agents:
### Available MCP Tools
#### `connection` Tool
Find notes semantically similar to a specified note.
```javascript
{
"name": "connection",
"arguments": {
"note_path": "projects/my-project.md",
"limit": 10
}
}
```
#### `lookup` Tool
Perform semantic search using query text.
```javascript
{
"name": "lookup",
"arguments": {
"query": "machine learning algorithms",
"limit": 15
}
}
```
#### `stats` Tool
Get vault embedding statistics.
```javascript
{
"name": "stats",
"arguments": {}
}
```
#### `validate` Tool
Validate Smart Connections data integrity.
```javascript
{
"name": "validate",
"arguments": {}
}
```
### MCP Configuration
Configure vault access via:
- **Environment Variable**: `OBSIDIAN_VAULT=/path/to/vault` (set during installation)
- **Tool Arguments**: Pass `vault_path` parameter to each tool call
---
## How It Works
The CLI and MCP server read embedding data generated by the Smart Connections Obsidian plugin:
1. **Data Source**: Reads `.smart-env/smart_sources.json` (single-file) or `.smart-env/multi/` (multi-file AJSON) from your vault
2. **Settings**: Respects plugin configuration from `.obsidian/plugins/smart-connections/data.json`
3. **Search Algorithm**: Uses cosine similarity to rank connections
4. **MCP Protocol**: Exposes functionality through standard Model Context Protocol for AI agents
5. **No Dependencies**: Standalone tools - work without the full smart-* package ecosystem
## Development
```bash
# Clone the repository
git clone https://github.com/smart-connections/cli.git
cd cli
# Install dependencies
npm install
# Run locally
npm start -- connection "path/to/note.md"
# Run MCP server
npm run mcp
# Run tests
npm test
```
## Troubleshooting
### "Smart sources data not found"
Make sure:
1. Smart Connections plugin is installed in Obsidian
2. You've opened the vault in Obsidian and let it index
3. Either `.smart-env/smart_sources.json` or `.smart-env/multi/` directory exists in your vault
### "Vault path not specified"
Either:
- Set `OBSIDIAN_VAULT` environment variable
- Use `--vault` flag: `smart-cli --vault=/path/to/vault command`
### "Source not found or not embedded"
The note may:
- Not exist in the vault
- Be too short (less than min_chars setting)
- Be excluded by file/folder exclusion settings
- Not have been indexed yet
Run `smart-cli validate` to diagnose issues.
## License
MIT
## Links
- [Smart Connections Plugin](https://github.com/brianpetro/obsidian-smart-connections)
- [Smart Connections Website](https://smartconnections.app)
- [Report Issues](https://github.com/yejianye/ob-smart-connections-mcp/issues)
This server cannot be deployed
Maintenance
ActivityInactive
ResponsivenessUnresponsive