work-tracker-mcp
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@work-tracker-mcplog that I started working on the dashboard redesign"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
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
git clone https://github.com/venkatd-media/work-tracker-mcp.git ~/Projects/work-tracker-mcp
cd ~/Projects/work-tracker-mcp
./scripts/install.shThe install script will:
Build the MCP server
Register it in Claude Code (
userscope, all projects)Register it in Cursor (
~/.cursor/mcp.json)Append work-tracking instructions to
~/.claude/CLAUDE.mdand~/.cursor/AGENTS.md
Then reload MCP in Cursor and start a new Claude Code session.
Related MCP server: mcp-cronos
Storage
Default folder: ~/Desktop/work-tracker/
Each day gets a file like 2026-07-06.md:
# 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 filesOverride 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)
./scripts/install.shManual setup
npm install
npm run build
claude mcp add --scope user work-tracker -- node /absolute/path/to/work-tracker-mcp/dist/index.jsUse --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:
export WORK_TRACKER_MCP_ROOT=~/Projects/work-tracker-mcpThen approve the work-tracker server when prompted.
Cursor
One-command setup
./scripts/install.shManual setup
Add to ~/.cursor/mcp.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 |
| Read today's focus and log |
| Set what you are working on |
| Append a timestamped note |
| Read a specific day's file |
| List available day files |
Requirements
Node.js 20+
Cursor and/or Claude Code with MCP support
Available Tools
5 toolsget_current_workA
Get today's work log: current focus, project path, and progress entries. Call at the start of sessions to resume context.
| Name | Required | Description | Default |
|---|---|---|---|
| date | No | Date in YYYY-MM-DD format. Defaults to today. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description discloses the return content (current focus, project path, progress entries) and the intended use. As a getter, it implies read-only behavior; no hidden side effects are mentioned. It does not address error cases or behavior when no log exists, but the description gives sufficient transparency for a simple retrieval tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two clear sentences: the first states the purpose and contents, the second gives usage guidance. No redundant information, appropriately front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with a single optional parameter, the description covers the core purpose, return contents, and a concrete usage scenario. The lack of an output schema is mitigated by listing the returned fields. Minor gaps include not mentioning the date parameter (though the schema covers it) and potential edge cases, but overall it is complete enough.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, with the date parameter fully described as 'YYYY-MM-DD' and 'Defaults to today'. The description does not add parameter-specific details beyond the schema, so the baseline of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's function: 'Get today's work log' and specifies the content (current focus, project path, and progress entries). It distinguishes itself from siblings like set_focus and log_progress by focusing on retrieval rather than modification, and from read_day by specifically targeting today's log.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly instructs to 'Call at the start of sessions to resume context', providing a clear use case. It does not explicitly name alternatives, but the context implies it's the go-to for session startup, while siblings like log_progress are for adding entries. This is clear context without explicit exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_daysA
List available work log days, newest first.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the burden. It states the ordering ('newest first') and that it lists available days, which is a read-only behavior. However, it does not describe the return format (e.g., array of strings, objects) or whether it includes today/partial days. For a simple list tool this is adequate but not rich.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single sentence with no filler. The key information (list, available days, newest first) is front-loaded and every word earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a zero-parameter tool, the description conveys the essential purpose and ordering. However, because there is no output schema, the return structure is unspecified, which is a minor gap. The sibling tools (read_day, get_current_work) provide contextual inference about what 'days' means, but the description alone lacks explicit return details.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema is empty (0 parameters). Per the rubric, a baseline of 4 applies because there are no parameters to describe, so the description does not need to add parameter-level detail.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('List') and identifies the resource ('available work log days'), plus a clear ordering ('newest first'). This clearly distinguishes it from siblings like read_day (which reads one day) and get_current_work (current state).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is implied: to see which work log days exist, call this tool. However, there is no explicit guidance on when to prefer this over alternatives, nor any exclusions or prerequisites. The self-explanatory name helps, but the description does not directly address alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
log_progressA
Append a timestamped note to today's work log. Use after completing a step, making a decision, or hitting a blocker.
| Name | Required | Description | Default |
|---|---|---|---|
| date | No | Date in YYYY-MM-DD format. Defaults to today. | |
| note | Yes | What was done, decided, or discovered. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the transparency burden. It discloses that the tool appends a note (a mutation) and that the note is timestamped, which is useful behavioral context. It does not mention edge cases like creating the log if absent, but the core behavior is clear.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two concise sentences with no wasted words. The core action is front-loaded, and the usage guidance is a natural continuation.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple two-parameter tool, the description is complete enough: it states the action, when to use it, and the note content. The lack of an output schema is acceptable given the tool's simplicity, and sibling names help orient the agent functionally.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema already describes both parameters fully (100% coverage). The description adds minor context by mentioning 'timestamped note' and 'today', but no substantial parameter semantics are added beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose with a specific verb ('Append') and resource ('today's work log'), and distinguishes it from read-oriented siblings like read_day and list_days. Mentioning 'timestamped note' adds further specificity.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly gives usage scenarios: 'after completing a step, making a decision, or hitting a blocker.' It does not explicitly state when not to use it or mention alternatives, but the context is clear and practical.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
read_dayB
Read the work log for a specific day.
| Name | Required | Description | Default |
|---|---|---|---|
| date | Yes | Date in YYYY-MM-DD format. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description must carry the behavioral disclosure burden. It only restates the purpose and omits details such as return format (e.g., full log entries vs summary), error behavior on missing dates, or whether the operation is read-only (though 'read' implies it). This lacks essential context for an agent.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single concise sentence that is front-loaded with the action and resource. There is no unnecessary verbiage, making it highly efficient for a simple tool.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Despite the tool being simple, the description is incomplete because there is no output schema, and the description does not explain what the tool returns or how it fits with sibling tools like list_days. An agent would not know what to expect from the call.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema fully documents the only parameter 'date' with a pattern and description, covering 100% of the schema. Since the description adds no additional parameter information, the baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Read'), the resource ('work log'), and the scope ('for a specific day'). It distinguishes from sibling tools like log_progress (write) and list_days (list days) by explicitly targeting a day's work log content.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool vs alternatives. It does not mention when not to use it, nor does it reference sibling tools like get_current_work or list_days, leaving the agent to infer usage context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
set_focusA
Set or update what the user is currently working on today. Use when starting a new task or shifting focus.
| Name | Required | Description | Default |
|---|---|---|---|
| date | No | Date in YYYY-MM-DD format. Defaults to today. | |
| focus | Yes | Short summary of the current task or goal. | |
| projectPath | No | Optional path to the project being worked on. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must disclose side effects, but it only says 'set or update' without explaining whether it overwrites existing focus, requires specific permissions, or affects other tools. The behavioral impact is under-specified for a mutation tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence that is front-loaded with the action and purpose. Every word earns its place, with no redundancy or padding.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple setter with no output schema and no annotations, the description covers the trigger context but omits side effects and return behavior. While not overly complex, a fuller disclosure of what 'set or update' entails would make it complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already explains all three parameters. The description adds minimal semantic value beyond the schema, mainly reinforcing the 'today' and 'focus' concepts. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb 'Set or update' and identifies the resource 'what the user is currently working on today', clearly distinguishing it from sibling tools like get_current_work (get) and log_progress (log). It conveys the core function effectively.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly states when to use the tool: 'Use when starting a new task or shifting focus.' This provides clear context, though it does not mention alternatives or exclusions, which would have earned a 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.
5 tool updates
v1.0.0- First observed
get_current_work - First observed
list_days - First observed
log_progress - First observed
read_day - First observed
set_focus
TDQS
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.
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
A MCP server built for developers enabling Git based project management with project and personal…
Markdown-based note-taking with a hosted MCP server. Your notes serve you and your AI.
Related MCP Servers
- FlicenseNot gradedqualityDmaintenanceMCP Server to log time and view Jira statistics directly from Cursor IDE.-
- AlicenseAqualityBmaintenanceMCP server for structured daily work diary management, enabling entries, standup summaries, weekly reports, full-text search, and automatic git commits.14MIT
- AlicenseNot gradedqualityBmaintenanceA local MCP server for journaling, organizing, and recalling your work. It captures entries as plain markdown files, indexes them for full-text and structured search, and enables querying via natural language.1MIT
- FlicenseAqualityCmaintenanceA local MCP server that captures coding context, tracks developer sessions, and powers daily insights.8-
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/venkatd-media/work-tracker-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server