Automated Development Journaling with MCP and CLAUDE.md

Table of content

You finish a coding session. Two days later, you return. What did you change? What was working? What broke? If you rely on git logs, you get commit messages. If you kept manual notes, you interrupted your flow to write them.

The solution: make Claude write your development journal for you.

How It Works

Two pieces connect:

  1. MCP server exposes your note app to Claude
  2. CLAUDE.md instructs Claude to log work after each task
[You] → [Claude Code] → CLAUDE.md says "log to journal"
                     → [MCP Server] → [Note App]
                     → Journal entry created

No manual logging. No flow interruption. Documentation happens as you work.

Why Automated Journaling

When AI handles implementation, work moves faster than memory.

ProblemAutomated Solution
Forget what you finishedClaude logs every completed task
Context lost between sessionsJournal provides session continuity
Manual notes interrupt flowLogging happens in background
Git logs show what, not whyJournal captures decisions and blockers

Takuya Matsuyama built this pattern for his note app Inkdrop. His observation: when you’re in flow with AI, things progress faster than you can track mentally.

MCP Servers for Note Apps

Note AppMCP ServerInstall
Obsidianobsidian-mcpnpm run build, then configure
Notionnotion-mcpnpx @notionhq/notion-mcp-server
Inkdrop@inkdropapp/mcp-servernpm install -g @inkdropapp/mcp-server
Apple Notesmcp-apple-notesClone and build
Plain filesMCPNotesMarkdown files in a directory

For Obsidian, you also need the Local REST API community plugin enabled.

Configuring Your MCP Server

Add your note server to Claude Code. For Obsidian:

claude mcp add obsidian --command "node /path/to/obsidian-mcp/build/main.js /path/to/vault"

Or edit ~/.claude/mcp.json:

{
  "servers": {
    "obsidian": {
      "command": "node",
      "args": [
        "/path/to/obsidian-mcp/build/main.js",
        "/path/to/your/vault"
      ]
    }
  }
}

Verify connection:

claude mcp list
claude mcp status

CLAUDE.md Instructions

The MCP connection gives Claude access. The CLAUDE.md file tells Claude when and what to log.

Add a journaling section to your project’s CLAUDE.md:

## Development Journal

After completing each task, log to the development journal:

1. Use the `create_note` or `update_note` tool
2. Journal location: `Dev Journal/2026-01-21.md` (use today's date)
3. Append to existing content, don't overwrite

Entry format:
- **Time**: Current timestamp
- **Task**: What was requested
- **Done**: What was accomplished
- **Approach**: How you solved it
- **Issues**: Any blockers or unexpected problems

Keep entries concise. One paragraph per section maximum.

The Journal Entry

What Claude writes:

## 10:42 - Add user authentication

**Task**: Implement login/logout with session handling

**Done**: Created auth module with JWT tokens, added login/logout
routes, integrated with existing user model

**Approach**: Used existing bcrypt setup for passwords. Added
middleware for protected routes. Session stored in httpOnly cookie.

**Issues**: Initial CORS issue with credentials. Fixed by adding
withCredentials to fetch config.

One session produces one file with multiple timestamped entries.

Entry Frequency

InstructionBehavior
“After each task”Entry per completed request
“After significant changes”Entry per feature or major fix
“At session end”One summary entry

Start with per-task logging. Adjust if entries become too granular.

Tool Names by Server

Different MCP servers expose different tool names. Check what your server provides:

ServerList NotesCreate/UpdateSearch
obsidian-mcplist_files_in_vaultcreate_file, update_filesearch_notes
notion-mcplist_pagescreate_page, update_pagesearch
inkdrop-mcplist-notescreate-note, update-notesearch-notes

Reference the correct tool names in your CLAUDE.md instructions.

Common Mistakes

MistakeFix
Server connected but Claude ignores loggingCheck CLAUDE.md is in project root
Overwrites previous entriesAdd “append to existing content”
Creates scattered filesSpecify exact path with date pattern
Too verbose entriesAdd “keep entries concise”
Missing timestampsInclude timestamp in format specification
Wrong tool namesCheck claude mcp status for available tools

Minimal Setup Checklist

  1. Install your note app’s MCP server
  2. Add server to ~/.claude/mcp.json
  3. Verify with claude mcp status
  4. Add journaling section to project CLAUDE.md
  5. Run a task and check if journal entry appears

Beyond Development Logs

The pattern extends to other use cases:

Use CaseWhat to Log
Research sessionsSources found, key findings
DebuggingHypotheses tested, root causes
Architecture decisionsOptions considered, rationale
LearningConcepts covered, questions remaining

Any repetitive documentation task can run in the background.


Next: Takuya Matsuyama’s AI Journaling

Topics: claude-code mcp knowledge-management