关于 dsa-tracker-mcp-server
dsa-tracker-mcp-server 是用于记录和复习 DSA 题目练习的 MCP 服务。它默认包含 NeetCode 150,支持自定义题单,并根据作答结果和信心度安排复习。
主要功能
- 01记录尝试结果和信心度
- 02安排间隔复习
- 03使用 NeetCode 150 或自定义题单
- 04匹配非精确输入的题目名称
- 05查看进度、连续记录和历史
适用场景
- 01为下一次学习挑选题目
- 02记录解题结果和耗时
- 03按类别或题目查看进度
MCP 相关
提供用于记录尝试、选择下一题、搜索题目以及查看统计和历史的 MCP 工具。还提供进度和题单资源,以及每日复习和模式讲解提示词。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
uvx dsa-tracker-mcpDSA_TRACKER_DBPath to the SQLite database file (default: ~/.dsa_tracker_mcp/progress.db)DSA_TRACKER_PROBLEMS_FILEPath to a JSON file with a custom problem list (default: uses built-in NeetCode 150)本地服务需要在你的电脑上安装运行环境(如 Node.js 18+)。各客户端的配置文件位置不同,请参考客户端文档。
工具
本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。
详细介绍
dsa-tracker-mcp
mcp-name: io.github.ashmitrrr/dsa-tracker-mcp-server
这是一个用于跟踪你解决 DSA 题目进度的 MCP 服务,内置默认题目列表 NeetCode 150(每位用户都可以切换为自定义 DSA 题目列表),并提供内置的间隔重复功能。基于 FastMCP 和 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,无需手动克隆或创建虚拟环境。推荐使用 uv 运行,它会按需下载并运行此软件包。
Claude Desktop
将以下内容添加到 claude_desktop_config.json(Settings → Developer → Edit Config):
{
"mcpServers": {
"dsa-tracker": {
"command": "uvx",
"args": ["dsa-tracker-mcp"]
}
}
}
保存后,完全退出并重启 Claude Desktop。
替代方式:pip install
如果你更希望直接安装:
pip install dsa-tracker-mcp
然后将配置指向已安装的控制台脚本:
{
"mcpServers": {
"dsa-tracker": {
"command": "dsa-tracker-mcp"
}
}
}
从源代码安装
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 .
环境变量(可选)
| 变量 | 默认值 | 描述 |
|---|---|---|
DSA_TRACKER_DB | ~/.dsa_tracker_mcp/progress.db | SQLite 数据库路径 |
DSA_TRACKER_PROBLEMS_FILE | (无,使用内置 NeetCode 150) | 自定义题目列表 JSON 文件的路径 |
要通过 uvx 设置这些变量,请在配置中添加 env 块:
{
"mcpServers": {
"dsa-tracker": {
"command": "uvx",
"args": ["dsa-tracker-mcp"],
"env": {
"DSA_TRACKER_PROBLEMS_FILE": "/absolute/path/to/my-problems.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。
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。