Obsidian规划服务器

一个基于GTD和PARA方法的Obsidian库规划MCP服务器,提供日常笔记、收件箱、任务、项目和全文搜索等功能。

  • by jarero321
  • TypeScript
  • 本地部署
  • 1 星标
  • 更新于
在 GitHub 查看 jarero321/mcp-obsidian-planner

使用说明

mcp黑曜石规划师

采用GTD+PARA方法的黑曜石保险库规划MCP服务器。

17个工具,用于每日笔记、收件箱、任务、项目、每周评论和全文搜索。

入门指南 · 工具 · 建筑 · 配置


它的作用

将Claude Code(或任何MCP客户端)直接连接到您的黑曜石保险库进行结构化规划:

  • 每日笔记 --从模板创建,设置前3个焦点,跟踪任务
  • 收件箱 --捕捉想法,确定优先级,将项目处理到项目/领域中
  • 任务 --列出、添加、切换任何笔记或文件夹
  • 项目 --创建PARA区域,跟踪状态和截止日期
  • 每周评论 --自动生成完成率摘要
  • 搜索 --使用上下文在vault中进行全文搜索

与合作 LifeOS vault结构使用Templater模板和Dataview兼容的frontmatter。


入门指南

先决条件

  • Node.js>=18
  • 具有文件夹结构的黑曜石保险库(请参见 拱顶结构)

安装

git clone https://github.com/jarero321/mcp-obsidian-planner.git
cd mcp-obsidian-planner
npm install
npm run build

配置Claude代码

增添 ~/.claude/settings.json:

{
  "mcpServers": {
    "obsidian-planner": {
      "command": "node",
      "args": ["/path/to/mcp-obsidian-planner/dist/main.js"],
      "env": {
        "VAULT_PATH": "/path/to/your/obsidian/vault"
      }
    }
  }
}

配置Claude桌面

增添 claude_desktop_config.json:

{
  "mcpServers": {
    "obsidian-planner": {
      "command": "node",
      "args": ["/path/to/mcp-obsidian-planner/dist/main.js"],
      "env": {
        "VAULT_PATH": "/path/to/your/obsidian/vault"
      }
    }
  }
}

验证

# Test with MCP Inspector
npm run inspect

# Or run directly
npm run start:stdio

工具

每日笔记(3)

工具 说明
daily_create 从模板创建每日笔记。如果已创建,则返回现有注释。
daily_get 获取一份包含解析部分(焦点、任务、日志、感激、反思)的每日笔记。
daily_set_focus 为每日笔记设置前三个重点优先事项。

收件箱(4)

工具 说明
inbox_list 列出按优先级分组的所有收件箱项目(紧急,您可以等待,有一天,快速捕获,快速笔记)。
inbox_add 在收件箱中添加一个带有时间戳的新项目。
inbox_process 将收件箱项目移动到项目、每日笔记、区域、存档或删除
inbox_prioritize 更改收件箱项目在不同部分之间的优先级。

任务(3)

工具 说明
tasks_list 列出特定笔记、文件夹或整个vault中的任务。按状态筛选。
task_toggle 在待处理任务之间切换 [ ] 并已完成 [x].
task_add 在特定部分的注释中添加新任务。

每周评论(2)

工具 说明
weekly_summary 生成每周摘要:已完成/待完成的任务、已完成的每日任务、项目进度。
weekly_create 从模板创建每周复习笔记。

搜索和注释(3)

工具 说明
vault_search 使用上下文线在vault中进行全文搜索。
note_read 按相对路径读取vault中的注释。
notes_list 使用可选模式过滤器列出文件夹中的所有笔记。

项目(2)

工具 说明
projects_list 列出项目的状态、区域和截止日期。按状态或区域过滤。
project_create 使用区域分配从模板创建新项目。

建筑

使用NestJS依赖注入的干净架构:

src/
├── domain/                  # Entities, enums, value objects
│   ├── entities/            # Task, Note, DailyNote, Project, InboxItem, WeeklyReview
│   ├── enums/               # TaskStatus, ProjectStatus, InboxPriority, Area
│   └── value-objects/       # VaultPath (path traversal protection), DateRange
│
├── application/             # Business logic
│   ├── ports/               # Abstractions (VaultRepository, NoteParser, TemplateEngine, Logger)
│   └── use-cases/           # 17 use cases organized by domain
│       ├── daily/           # CreateDaily, GetDaily, SetDailyFocus
│       ├── inbox/           # ListInbox, AddInbox, ProcessInbox, PrioritizeInbox
│       ├── tasks/           # ListTasks, ToggleTask, AddTask
│       ├── weekly/          # WeeklySummary, CreateWeekly
│       ├── search/          # VaultSearch, ReadNote, ListNotes
│       └── projects/        # ListProjects, CreateProject
│
├── infrastructure/          # Concrete implementations
│   ├── vault/               # File system operations (fs/promises)
│   ├── parser/              # Markdown + frontmatter parsing (gray-matter)
│   ├── template/            # Templater syntax replacement (dayjs)
│   ├── logging/             # stderr JSON logger (stdout reserved for MCP)
│   └── mcp/                 # MCP server, handlers, presenter, tool definitions
│
└── config/                  # Vault configuration module

端口和适配器

端口 符号 实现
VaultRepository VAULT_REPOSITORY FsVaultRepository --具有路径遍历保护的文件系统操作
NoteParser NOTE_PARSER MarkdownNoteParserService --灰质+正则表达式解析
TemplateEngine TEMPLATE_ENGINE SimpleTemplateEngineService --使用dayjs的模板语法
LoggerPort LOGGER_PORT StderrLoggerService --JSON日志到stderr

配置

环境变量

变量 描述 默认值
VAULT_PATH 黑曜石拱顶的绝对路径 (必填)
DAILY_FOLDER 每日笔记文件夹 07-Daily
INBOX_FILE 收件箱标记文件 01-Inbox/Inbox.md
PROJECTS_FOLDER 项目文件夹 02-Proyectos
AREAS_FOLDER 区域(PARA)文件夹 04-Areas
TEMPLATES_FOLDER Templates文件夹 Templates
ARCHIVE_FOLDER 存档文件夹 06-Archive

复制 .env.example 到 .env 并调整路径:

cp .env.example .env

运输方式

# stdio (default) — for Claude Code / Claude Desktop
node dist/main.js

# SSE — for web clients
node dist/main.js --sse
# Runs on PORT (default: 3000)

拱顶结构

预期黑曜石拱顶布局:

Vault/
├── 00-Dashboard/          # Central hub with Dataview queries
├── 01-Inbox/
│   └── Inbox.md           # GTD inbox with priority sections
├── 02-Proyectos/          # Active projects with frontmatter
├── 04-Areas/              # PARA areas (Salud, Carrera, Finanzas, etc.)
├── 06-Archive/            # Archived items
├── 07-Daily/              # Daily notes (YYYY-MM-DD.md)
└── Templates/             # Templater templates
    ├── Daily Template.md
    ├── Weekly Review.md
    └── Proyecto Template.md

收件箱格式

## Captura Rápida
- [ ] Some task _2025-01-15 10:30_
- Some note _2025-01-15 11:00_

## Urgente (hacer esta semana)
- [ ] Important task _2025-01-15 09:00_

## Puede esperar
## Algún día / Quizás
## Notas Rápidas

项目负责人

---
estado: En progreso
area: Carrera
inicio: 2025-01-01
deadline: 2025-03-01
objetivo: Build the thing
---

技术栈

Runtime          Node.js 18+
Framework        NestJS 11 (application context, no HTTP)
MCP SDK          @modelcontextprotocol/sdk 1.12
Parsing          gray-matter (YAML), regex (tasks, sections)
Dates            dayjs (Templater replacement)
Validation       Zod (tool input schemas)
Architecture     Clean Architecture, Ports & Adapters

脚本

脚本 描述
npm run build 编译TypeScript
npm run start:stdio 运行MCP服务器(stdio)
npm run start:sse 运行MCP服务器(SSE)
npm run inspect 打开MCP检查器
npm test 运行测试
npm run test:cov 运行覆盖率测试
npm run lint 轻敲并修复

许可证

麻省理工学院