Skip to main content

MCP server for worklog and project documentation management

Project description

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.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

worklog_for_claude-0.1.0.tar.gz (65.3 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

worklog_for_claude-0.1.0-py3-none-any.whl (9.7 kB view details)

Uploaded Python 3

File details

Details for the file worklog_for_claude-0.1.0.tar.gz.

File metadata

  • Download URL: worklog_for_claude-0.1.0.tar.gz
  • Upload date:
  • Size: 65.3 kB
  • Tags: Source
  • Uploaded using 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}

File hashes

Hashes for worklog_for_claude-0.1.0.tar.gz
Algorithm Hash digest
SHA256 caeeaf507aa69225e6eb9fd2cab2728a52dfe9e60bd24e2402e01af2c07e8b97
MD5 433c349e26fa9f889b90da848a327d2c
BLAKE2b-256 549760c49231b516d79f031d07cd4ca95c4b2fb0c4752b16ab741dda9b46b7d9

See more details on using hashes here.

File details

Details for the file worklog_for_claude-0.1.0-py3-none-any.whl.

File metadata

  • Download URL: worklog_for_claude-0.1.0-py3-none-any.whl
  • Upload date:
  • Size: 9.7 kB
  • Tags: Python 3
  • Uploaded using 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}

File hashes

Hashes for worklog_for_claude-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 505b7e05fffbb6e7d094af0a4235e8cff140204fd6b3bc7ca91b598f1df6ad4a
MD5 7ff7223a69dfeb6bdd2d438160219bd2
BLAKE2b-256 de43d6d00e60dda4e446c82ed020804b6f6348ec84bae05b8efb612093026eea

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page