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
Metadata
Release files for task-tracker-mcp 0.1.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | |
|---|---|---|---|---|
| task_tracker_mcp-0.1.0.tar.gz | 12.8 kB | Without provenance | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| task_tracker_mcp-0.1.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 17.0 kB
Release files / task_tracker_mcp-0.1.0.tar.gz
| Download URL | task_tracker_mcp-0.1.0.tar.gz |
|---|---|
| Size | 12.8 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
6c1c5f33ff7d76564f0ddea02349673e207dd2681dea924d6c28b2c450f67a26
|
|
BLAKE2b-256 checksum How to use checksums |
59022a894077bd962fb78a30d566726d959c74e6fcc12c20ca1ef43c55b69e7e
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is 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}
|
Release files / task_tracker_mcp-0.1.0-py3-none-any.whl
| Download URL | task_tracker_mcp-0.1.0-py3-none-any.whl |
|---|---|
| Size | 4.3 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
9cdbdcbf06cfa21cf6aa113b0d8a4f61c596f5b8cbaf9e40829bf1d4715b4a0c
|
|
BLAKE2b-256 checksum How to use checksums |
7641a1dad5220d332452d1acb624c13df6f63868eb2e0c2a82579d6354a558bf
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is 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}
|
Security for task-tracker-mcp 0.1.0
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.