内容
# dsa-tracker-mcp
mcp-name: io.github.ashmitrrr/dsa-tracker-mcp-server
[](https://pypi.org/project/dsa-tracker-mcp/)
这是一个用于跟踪 DSA 问题进展的 MCP 服务器,预装了 NeetCode 150 的默认问题列表(用户可以根据需要切换到自定义问题列表),并内置了间隔重复记忆功能。 使用 [FastMCP](https://github.com/modelcontextprotocol/python-sdk) 和 SQLite 构建。
与 Claude 对话: “我接下来应该学习什么”,“记录我已经解决了 Two Sum,信心 4,花费 12 分钟”,“我的进度怎么样”,“显示我在 Contains Duplicate 的历史记录”。
## 功能
- **间隔重复记忆** — 您难以解决的问题会更早地出现,而您已经掌握的问题会更晚地出现。时间表基于您每次尝试的评分(放弃 / 遇到困难 / 解决)和您的信心(1-5)。
- **列表无关** — 默认包含完整的 NeetCode 150(150 个问题,18 个类别),但可以通过 JSON 文件加载任何自定义问题列表。
- **模糊匹配** — 使用宽松类型的问题名称记录尝试(“two sum”,“contains dupe”),它将匹配正确的问题。
- **统计和连胜** — 已解决计数,按类别划分,日常连胜,总时间花费。
## 工具
| 工具 | 描述 |
|---|---|
| `log_attempt` | 记录一个问题的尝试(状态,信心 1-5,花费时间)。安排下一次审查。 |
| `get_next_problem` | 获取下一个要学习的题目:逾期的复习或下一个新的题目。可选类别筛选。 |
| `get_stats` | 总体进度摘要 — 已解决计数,按类别划分,连胜,总时间。 |
| `search_problems` | 按名称,类别,难度或状态搜索/筛选问题。 |
| `get_problem_history` | 给定问题的所有已记录尝试,按时间顺序排列。 |
## 资源
- `dsa://progress` — 当前进度快照
- `dsa://problem-list` — 跟踪问题的完整列表
## 提示
- `daily_review` — 根据到期情况生成每日复习会话
- `explain_pattern(category)` — 解释给定类别的核心模式/方法
## 安装
dsa-tracker-mcp 已发布到 [PyPI](https://pypi.org/project/dsa-tracker-mcp/),无需手动克隆或虚拟环境。 推荐使用 [uv](https://docs.astral.sh/uv/) 运行,它按需下载并运行软件包。
### Claude 桌面版
将以下内容添加到您的 `claude_desktop_config.json`(设置 → 开发者 → 编辑配置):
```json
{
"mcpServers": {
"dsa-tracker": {
"command": "uvx",
"args": ["dsa-tracker-mcp"]
}
}
}
```
保存后完全重启 Claude 桌面版。
### 替代:pip 安装
如果您想直接安装:
```bash
pip install dsa-tracker-mcp
```
然后将您的配置指向已安装的控制台脚本:
```json
{
"mcpServers": {
"dsa-tracker": {
"command": "dsa-tracker-mcp"
}
}
}
```
### 从源码
```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 # 在 Windows 上:.venv\Scripts\activate
pip install -e .
```
## 环境变量(可选)
| 变量 | 默认值 | 描述 |
|---|---|---|
| `DSA_TRACKER_DB` | `~/.dsa_tracker_mcp/progress.db` | SQLite 数据库的路径 |
| `DSA_TRACKER_PROBLEMS_FILE` | (无,使用内置 NeetCode 150) | 具有自定义问题列表的 JSON 文件的路径 |
使用 `uvx` 设置这些环境变量,在您的配置中添加一个 `env` 块:
```json
{
"mcpServers": {
"dsa-tracker": {
"command": "uvx",
"args": ["dsa-tracker-mcp"],
"env": {
"DSA_TRACKER_PROBLEMS_FILE": "/absolute/path/to/my-problems.json"
}
}
}
}
```
### 自定义问题列表格式
```json
[
{
"name": "Two Sum",
"category": "Arrays & Hashing",
"difficulty": "Easy",
"url": "https://leetcode.com/problems/two-sum/"
}
]
```
`url` 和 `difficulty` 是可选的,并且会在可能的情况下自动填充。 `order_index` 根据列表顺序自动分配。
## 间隔重复记忆逻辑
| 结果 | 下一次复习 |
|---|---|
| 放弃 | 1 天 |
| 遇到困难,信心 ≤ 2 | 2 天 |
| 遇到困难,信心 ≥ 3 | 4 天 |
| 解决,信心 ≤ 3 | 7 天 |
| 解决,信心 ≥ 4 | 21 天 |
`get_next_problem` 在建议新问题之前优先处理逾期的复习。
## 示例提示
- “我接下来应该学习什么?”
- “我刚刚解决了 Valid Anagram,信心 5,花费 6 分钟,记录它”
- “我在 Trees 上的进度怎么样?”
- “显示我在 Two Sum 的历史记录”
- “给我一个每日复习”
## 许可证
MIT — 请参阅 [LICENSE](LICENSE)。