Zhongyuan Ou328 downloadsAI assistant for Obsidian: chat with your notes, drag in notes for Q&A, semantic search via MCP
Semlink is an Obsidian plugin that vectorizes your Vault notes and adds a conversational AI assistant directly in the sidebar — plus an MCP server so Claude Desktop, Claude Code, Cursor and other AI tools can search and read your notes.
Ask questions in natural language: Semlink retrieves the most relevant notes, feeds them to your chat model, and answers with a visible thinking process, tool calls and cited sources — all grounded in your own notes.
[[links]] supported inline)| Tool | Description |
|---|---|
search_notes |
Semantic search with natural language queries, returns the most relevant chunks |
get_note |
Get the full content of a note |
get_section |
Get the content under a specific heading of a note |
get_similar_notes |
Find notes semantically similar to a given note |
list_indexed |
List indexed note paths (paginated) |
list_indexed_detailed |
List indexed notes with created/modified times, newest first (for time-based questions) |
grep_notes |
Exact text / regex search across notes (keywords, IDs, dates, code) |
get_active_note |
Path of the note currently open in Obsidian (content via get_note) |
MCP additionally exposes index_status and reindex for index management.
Obsidian Vault Notes
│
▼
Text Chunking
│
▼
Embedding API (BGE-M3) ──→ Vector Embedding
│
▼
Local Storage (SQLite + Binary)
│
▼
Chat Pipeline (retrieval → LLM with tools → answer)
│ │
▼ ▼
Sidebar Chat Panel MCP HTTP Server (:3001)
│
▼
Claude / Cursor / Other AI Clients
git clone https://gitee.com/ouzhongyuan/semlink.git
cd semlink
npm install
npm run build
# Copy the whole directory to MyVault/.obsidian/plugins/semlink/
Download main.js, manifest.json, styles.css from the Release page and place them in YourVault/.obsidian/plugins/semlink/.
Settings → Semlink:
| Section | Setting | Description |
|---|---|---|
| General | Language | UI language (中文 / English) |
| Index | Exclude Paths | Paths excluded from indexing (one per line) |
| Index | Auto Index | Automatically index on file changes |
| Embedding | Embedding Model | Model used for vectorization (e.g. BAAI/bge-m3) |
| Embedding | API Key | SiliconFlow (or HuggingFace) API key |
| Chunking | Chunk Size / Overlap | Characters per chunk and overlap |
| Chunking | Batch Size / Delay | API batching and rate limiting |
| MCP | Port / Access Key | HTTP server port and optional auth key |
| Chat | Provider / Base URL / API Key | Chat model provider (DeepSeek preconfigured; any OpenAI/Anthropic-compatible API works) |
| Chat | Models | Add/remove models, pick the context window size |
| Bot | Feishu Bot | Scan a QR code to bind a Feishu bot (see below) |
Client configs are auto-generated at the bottom of the plugin settings page.
{
"mcpServers": {
"semlink": {
"type": "http",
"url": "http://127.0.0.1:3001/mcp"
}
}
}
With access key:
{
"mcpServers": {
"semlink": {
"type": "http",
"url": "http://127.0.0.1:3001/mcp",
"headers": { "Authorization": "Bearer your-key" }
}
}
}
claude mcp add --transport http semlink http://127.0.0.1:3001/mcp
# with key:
claude mcp add --transport http semlink http://127.0.0.1:3001/mcp --header "Authorization: Bearer your-key"
im:message / im:message:send_as_bot / cardkit:card:write etc., subscribe events via long connection)/bind <code> to the bot to finish binding| Command | Description |
|---|---|
| Semlink: Open Search | Open the sidebar chat panel |
| Semlink: Full Reindex | Re-scan all files |
| Semlink: Resume Index | Continue paused indexing |
| Semlink: Pause Index | Pause indexing |
| Semlink: Start/Stop MCP Service | Toggle the MCP server |
| Semlink: View Index Progress | Open the progress panel |
Everything stays local:
| File | Description |
|---|---|
data/vault.db |
SQLite database (chunk metadata) |
data/vectors.bin |
Vector index binary |
Never uploaded anywhere. Indexing consumes embedding API credits (e.g. SiliconFlow BGE-M3).
| Model | Feature | Max Tokens |
|---|---|---|
| BAAI/bge-m3 | Recommended, multilingual | 8192 |
| Pro/BAAI/bge-m3 | Enhanced version | 8192 |
| BAAI/bge-large-zh-v1.5 | Chinese optimized | 512 |
| BAAI/bge-large-en-v1.5 | English optimized | 512 |
npm run dev # watch + auto-rebuild
npm run build # production build
127.0.0.1 by default (localhost only)MIT