Skip to main content

worklog-mcp

The project doc that writes itself.

MCP server that manages worklogs and keeps PROJECT.md up to date — across Claude Code, Cursor, and Claude Desktop.

License: MIT MCP Python


What It Does

  • Worklog — records what you worked on into .worklogs/YYYY-MM-DD.md, optionally syncs to Notion
  • Project doc — creates and maintains PROJECT.md with structure, decisions, and solved problems
  • Gap detection — compares recent git commits to PROJECT.md and surfaces what's missing
  • Any client — Claude Code, Cursor, Claude Desktop, anything MCP-compatible

Install

git clone https://github.com/kangraemin/worklog-for-claude
cd worklog-for-claude/mcp
uv sync

Connect

Add to your MCP client config. Replace the path with the absolute path to this mcp/ directory.

Claude Code — .claude/settings.json:

{
  "mcpServers": {
    "worklog-mcp": {
      "command": "uv",
      "args": ["--directory", "/path/to/worklog-for-claude/mcp", "run", "worklog-mcp"]
    }
  }
}

Cursor — ~/.cursor/mcp.json (same format)

Claude Desktop — ~/Library/Application Support/Claude/claude_desktop_config.json (same format)

See examples/ for complete config files.

Tools

Tool Description
write_worklog Append an entry to .worklogs/YYYY-MM-DD.md
read_worklog Read worklog for a given date (default: today)
write_worklog_to_notion Send worklog entry to Notion DB
read_project_doc Read PROJECT.md with section parsing
create_project_doc Create PROJECT.md with 7 standard sections
analyze_gaps Compare recent git commits to PROJECT.md, return gaps
update_project_doc Update a specific section (replace or append)

PROJECT.md Sections

## 이게 뭔가       — one-line description
## 왜 만들었나     — motivation and problem
## 구조            — folder/file structure
## 기술 스택       — tech choices and reasons
## 주요 결정들     — key architectural decisions
## 해결한 문제들   — bugs and how they were fixed
## 지금 상태       — current state, what works, what's next

Notion Setup

Set environment variables before running the server:

export NOTION_TOKEN=secret_...
export NOTION_DB_ID=your-db-id

Or pass them directly as tool arguments.

Required Notion DB columns: Title, Project, Cost, Duration, Model, Tokens, DateTime

Gap Detection

analyze_gaps watches your git history and finds what's missing in PROJECT.md:

  • feat: commits → checks 주요 결정들, 지금 상태
  • fix: commits → checks 해결한 문제들
  • refactor: commits → checks 구조, 기술 스택
  • Empty sections → always flagged
  • Recent docs: or PROJECT.md commit → skips gap check

Test

uv run pytest tests/ -v

71 tests, all passing.

Metadata

Release files for worklog-for-claude 0.1.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for worklog-for-claude 0.1.0
File Size Uploaded
worklog_for_claude-0.1.0.tar.gz 65.3 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for worklog-for-claude 0.1.0
File Interpreter ABI Platform
worklog_for_claude-0.1.0-py3-none-any.whl Python 3 none any Details

Total release size: 75.0 kB

Release files / worklog_for_claude-0.1.0.tar.gz

Download URL worklog_for_claude-0.1.0.tar.gz
Size 65.3 kB
Tags Source
SHA-256 checksum
How to use checksums
caeeaf507aa69225e6eb9fd2cab2728a52dfe9e60bd24e2402e01af2c07e8b97
BLAKE2b-256 checksum
How to use checksums
549760c49231b516d79f031d07cd4ca95c4b2fb0c4752b16ab741dda9b46b7d9
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.10.4 {"installer":{"name":"uv","version":"0.10.4","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

Release files / worklog_for_claude-0.1.0-py3-none-any.whl

Download URL worklog_for_claude-0.1.0-py3-none-any.whl
Size 9.7 kB
Tags Python 3
SHA-256 checksum
How to use checksums
505b7e05fffbb6e7d094af0a4235e8cff140204fd6b3bc7ca91b598f1df6ad4a
BLAKE2b-256 checksum
How to use checksums
de43d6d00e60dda4e446c82ed020804b6f6348ec84bae05b8efb612093026eea
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.10.4 {"installer":{"name":"uv","version":"0.10.4","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

Release history Release notifications | RSS feed

This release

0.1.0 This release

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page