104 lines
3.2 KiB
Markdown
104 lines
3.2 KiB
Markdown
|
|
# Quick Setup: Obsidian Local REST API Plugin
|
||
|
|
|
||
|
|
## Your Current Status
|
||
|
|
- ✅ Obsidian is running
|
||
|
|
- ✅ Config file is ready (`config/obsidian_mcp.yaml`)
|
||
|
|
- ❌ Local REST API plugin not responding on port 27123
|
||
|
|
|
||
|
|
## Setup Steps
|
||
|
|
|
||
|
|
### 1. Install the Local REST API Plugin in Obsidian
|
||
|
|
|
||
|
|
1. Open **Obsidian**
|
||
|
|
2. Go to **Settings** (gear icon) → **Community Plugins**
|
||
|
|
3. If you see "Safe mode is on", click **Turn off Safe Mode**
|
||
|
|
4. Click **Browse** button
|
||
|
|
5. Search for: **"Local REST API"**
|
||
|
|
6. Click **Install** on the "Local REST API" plugin by coddingtonbear
|
||
|
|
7. After installation, click **Enable**
|
||
|
|
|
||
|
|
### 2. Configure the Plugin
|
||
|
|
|
||
|
|
1. In Obsidian Settings, scroll down to **Plugin Options**
|
||
|
|
2. Find **Local REST API** in the left sidebar
|
||
|
|
3. Copy your API key shown in the plugin settings
|
||
|
|
4. Compare it with the key in your `config/obsidian_mcp.yaml`:
|
||
|
|
```
|
||
|
|
api_key: "ee625f06a778e3267a9219f9b8c1065a039375ea270e414a34436c6a3027f2da"
|
||
|
|
```
|
||
|
|
5. If they don't match, update the config file with the correct key
|
||
|
|
|
||
|
|
### 3. Verify the Plugin is Running
|
||
|
|
|
||
|
|
1. Check that the plugin shows as **enabled** in Obsidian
|
||
|
|
2. The plugin should show: "Server running on http://127.0.0.1:27123"
|
||
|
|
3. Restart Obsidian if needed
|
||
|
|
|
||
|
|
### 4. Test the Connection
|
||
|
|
|
||
|
|
Run this command in your project directory:
|
||
|
|
|
||
|
|
```powershell
|
||
|
|
python -c "from obsidian_mcp import check_obsidian_health; print('Health Check:', check_obsidian_health(force=True))"
|
||
|
|
```
|
||
|
|
|
||
|
|
**Expected output**: `Health Check: True`
|
||
|
|
|
||
|
|
### 5. Restart the Bot
|
||
|
|
|
||
|
|
```powershell
|
||
|
|
venv\Scripts\activate
|
||
|
|
python bot_runner.py
|
||
|
|
```
|
||
|
|
|
||
|
|
Look for this line in the startup logs:
|
||
|
|
```
|
||
|
|
[LLM] Obsidian MCP server registered (8 tools)
|
||
|
|
```
|
||
|
|
|
||
|
|
If you see this instead, the plugin isn't working yet:
|
||
|
|
```
|
||
|
|
[LLM] Obsidian MCP enabled but health check failed - using custom tools only
|
||
|
|
```
|
||
|
|
|
||
|
|
## Alternative: File-Based Access (Already Working)
|
||
|
|
|
||
|
|
If you don't want to use the Local REST API plugin, your bot can **already** access your Obsidian vault via the filesystem using these tools:
|
||
|
|
|
||
|
|
- `fleeting_note` - Quick capture with auto-ID
|
||
|
|
- `daily_note` - Timestamped journal entries
|
||
|
|
- `literature_note` - Save web articles
|
||
|
|
- `permanent_note` - Create refined notes with auto-linking
|
||
|
|
- `search_vault` - Hybrid semantic search
|
||
|
|
- `search_by_tags` - Find notes by tags
|
||
|
|
- `read_file` / `write_file` / `edit_file` - Direct file access
|
||
|
|
|
||
|
|
The **Obsidian MCP tools** add these extra capabilities:
|
||
|
|
- `obsidian_update_note` - Frontmatter-aware editing
|
||
|
|
- `obsidian_global_search` - Native Obsidian search
|
||
|
|
- `obsidian_manage_frontmatter` - Advanced metadata management
|
||
|
|
- `obsidian_manage_tags` - Bulk tag operations
|
||
|
|
- `obsidian_delete_note` - Safe deletion
|
||
|
|
|
||
|
|
## Troubleshooting
|
||
|
|
|
||
|
|
### Plugin shows "Server not running"
|
||
|
|
- Click the **Restart Server** button in the plugin settings
|
||
|
|
- Check Windows Firewall isn't blocking port 27123
|
||
|
|
|
||
|
|
### API key mismatch
|
||
|
|
- Copy the EXACT key from Obsidian plugin settings
|
||
|
|
- Update `config/obsidian_mcp.yaml` → `connection.api_key`
|
||
|
|
|
||
|
|
### Wrong vault path
|
||
|
|
- Your current vault path: `C:/Users/fam1n/OneDrive/Documents/Remote-Mind-Vault`
|
||
|
|
- Verify this path exists and contains a `.obsidian` folder
|
||
|
|
|
||
|
|
### Health check still fails after setup
|
||
|
|
- Restart Obsidian
|
||
|
|
- Restart the bot
|
||
|
|
- Check port 27123 isn't used by another program:
|
||
|
|
```powershell
|
||
|
|
netstat -ano | findstr :27123
|
||
|
|
```
|