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:
- MCP server exposes your note app to Claude
- 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.
| Problem | Automated Solution |
|---|---|
| Forget what you finished | Claude logs every completed task |
| Context lost between sessions | Journal provides session continuity |
| Manual notes interrupt flow | Logging happens in background |
| Git logs show what, not why | Journal 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 App | MCP Server | Install |
|---|---|---|
| Obsidian | obsidian-mcp | npm run build, then configure |
| Notion | notion-mcp | npx @notionhq/notion-mcp-server |
| Inkdrop | @inkdropapp/mcp-server | npm install -g @inkdropapp/mcp-server |
| Apple Notes | mcp-apple-notes | Clone and build |
| Plain files | MCPNotes | Markdown 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
| Instruction | Behavior |
|---|---|
| “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:
| Server | List Notes | Create/Update | Search |
|---|---|---|---|
| obsidian-mcp | list_files_in_vault | create_file, update_file | search_notes |
| notion-mcp | list_pages | create_page, update_page | search |
| inkdrop-mcp | list-notes | create-note, update-note | search-notes |
Reference the correct tool names in your CLAUDE.md instructions.
Common Mistakes
| Mistake | Fix |
|---|---|
| Server connected but Claude ignores logging | Check CLAUDE.md is in project root |
| Overwrites previous entries | Add “append to existing content” |
| Creates scattered files | Specify exact path with date pattern |
| Too verbose entries | Add “keep entries concise” |
| Missing timestamps | Include timestamp in format specification |
| Wrong tool names | Check claude mcp status for available tools |
Minimal Setup Checklist
- Install your note app’s MCP server
- Add server to
~/.claude/mcp.json - Verify with
claude mcp status - Add journaling section to project
CLAUDE.md - Run a task and check if journal entry appears
Beyond Development Logs
The pattern extends to other use cases:
| Use Case | What to Log |
|---|---|
| Research sessions | Sources found, key findings |
| Debugging | Hypotheses tested, root causes |
| Architecture decisions | Options considered, rationale |
| Learning | Concepts covered, questions remaining |
Any repetitive documentation task can run in the background.
Links
- Building MCP Servers - Create custom servers
- CLAUDE.md Best Practices - Effective project instructions
- MCP Servers Reference - Available integrations
Next: Takuya Matsuyama’s AI Journaling
Get updates
New guides, workflows, and AI patterns. No spam.
Thank you! You're on the list.