Skip to main content
Glama
README.md
# Obsidian MCP Server

A Model Context Protocol (MCP) server that enables AI assistants to interact with your Obsidian vault.

## Features

### 1. Note Reading & Summarization
- Read any note in your vault
- Generate quick summaries of notes
- Extract metadata (tags, word count, dates)

### 2. Note Organization
- Move notes between folders
- Add tags to notes automatically
- Search notes by title, content, or tags

### 3. Daily "Most Valuable Notes"
- Automatically identifies your most important notes based on:
  - Recent modifications (last 7 days)
  - Note length and depth
  - Tag organization
- Perfect for daily reviews and prioritization

## Installation

### 1. Create Project Directory
```bash
mkdir obsidian-mcp-server
cd obsidian-mcp-server
```

### 2. Initialize Project
Copy the following files into your project:
- `src/index.ts` (the main server code)
- `package.json`
- `tsconfig.json`

### 3. Install Dependencies
```bash
npm install
```

### 4. Build the Server
```bash
npm run build
```

## Configuration

### Environment Variables
Set the path to your Obsidian vault:

**macOS/Linux:**
```bash
export OBSIDIAN_VAULT_PATH="/path/to/your/obsidian/vault"
```

**Windows (PowerShell):**
```powershell
$env:OBSIDIAN_VAULT_PATH="C:\path\to\your\obsidian\vault"
```

**Windows (CMD):**
```cmd
set OBSIDIAN_VAULT_PATH=C:\path\to\your\obsidian\vault
```

### Claude Desktop Configuration

Add this to your Claude Desktop config file:

**macOS:** `~/Library/Application Support/Claude/claude_desktop_config.json`
**Windows:** `%APPDATA%\Roaming\Claude\claude_desktop_config.json`

```json
{
  "mcpServers": {
    "obsidian": {
      "command": "node",
      "args": ["/absolute/path/to/obsidian-mcp-server/build/index.js"],
      "env": {
        "OBSIDIAN_VAULT_PATH": "/path/to/your/obsidian/vault"
      }
    }
  }
}
```

## Available Tools

### 1. `read_note`
Read the content of a specific note.
```json
{
  "path": "folder/note-name.md"
}
```

### 2. `search_notes`
Search for notes by title, content, or tags.
```json
{
  "query": "machine learning",
  "searchInContent": true
}
```

### 3. `create_note`
Create a new note in your vault.
```json
{
  "path": "folder/new-note.md",
  "content": "# New Note\n\nContent here..."
}
```

### 4. `summarize_note`
Generate a summary of a note.
```json
{
  "path": "folder/long-note.md"
}
```

### 5. `organize_note`
Move a note to a different folder.
```json
{
  "path": "old-folder/note.md",
  "targetFolder": "new-folder"
}
```

### 6. `add_tags`
Add tags to a note's frontmatter.
```json
{
  "path": "folder/note.md",
  "tags": ["important", "project-x"]
}
```

### 7. `get_most_valuable_notes`
Get your top 10 most valuable notes for today.
```json
{}
```

## Usage Examples

Once configured, you can ask Claude in the desktop app:

- "Show me my most valuable notes for today"
- "Search my vault for notes about Python"
- "Summarize my note called 'Project Ideas'"
- "Move my note 'Draft.md' to the 'Archive' folder"
- "Add tags 'urgent' and 'work' to my note 'Meeting Notes.md'"
- "Create a new note in 'Daily Notes' called 'Today.md' with today's date"

## Development

### Watch Mode
For development, run TypeScript in watch mode:
```bash
npm run dev
```

### Testing
Test the server directly:
```bash
export OBSIDIAN_VAULT_PATH="/path/to/vault"
npm start
```

## Troubleshooting

### Common Issues

**"OBSIDIAN_VAULT_PATH environment variable not set"**
- Make sure you've set the environment variable correctly
- Use absolute paths, not relative paths
- Check for typos in the path

**"Permission denied" errors**
- Ensure the build/index.js file is executable: `chmod +x build/index.js`
- Check that Node.js has read/write permissions to your vault

**Claude Desktop doesn't see the server**
- Restart Claude Desktop after editing the config file
- Check the config file syntax (valid JSON)
- Use absolute paths in the config file
- Check Claude Desktop logs for errors

## Future Enhancements

Potential features to add:
- Link analysis and graph visualization
- Automated note templates
- Batch operations
- Daily note automation
- Integration with calendar and tasks
- AI-powered note suggestions

TDQS

A3.5/5.0

Scored across 7 tools

Disambiguation5/5

Each tool has a clearly distinct purpose: creating, reading, searching, summarizing, moving, tagging, and recommending notes. There is no overlap or ambiguity between them.

Naming Consistency5/5

All tools follow a consistent verb_noun pattern in snake_case (e.g., create_note, read_note, add_tags). Even get_most_valuable_notes fits the verb-noun convention with a descriptive adjective.

Tool Count5/5

Seven tools is a well-scoped count for an Obsidian vault management server, covering common operations without redundancy or bloat. Each tool earns its place.

Completeness3/5

The toolset covers create, read, search, summarize, organize, and tag operations, but lacks the ability to edit note content or delete notes. These are notable gaps in the note lifecycle, though agents can work around some limitations by using organize_note and add_tags for metadata changes.

Maintenance

ActivityInactive
ResponsivenessNo issues