dsa-tracker-mcp-server について
dsa-tracker-mcp-serverは、DSA問題の学習記録と復習を管理するMCPサーバーです。NeetCode 150を標準搭載し、独自の問題リストにも対応、解答結果と自信度に基づいて復習を予定します。
主な機能
- 01解答結果と自信度を記録
- 02間隔反復の復習を予定
- 03NeetCode 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 の使用を推奨します。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 サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。