Skip to content

Conversation

@yaseenscodemuseum
Copy link

Add Progress Tracking Tools (Learning Goals, Completions & Streaks)

Summary

This PR introduces a Progress Tracking system to the InterviewReady MCP server.
It allows users to track learning progress, set study goals, and maintain a streak based on daily activity — helping learners stay motivated during interview preparation.

This feature is fully MCP-tool compatible and works alongside existing reminder & content tools.


New Tools Added

set-learning-goals

Define weekly and monthly learning targets for a user.

Example:

{
  "userId": "user123",
  "weekly": 5,
  "monthly": 20
}

mark-content-completed

Log completed content such as blogs, resources, or courses.

Example:

{
  "userId": "user123",
  "contentId": "blog-1",
  "type": "blog"
}

Automatically:

  • records timestamp
  • updates daily streak
  • prevents duplicate entries

get-progress

Returns the user's current learning status.

Example output:

{
  "completed":[
    { "contentId":"blog-1","type":"blog","timestamp":1767572472955 }
  ],
  "goals":{"weekly":5,"monthly":20},
  "streakDays":1,
  "lastActivityDate":"Mon Jan 05 2026"
}

Implementation Details

  • Progress is stored persistently in a JSON datastore
  • Streaks are calculated based on daily activity
  • Duplicate completions are ignored
  • API follows the same tool style as existing MCP features

This design keeps the implementation simple and aligned with the current repo structure.


Motivation

Many learners preparing for interviews benefit from:

✔ measurable progress
✔ consistent daily practice
✔ structured learning goals

This feature turns InterviewReady into a guided learning companion rather than just a content source.


Backwards Compatibility

  • No breaking changes
  • Existing tools continue working normally
  • New features are opt-in
  • Storage is isolated

Documentation

README has been updated to include:

✔ environment variable setup
✔ tool descriptions
✔ usage examples
✔ MCP configuration details


Status

  • Tools implemented
  • Persistence added
  • README updated
  • Tested via MCP client
  • Follows project conventions

Feedback Welcome

This PR is intentionally lightweight and extendable — happy to iterate based on reviewer feedback

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant