Skip to main content
Glama
README.md
# 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

A4/5.0

Scored across 5 tools

Disambiguation5/5

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.

Naming Consistency5/5

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.

Tool Count5/5

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.

Completeness4/5

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.

Maintenance

ActivityStale
ResponsivenessNo issues