0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Claude Code × MCP でデイリーノートを自動生成 - 朝の情報収集を30分→3分に短縮した話

Last updated at Posted at 2025-12-08

こちらは Applibot Advent Calendar 2025 9日目の記事になります。

はじめに

毎朝、複数のツールを巡回して情報を集め、今日やることを整理する——そんな作業に 30分以上 かかっていませんか?私もそうでした。

  • Google Calendar で今日の予定を確認
  • Wrike で担当タスクをチェック
  • Slack で未読メッセージやメンションを確認
  • GitHub で昨日のPR状況を確認
  • 前日のノートから未完了タスクを転記

これらを手動で行うのは時間がかかるだけでなく、見落としのリスクも高く、認知負荷も大きい作業です。

そこで、Claude CodeMCP (Model Context Protocol) を組み合わせて、これらの情報を自動で収集・整理し、Obsidian のデイリーノートとして出力するシステムを構築しました。結果として、朝の情報収集時間を 90%削減(30分→3分) することに成功しました。

本記事では、この自動化システムの設計思想と実装方法を紹介します。

本記事はiret.media の記事にインスパイアされて実装したものです。基本的なアイデアはこちらから着想を得ています。

解決したかった課題

情報の分散問題

現代の開発現場では、情報が複数のツールに分散しています:

ツール 情報の種類 確認頻度
Google Calendar 会議予定、作業時間 毎朝
Wrike タスク、プロジェクト進捗 1日数回
Slack(複数ワークスペース) コミュニケーション、メンション 常時
GitHub PR、コミット履歴 1日数回
Obsidian 過去の振り返り、メモ 必要時

これらを毎朝巡回するのは、単純作業でありながら認知負荷が高いという特徴があります。

既存ツールの限界

多くのタスク管理ツール(Notion、Trello、Asana など)は単一プラットフォーム内での管理に優れていますが、外部ツールとの統合には限界があります:

  • API連携は可能でも、複数ツールを横断した情報整理は難しい
  • 情報のコピー&ペーストが必要で、結局手作業になる
  • リアルタイム性が低く、情報が古くなりがち

そこで、生成AIの情報統合力を活用することにしました。

システムアーキテクチャ

4層構造の設計

システムは以下の4層で構成されています:

Gemini_Generated_Image_yai2zuyai2zuyai2.png

この構造により、各サービスの情報を一つのmdファイルに集約することができます。
APIキーや認証情報は各Skills内で管理されており、外部に送信されることはありません。

MCP(Model Context Protocol)とは

MCP は Anthropic が開発した、生成AIと外部データソースを接続するためのオープンプロトコルです。

従来、各ツールのAPIを個別に実装する必要がありましたが、MCPを使うことで:

  • 統一的なインターフェースで複数のデータソースにアクセス可能
  • セキュアな接続をローカル環境で実現
  • 拡張性が高く、新しいツールの追加が容易

つまり、MCPは「各種APIと生成AIを仲介するブリッジ」として機能します。

実装の詳細

スキルベースアーキテクチャ

Claude Code の Skills 機能を活用し、各情報源ごとに独立したスキルとして実装しました。これにより:

  • コンテキストの分離:各スキルが独立して動作し、トークン使用量を最適化
  • 保守性の向上:機能追加や修正が容易

スキル構成

.claude/skills/
├── daily-calendar/      # Google Calendar予定取得
├── daily-wrike/         # Wrikeタスク取得
├── daily-slack/         # Slack重要メッセージ取得
├── daily-achievements/  # 昨日の成果収集
├── daily-carryover/     # 繰り越しタスク抽出
├── daily-insights/      # 過去30日間の分析
└── daily-save/          # ファイル保存と整理

処理フロー

デイリーノート生成は以下の7ステップで実行されます:

1. Calendar予定取得(daily-calendar)

# Google Calendar APIで今日の予定を取得
mcp__google-calendar__list-events

取得する情報

  • 今日の全予定(タイトル、時間、場所)

工夫ポイント

  • 作業可能時間の算出(定時10:00-19:00から会議時間を引く)
  • 複数カレンダーにまたがる予定を統合
  • 独自の例外パターンを作業可能時間の算出に適用
    • 昼休みや予定早退は作業可能時間から除外、作業集中のための予定は組み込む、など

2. Wrikeタスク取得(daily-wrike)

# Wrike APIで今日期限のタスクを取得
mcp__wrike__searchTasksAdvanced

取得する情報

  • 今日期限のタスク
  • 担当タスクの優先度

工夫ポイント

  • カスタムステータスに対応
  • 期限切れタスクも同時に取得
  • Wrikeの作業負荷ビューへの直リンクを生成

3. Slackメッセージ取得(daily-slack)

# Slackワークスペースから重要メッセージを検索
mcp__slack__search_messages

取得する情報

  • 昨日の自分の投稿のサマリー
  • 自分へのメンション(未返信のみ)

工夫ポイント

  • スレッドの文脈を含めて取得
  • URLを生成して元メッセージにジャンプ可能に

4. 昨日の成果収集(daily-achievements)

# GitHubのPRを収集
gh pr list --author @me --created $(date -v-1d +%Y-%m-%d)

※ Mac環境の前提

取得する情報

  • 昨日作成したPR
  • 昨日のコミット数

工夫ポイント

  • シンプルにghコマンドを利用するのみ
  • 複数リポジトリを横断検索
  • PR のステータス(Draft/Open/Merged)を明示
  • コミットメッセージから作業内容を要約

5. 繰り越しタスク抽出(daily-carryover)

# 前日のデイリーノートを読み込み
Read(/Users/.../Daily Notes/YYYY-MM-DD.md)

取得する情報

  • 未完了のタスク(チェックボックスが空のもの)
  • Watching情報(継続的に追跡すべき事項)

工夫ポイント

  • Markdownのチェックボックス構文をパース
  • 階層構造を保持したまま転記
  • 完了済みタスクは除外

6. 過去30日間の分析【オプション】(daily-insights)

# 過去30日分のデイリーノートを分析
ls -t .../Daily Notes/*.md | head -30

取得する情報

  • タスク完了率のトレンド
  • よく登場するキーワード
  • 時間の使い方のパターン

工夫ポイント

  • 大量のノートを効率的に処理(要約の要約)
  • 実行可能なアクション提案
  • 週次・月次の振り返りにも活用可能

7. ファイル保存と整理(daily-save)

# Obsidian vaultとローカルに保存
cat > "Daily Notes/2025-12-03.md" << 'EOF'
...
EOF

# 古いファイル(2日以上前)を整理
find . -name "*.md" -mtime +2 -exec mv {} old/ \;

取得する情報

  • 上記1-6の情報を統合
  • テンプレートに沿って整形
  • メタデータ(日付、タグ)を付与

工夫ポイント

  • Obsidian vaultとローカルの2箇所に保存(バックアップ)
  • 古いファイルは自動的にoldフォルダに移動
  • Frontmatter形式でメタデータを管理

生成されるデイリーノートの構造

---
date: 2025-12-09
type: daily-note
tags: [daily]
---

# 2025-12-09 (火)

## 📊 昨日の成果

### GitHub活動
- [PR] repo1: ユーザー認証機能の実装 (#1234)
- [Merged] repo2: CI/CDパイプライン改善 (#1235)

### Slack投稿
- #general: 新機能のリリース報告
- #dev-team: パフォーマンス最適化の提案

## 💡 過去30日間のインサイト

- タスク完了率: 85% → 92% (改善傾向)
- 会議時間の平均: 3時間/日 → 2.5時間/日
- 推奨アクション:
  - レビュー待ちPRが溜まっているため、優先的に処理を
  - 金曜日に定例が集中しているため、分散を検討

## 📅 今日の予定

### 作業可能時間: 5.5時間(定時10:00-19:00から会議を除く)

- 10:00-11:00 週次ミーティング
- 14:00-15:30 新機能レビュー
- 16:00-17:00 1on1

## 🎯 Wrikeタスク

### 今日期限
- [ ] ユーザー認証機能のテスト完了
- [ ] ドキュメント更新

### 期限切れ(要対応)
- [ ] パフォーマンス測定レポート(昨日期限)

[作業負荷を確認](https://www.wrike.com/workspace.htm?...)

## 💬 Slack重要メッセージ

### #engineer(1件)
- @yamada: 明日のミーティングの議題確認
  - [メッセージを見る](https://app.slack.com/client/...)

## ✅ タスク

### 昨日からの繰り越し
- [ ] ログ分析ツールの実装
- [ ] パフォーマンステストの実施
- [ ] アドベントカレンダーの投稿

### 新規タスク
- [ ]

## 👀 Watching

- repo1 #1234 のレビュー待ち
- レガシーシステム移行の進捗確認

## 📝 メモ



## 🌟 今日の振り返り

### 完了したこと


### 明日へ持ち越し


さらに、生成後の応答でも簡単なサマリを共有してくれます。

~ 略 ~

✅ デイリーノート生成完了

  今日(2025-12-09(火))のデイリーノートを生成しました。

  📁 保存先

  1. Obsidian vault: /{obsidian path}/Daily Notes/2025-12-08.md
  2. ローカルバックアップ:/{workspace path}/daily-notes/2025-12-08.md

  📊 収集した情報

  - ✅ Google Calendar予定: 3件の予定、作業可能時間は5時間30分
  - ✅ Wrikeタスク: 3件(うち期限切れ1件)
  - ✅ Slack重要メッセージ: 明日のミーティングの議題確認
  - ✅ 昨日の成果: ユーザ認証機能の実装、CI/CDパイプライン改善
  - ✅ 繰り越しタスク: 3件(ログ分析ツールの実装、パフォーマンステストの実施、アドカレの投稿)
  - ✅ Watching: #1234 のレビュー、レガシーシステム移行の確認

  🗂️ ファイル整理

  - 古いファイル(2025-12-05以前)をoldフォルダに移動
  - メインディレクトリには今日のファイルのみが残っています

  デイリーノートの生成が完了しました!

技術的な工夫

1. エラーハンドリング

各スキルは独立して動作するため、一部のAPIが失敗しても他のスキルは実行できます。
朝の短い時間でざっと確認する必要があるため、不完全であってもとりあえずのレポートができていることを重視しました。

2. 日時処理の正確性

何も指示をしないと「昨日」の範囲を勝手に推測してしまうことがあるので、タスクの最初に必ず現在日時とタイムゾーンを確認させています。

# 必ず最初に現在日時を確認
date "+%Y-%m-%d (%a) %H:%M"

# タイムゾーンを明示
TZ="Asia/Tokyo" date

3. Markdownの構造化

生成されるMarkdownは、Obsidianで加筆されることを想定して出力させています。

  • Obsidian の Frontmatter 形式に対応
  • チェックボックス構文で ToDoリストを管理
  • 絵文字でセクションを視覚的に区別

効果測定

定量的な効果

項目 導入前 導入後 削減率
朝の情報収集時間 30分 3分 90%
見落としリスク -
ツール切り替え回数 10回以上 1回 90%

定性的な効果

認知負荷の軽減

  • 「何を確認すべきか」を考える必要がなくなった
  • 情報が構造化されているため、優先順位をつけやすい
  • 過去の振り返りが容易になり、自己改善のサイクルが回る

チームへの波及効果

  • 朝会や定例での共有がスピーディになった
  • タスクの抜け漏れが減り、信頼性が向上
  • 振り返りの質が向上し、改善提案が増えた

今後の改善予定

  1. MCPからSkillsへの置き換え

    • 現状skillsからMCPを利用しているが、直接APIを叩くことでコンテキストの負担が減少するはず
  2. AIによる優先順位づけ

    • タスクの重要度・緊急度をAIが判定し、推奨順序を提示
  3. チーム共有機能

    • 個人のデイリーノートからチーム全体のダッシュボードを生成
  4. 週次・月次レポート

    • デイリーノートを集計して、週次・月次の振り返りレポートを自動生成

おわりに

Claude Code と MCP を組み合わせることで、複数ツールに散在する情報を自動で収集・整理し、朝の情報収集時間を90%削減することができました。

このシステムの本質は、情報の受け取り方を変えることにあります。従来は「自分からツールに行って情報を取りに行く」スタイルでしたが、今は「必要な情報がまとまって届く」スタイルに変わりました。

生成AIは単なる文章生成ツールではなく、情報統合のハブとして機能します。
皆さんも、日々の業務で「これ、自動化できないかな?」と思ったら、ぜひ Claude Code × MCP の組み合わせを試してみてください。

参考リンク


株式会社アプリボットでは、 エンジニアをはじめ全職種で積極採用中 です。
記事を読んで少しでも興味を持たれた方やお話を聞きたい方は、是非お気軽にご連絡ください!

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?