Skip to main content

MCP server that extracts main tasks from git commit history — filters noise, groups by scope, surfaces only features and significant fixes.

Project description

task-tracker-mcp

An MCP server for Claude Code that extracts main tasks from your git commit history.

Instead of listing every commit, it filters out noise (merges, tests, docs, config, linting, typos), groups related commits by scope, and surfaces only the features and significant fixes.

Example

15 commits in your repo:

feat(auth): add JWT middleware for protected routes
feat(auth): add login page component
feat(auth): add password reset flow
fix(auth): handle expired refresh tokens
test: add unit tests for auth service
fix: fix typo in login error message
docs: update README with auth setup instructions
chore: update eslint config
style: format auth components with prettier
fix: fix import path in auth middleware
test: add integration tests for login endpoint
chore(deps): bump jsonwebtoken from 8.5.1 to 9.0.0
style: fix linting errors in auth module
ci: add auth service to GitHub Actions workflow
Merge branch 'main' into feature/auth

Ask Claude Code: "give tasks 15"

Output:

## my-project

- Add password reset flow

12 noise commits filtered. 3 auth features grouped into 1 task.

Install

From PyPI (one command)

claude mcp add task-tracker -- uvx task-tracker-mcp

From source

git clone https://github.com/y4du-em/task-tracker-mcp.git
cd task-tracker-mcp
claude mcp add task-tracker -- uv run --with mcp --with pydantic src/task_tracker_mcp/server.py

Verify

claude mcp list

Usage

Inside Claude Code, in any git repository:

give tasks today
give tasks last week
give tasks this month
give tasks 20
give tasks today from main
give tasks last week by author "john"

Supported time ranges

Query What it fetches
today Since midnight today
yesterday Since midnight yesterday
this week Since Monday of current week
last week Last 7 days
this month Since 1st of current month
last month Since 1st of previous month
last 3 days Last 3 days
last 2 weeks Last 14 days

Parameters

Parameter Description
count Number of recent commits (e.g., 15)
time_range Time-based filter (e.g., "today")
branch Branch to read from (default: current)
author Filter by commit author
path Path to git repo (default: cwd)

What Gets Filtered

Automatically skipped (not even parsed):

  • Merge commits (Merge branch, Merge pull request)
  • Version bumps (bump v1.2.3, release v2.0)
  • Dependency bot commits (Bump axios from 0.21 to 0.27)
  • WIP, fixup, squash commits
  • Empty messages

Classified as noise (parsed but filtered out):

  • Tests: test: add unit tests, add integration tests
  • Docs: docs: update README, update changelog
  • Style: style: format code, fix linting errors
  • Config: chore: update eslint config, update .env
  • CI/CD: ci: update GitHub Actions, add Dockerfile
  • Trivial: fix: fix typo, fix import path
  • Data entry: feat(values): add values, add uat data

Kept as tasks:

  • Features: feat(auth): add JWT middleware
  • Significant fixes: fix(auth): handle expired tokens, fix: XSS vulnerability
  • Breaking changes: feat!: redesign API response format

How Grouping Works

Commits sharing the same scope (the part in parentheses) are grouped:

feat(auth): add login page          ─┐
feat(auth): add JWT middleware        ├─→ 1 task: "Add JWT middleware"
fix(auth): handle expired tokens     ─┘
feat(dashboard): add revenue chart   ───→ 1 task: "Add revenue chart"

When a group has both features and fixes, the feature description is used as the representative.

For commits without explicit scope, the server infers scope from keywords in the description (auth, payment, dashboard, search, etc.).

Commit Formats Supported

Format Example
Conventional feat: add user authentication
Scoped fix(auth): resolve token expiry bug
Breaking feat!: redesign API response format
Tagged [Auth] Add JWT refresh flow
Plain text Add dark mode support
Emoji ✨ Add new search feature
Gitmoji :bug: Fix memory leak in worker
Ticket prefix JIRA-123: Implement OAuth2 flow

Development

git clone https://github.com/y4du-em/task-tracker-mcp.git
cd task-tracker-mcp
pip install -e .
pytest tests/

Uninstall

claude mcp remove task-tracker
pip uninstall task-tracker-mcp

License

MIT

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

task_tracker_mcp-0.1.0.tar.gz (12.8 kB view details)

Uploaded Source

Built Distribution

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

task_tracker_mcp-0.1.0-py3-none-any.whl (4.3 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: task_tracker_mcp-0.1.0.tar.gz
  • Upload date:
  • Size: 12.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.10.8 {"installer":{"name":"uv","version":"0.10.8","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

File hashes

Hashes for task_tracker_mcp-0.1.0.tar.gz
Algorithm Hash digest
SHA256 6c1c5f33ff7d76564f0ddea02349673e207dd2681dea924d6c28b2c450f67a26
MD5 9cc9d7dcbe3b68e20164d955c107034e
BLAKE2b-256 59022a894077bd962fb78a30d566726d959c74e6fcc12c20ca1ef43c55b69e7e

See more details on using hashes here.

File details

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

File metadata

  • Download URL: task_tracker_mcp-0.1.0-py3-none-any.whl
  • Upload date:
  • Size: 4.3 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.10.8 {"installer":{"name":"uv","version":"0.10.8","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

File hashes

Hashes for task_tracker_mcp-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 9cdbdcbf06cfa21cf6aa113b0d8a4f61c596f5b8cbaf9e40829bf1d4715b4a0c
MD5 f1855e608e076098a60aa50de911fe09
BLAKE2b-256 7641a1dad5220d332452d1acb624c13df6f63868eb2e0c2a82579d6354a558bf

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