Skip to main content
Glama
ogawatakahisa

LifeLogMCP

README.md
# Obsidian LifeLog連携(Step 2)

Obsidian Vault内の指定日のDaily Noteと、その `#### タスクリスト` セクションにある未完了タスクを読み取るTypeScriptプロジェクトです。

この段階ではMCP Server化もファイル書き込みも行いません。`get_daily_note` と `list_incomplete_tasks` に相当する読み取り処理だけを実装しています。

## 前提

- Node.js 20以上
- Daily Noteのファイル名は `YYYY-MM-DD.md`
- `.env` の `DAILY_NOTE_DIR` はVault内のフォルダ

## 初期設定

依存パッケージをインストールします。

```bash
npm install
```

`.env.example` を参考に `.env` を用意します。このプロジェクトには、最初の動作確認用として `DAILY_NOTE_DIR=TestDaily` を設定済みです。

`.env` は `.gitignore` に含まれているため、Git管理対象になりません。

## Daily Noteを読み取る

```bash
npm run get-daily-note -- 2026-08-18
```

この設定では、次のファイルをUTF-8で読み取って表示します。

```text
/Users/ogawatakahisa/Desktop/Obsidian/TestDaily/2026-08-18.md
```

ファイルの作成・更新・削除は行いません。

## 未完了タスクを読み取る

```bash
npm run list-incomplete-tasks -- 2026-08-18
```

`#### タスクリスト` から `- [ ]` の行だけを取得し、タスク本文と元ファイル上の行番号を表示します。A / B / Cセクションは対象外です。`- [x]` と `- [X]` は完了済みとして除外します。

`#### タスクリスト` が存在しない場合や空の場合は、エラーではなく未完了タスク0件として扱います。

## テスト

```bash
npm test
```

型チェックとテストをまとめて実行する場合:

```bash
npm run check
```

テストはOSの一時フォルダに専用Vaultを作って実行し、実際のObsidian Vaultには書き込みません。
# LifeLogMCP