io.github.ashmitrrr/dsa-tracker-mcp-server
Track DSA/LeetCode practice with spaced repetition, ships with NeetCode 150.
Open source Open in the app JSON README (API)
About
Track DSA/LeetCode practice with spaced repetition, ships with NeetCode 150.
Details
- Kind
- MCP servers
- Topic
- No topic detected
- Publisher
- ashmitrrr
- Origin
- official
- Category
- ferramentas
- Transport
- local
- Version
- 1.0.1
- Stars
- 1
- Forks
- 1
- Last push
- 2026-06-15T00:21:29Z
- Repository state
- ativo
- Language
- Python
- License
- MIT
- Added
- 2026-08-29 03:02:26
- Updated
- 2026-08-29 03:02:26
- Origin id
io.github.ashmitrrr/dsa-tracker-mcp-server
README
# dsa-tracker-mcp
mcp-name: io.github.ashmitrrr/dsa-tracker-mcp-server
[](https://pypi.org/project/dsa-tracker-mcp/)
This is an MCP server for tracking your progress through your DSA questions and comes loaded with a default list of NeetCode 150 (any custom DSA problem list can be switched per user) with built-in spaced repetition. Built with [FastMCP](https://github.com/modelcontextprotocol/python-sdk) and SQLite.
Talk to it naturally from Claude: "what should I work on next", "log that I solved Two Sum, confidence 4, took 12 minutes", "how's my progress", "show me my history on Contains Duplicate".
## Features
- **Spaced repetition** — problems you struggle with come back sooner, problems you nail come back later. Schedule is based on how you rated each attempt (gave up / struggled / solved) and your confidence (1-5).
- **List-agnostic** — ships with the full NeetCode 150 (150 problems, 18 categories) but can load any custom problem list via a JSON file.
- **Fuzzy matching** — log an attempt with a loosely-typed problem name ("two sum", "contains dupe") and it'll match the right problem.
- **Stats & streaks** — solved counts, per-category breakdown, daily streak, total time spent.
## Tools
| Tool | Description |
|---|---|
| `log_attempt` | Log an attempt at a problem (status, confidence 1-5, time spent). Schedules the next review. |
| `get_next_problem` | Get what to work on next: an overdue review, or the next new problem in order. Optional category filter. |
| `get_stats` | Overall progress summary — solved counts, per-category breakdown, streak, total time. |
| `search_problems` | Search/filter problems by name, category, difficulty, or status. |
| `get_problem_history` | All logged attempts for a given problem, chronological. |
## Resources
- `dsa://progress` — current progress snapshot
- `dsa://problem-list` — full list of tracked problems
## Prompts
- `daily_review` — generates a daily review session based on what's due
- `explain_pattern(category)` — explains the core pattern/approach for a given category
## Installation
dsa-tracker-mcp is published on [PyPI](https://pypi.org/project/dsa-tracker-mcp/), no manual cloning or virtual environments needed. The recommended way to run it is with [uv](https://docs.astral.sh/uv/), which downloads and runs the package on demand.
### Claude Desktop
Add to your `claude_desktop_config.json` (Settings → Developer → Edit Config):
```json
{
"mcpServers": {
"dsa-tracker": {
"command": "uvx",
"args": ["dsa-tracker-mcp"]
}
}
}
```
Restart Claude Desktop completely after saving.
### Alternative: pip install
If you'd rather install it directly:
```bash
pip install dsa-tracker-mcp
```
Then point your config at the installed console script:
```json
{
"mcpServers": {
"dsa-tracker": {
"command": "dsa-tracker-mcp"
}
}
}
```
### From source
```bash
git clone https://github.com/ashmitrrr/dsa-tracker-mcp-server.git
cd dsa-tracker-mcp-server
python3 -m venv .venv
source .venv/bin/activate # on Windows: .venv\Scripts\activate
pip install -e .
```
## Environment variables (optional)
| Variable | Default | Description |
|---|---|---|
| `DSA_TRACKER_DB` | `~/.dsa_tracker_mcp/progress.db` | Path to the SQLite database |
| `DSA_TRACKER_PROBLEMS_FILE` | (none, uses built-in NeetCode 150) | Path to a JSON file with a custom problem list |
To set these with `uvx`, add an `env` block to your config:
```json
{
"mcpServers": {
"dsa-tracker": {
"command": "uvx",
"args": ["dsa-tracker-mcp"],
"env": {
"DSA_TRACKER_PROBLEMS_FILE": "/absolute/path/to/my-problems.json"
}
}
}
}
```
### Custom problem list format
```json
[
{
"name": "Two Sum",
"category": "Arrays & Hashing",
"difficulty": "Easy",
"url": "https://leetcode.com/problems/two-sum/"
}
]
```
`url` and `difficulty` are optional and will be auto-filled where possible. `order_index` is assigned automatically based on list order.
## Spaced repetition logic
| Outcome | Next review |
|---|---|
| Gave up | 1 day |
| Struggled, confidence ≤ 2 | 2 days |
| Struggled, confidence ≥ 3 | 4 days |
| Solved, confidence ≤ 3 | 7 days |
| Solved, confidence ≥ 4 | 21 days |
`get_next_problem` prioritizes overdue reviews before suggesting new problems.
## Example prompts
- "What should I work on next?"
- "I just solved Valid Anagram, confidence 5, took 6 minutes, log it"
- "How's my progress on Trees?"
- "Show me my history on Two Sum"
- "Give me a daily review"
## License
MIT — see [LICENSE](LICENSE).