← Back to Plugins
Integration

Obsidian Llm Bridge

cpufreestyle By cpufreestyle 👁 24 views ▲ 0 votes

TypeScript MCP plugin bridging Obsidian vault to OpenClaw / LLMs for bidirectional knowledge sync

GitHub

Install

npm install -g

Configuration Example

{
  "mcp": {
    "servers": {
      "obsidian-bridge": {
        "command": "npx",
        "args": ["obsidian-llm-bridge"],
        "env": {
          "OBSIDIAN_VAULT_PATH": "D:\\Users\\michael\\MyWiki",
          "OBSIDIAN_DEFAULT_FOLDER": "concepts"
        }
      }
    }
  }
}

README

# 🔗 obsidian-llm-bridge

> TypeScript MCP 插件:在 Obsidian Vault 和 OpenClaw/LLM 之间建立双向知识同步通道。
> 自动提取笔记元数据、双向链接、标签,将笔记内容流式推送给 LLM,并在 LLM 回复后自动更新 Obsidian。

## 工作原理

```
Obsidian Vault
    │
    ▼ 读取笔记
[[obsidian-llm-bridge]]
    │  MCP stdio 协议
    ▼
OpenClaw Gateway
    │
    ▼ LLM 推理
    回复 / 更新建议
    │
    ▼ 写入更新
Obsidian Vault
```

## 功能

- 📖 **读取笔记**:按目录、按标签、按双向链接关系读取笔记内容
- 🔍 **搜索**:全文搜索 + 标签搜索 + 链接关系搜索
- ✍️ **写入笔记**:自动将 LLM 总结写入对应笔记
- 🔄 **双向同步**:Obsidian → LLM → Obsidian 的增量更新循环
- 🏷️ **标签提取**:自动从笔记内容提取标签
- 📊 **元数据**:返回笔记的链接关系图、修改时间、字数统计

## 安装

```bash
npm install -g obsidian-llm-bridge
# 或
npx obsidian-llm-bridge
```

## MCP 配置

在 OpenClaw `openclaw.json` 中添加:

```json
{
  "mcp": {
    "servers": {
      "obsidian-bridge": {
        "command": "npx",
        "args": ["obsidian-llm-bridge"],
        "env": {
          "OBSIDIAN_VAULT_PATH": "D:\\Users\\michael\\MyWiki",
          "OBSIDIAN_DEFAULT_FOLDER": "concepts"
        }
      }
    }
  }
}
```

## 环境变量

| 变量 | 说明 | 默认值 |
|------|------|--------|
| `OBSIDIAN_VAULT_PATH` | Obsidian vault 根目录 | _(必填)_ |
| `OBSIDIAN_DEFAULT_FOLDER` | 新笔记默认目录 | `concepts` |
| `OBSIDIAN_NOTE_EXTENSION` | 笔记文件扩展名 | `.md` |

## MCP 工具

### `obsidian_read`

读取笔记内容

```typescript
{
  name: "obsidian_read",
  arguments: {
    path: string,        // 相对于 vault 的路径,如 "daily/2026-05-27"
    max_length?: number, // 最大字符数,默认 4000
  }
}
```

### `obsidian_search`

全文搜索

```typescript
{
  name: "obsidian_search",
  arguments: {
    query: string,       // 搜索关键词
    folder?: string,     // 限制目录
    limit?: number,      // 返回数量,默认 10
  }
}
```

### `obsidian_write`

写入或追加笔记

```typescript
{
  name: "obsidian_write",
  arguments: {
    path: string,        // 相对于 vault 的路径
    content: string,     // 写入内容(会覆盖或追加)
    mode: "overwrite" | "append", // 写入模式
  }
}
```

### `obsidian_create_note`

创建新笔记(带模板)

```typescript
{
  name: "obsidian_create_note",
  arguments: {
    title: string,
    folder?: string,
    template?: string,    // 自定义模板
    tags?: string[],      // 自动添加标签
  }
}
```

### `obsidian_get_graph`

获取双向链接关系图

```typescript
{
  name: "obsidian_get_graph",
  arguments: {
    folder?: string,     // 限制目录
    depth?: number,      // 递归深度,默认 2
  }
}
// 返回 { nodes: [], links: [] } 格式
```

### `obsidian_list_recent`

列出最近修改的笔记

```typescript
{
  name: "obsidian_list_recent",
  arguments: {
    days?: number,       // 最近几天,默认 7
    limit?: number,      // 最大数量,默认 20
  }
}
```

## 使用示例

### OpenClaw 对话中

```
用户:总结一下我的项目笔记

→ obsidian_search("project")
→ obsidian_read("projects/psvr2-panel.md")
→ LLM 总结
→ obsidian_write("projects/psvr2-panel-summary.md", summary_content)
```

### 命令行

```bash
# 搜索
npx obsidian-llm-bridge search "PSVR2"

# 读取
npx obsidian-llm-bridge read daily/2026-05-27

# 创建笔记
npx obsidian-llm-bridge create "新项目想法" --folder projects --tags "idea,todo"

# 获取图谱
npx obsidian-llm-bridge graph

# 最近更新
npx obsidian-llm-bridge recent --days 7
```

## 目录结构

```
obsidian-llm-bridge/
├── src/
│   ├── index.ts         # MCP 入口 + stdio 协议
│   ├── obsidian.ts      # Obsidian vault 读写核心
│   ├── linker.ts        # 双向链接解析
│   └── formatter.ts     # 内容格式化
├── .github/workflows/
├── tests/
├── package.json
└── README.md
```

## 开发

```bash
git clone https://github.com/cpufreestyle/obsidian-llm-bridge.git
cd obsidian-llm-bridge
npm install
npm run build    # 编译 TypeScript
npm test         # 运行测试
npm run link     # 全局链接(本地开发)
```

## License

MIT
integration

Comments

Sign in to leave a comment

Loading comments...