npm package: @indiegeeker/obsidian-mcp-server
Description: Model Context Protocol server for Obsidian
Author: indiegeeker
Latest version: 0.1.2

<!--
 * @Author: indiegeeker indiegeeker@gmail.com
 * @Date: 2025-10-23 12:00:43
 * @LastEditors: indiegeeker indiegeeker@gmail.com
 * @LastEditTime: 2025-10-23 17:02:13
 * @Description: 
-->
# obsidian-mcp-server

> 🔗 Model Context Protocol server for Obsidian - Connect your knowledge base to AI

## ✨ Features

- 📝 **Note Management**: Create, read, update, and delete notes
- 🔍 **Search**: Full-text search across your vault
- 📋 **Listing**: List notes with filtering options
- 📊 **Metadata**: Get file size, timestamps, tags, and properties
- ⏰ **Sorting**: Sort notes by creation/modification time or size
- 🏷️ **Tag Extraction**: Automatically extract tags from frontmatter and content
- 🔒 **Safe**: Path validation to prevent directory traversal
- ⚡ **Fast**: Efficient file operations

## 🚀 Quick Start

### Installation
```bash
npm install -g @indiegeeker/obsidian-mcp-server
# or
pnpm install -g @indiegeeker/obsidian-mcp-server
```

### Configuration

Add to your Claude Desktop config:
```json
{
  "mcpServers": {
    "obsidian": {
      "command": "obsidian-mcp-server",
      "env": {
        "OBSIDIAN_VAULT_PATH": "/path/to/your/vault"
      }
    }
  }
}
```

## 📖 Available Tools

### create_note
Create a new note in your vault.

**Parameters:**
- `filename` (required): Name of the note
- `content` (required): Markdown content
- `path` (optional): Folder path within vault

### read_note
Read an existing note's content and frontmatter.

**Parameters:**
- `filepath` (required): Path to the note

### search_notes
Search notes by content.

**Parameters:**
- `query` (required): Search string
- `path` (optional): Limit search to folder

### list_notes
List all notes in vault or folder.

**Parameters:**
- `path` (optional): Folder to list
- `recursive` (optional): Include subfolders

### update_note
Update an existing note's content.

**Parameters:**
- `filepath` (required): Path to the note
- `content` (required): New content
- `append` (optional): Append instead of replacing

### delete_note
Delete a note from the vault.

**Parameters:**
- `filepath` (required): Path to the note to delete

### get_note_metadata
Get detailed metadata for a note.

**Parameters:**
- `filepath` (required): Path to the note
- `includeTags` (optional): Extract tags from frontmatter and content (default: true)

**Returns:**
- File size (bytes and formatted)
- Creation time
- Modification time
- Frontmatter properties
- Extracted tags (from frontmatter and #hashtags)

### list_notes_sorted
List notes sorted by various criteria.

**Parameters:**
- `path` (optional): Folder to list (default: root)
- `recursive` (optional): Include subfolders (default: true)
- `sortBy` (optional): Sort criterion - `"created"`, `"modified"`, `"size"`, or `"name"` (default: `"modified"`)
- `order` (optional): Sort order - `"asc"` or `"desc"` (default: `"desc"`)
- `includeMetadata` (optional): Include size and timestamps (default: true)
- `limit` (optional): Maximum number of notes to return


## 🛠️ Development
```bash
# Clone the repo
git clone https://github.com/indiegeeker/obsidian-mcp-server.git

# Install dependencies
pnpm install

# Build
pnpm run build

# Watch mode
pnpm run dev
```

## 📄 License

MIT