work-tracker-mcp
# work-tracker-mcp
MCP server that tracks what you are working on. Logs are stored locally as one markdown file per day on your Desktop.
Works with **Cursor** and **Claude Code**.
## Quick install
```bash
git clone https://github.com/venkatd-media/work-tracker-mcp.git ~/Projects/work-tracker-mcp
cd ~/Projects/work-tracker-mcp
./scripts/install.sh
```
The install script will:
- Build the MCP server
- Register it in Claude Code (`user` scope, all projects)
- Register it in Cursor (`~/.cursor/mcp.json`)
- Append work-tracking instructions to `~/.claude/CLAUDE.md` and `~/.cursor/AGENTS.md`
Then reload MCP in Cursor and start a new Claude Code session.
## Storage
Default folder: `~/Desktop/work-tracker/`
Each day gets a file like `2026-07-06.md`:
```markdown
# 2026-07-06
## Focus
Building the work-tracker MCP server
## Project
/Users/venkat.c/Projects/work-tracker-mcp
## Log
- 21:30 — Started scaffolding
- 21:45 — Switched to daily Desktop files
```
Override the folder with `WORK_TRACKER_DIR`.
Concurrent writes from Cursor and Claude Code are safe: each day file is updated under an exclusive lock with atomic replace, so overlapping sessions cannot lose log entries.
## Claude Code
### One-command setup (recommended)
```bash
./scripts/install.sh
```
### Manual setup
```bash
npm install
npm run build
claude mcp add --scope user work-tracker -- node /absolute/path/to/work-tracker-mcp/dist/index.js
```
Use `--scope user` so the server is available in every project, not just this repo.
### Import from this repo
If you open this repository in Claude Code, `.mcp.json` is included. Set the repo path first:
```bash
export WORK_TRACKER_MCP_ROOT=~/Projects/work-tracker-mcp
```
Then approve the `work-tracker` server when prompted.
## Cursor
### One-command setup
```bash
./scripts/install.sh
```
### Manual setup
Add to `~/.cursor/mcp.json`:
```json
{
"mcpServers": {
"work-tracker": {
"command": "node",
"args": ["/absolute/path/to/work-tracker-mcp/dist/index.js"]
}
}
}
```
For automatic tracking in every workspace, also keep the work-tracking section in `~/.cursor/AGENTS.md` (the install script adds it).
## Tools
| Tool | Description |
|------|-------------|
| `get_current_work` | Read today's focus and log |
| `set_focus` | Set what you are working on |
| `log_progress` | Append a timestamped note |
| `read_day` | Read a specific day's file |
| `list_days` | List available day files |
## Requirements
- Node.js 20+
- Cursor and/or Claude Code with MCP support
TDQS
Scored across 5 tools
Each tool has a distinct purpose: get_current_work for today's summary, set_focus for updating focus, log_progress for appending entries, read_day for specific days, and list_days for enumeration. No overlap or ambiguity in their roles.
All tool names follow a clear verb_noun pattern in snake_case (get_current_work, set_focus, log_progress, read_day, list_days). The verbs vary to match the actions, but the convention is consistent across the set.
With 5 tools, the server is well-scoped for a daily work tracker. Each tool covers a core operation without redundancy, making the count feel appropriate and manageable.
The set covers the essential lifecycle of daily work tracking: get current context, set focus, log progress, read historical days, and list available days. Minor gaps exist (e.g., no edit/delete for log entries), but they are not critical for the server's purpose.