🚀 SQLite MCP Tracker Server
Model Context Protocol (MCP)サーバーです。標準化されたツールとリソースを通じて、SQLiteベースのタスクとプロジェクトの追跡機能を提供します。
🚀 クイックスタート
このサーバーは、ソフトウェア開発ライフサイクル(SDLC)の追跡や管理を行うための機能を備えています。以下の手順でサーバーを起動し、データベースを初期化することができます。
✨ 主な機能
- SDLCエンティティ管理:ソフトウェア開発ライフサイクル全体の追跡
- エピック、ユーザーストーリー、タスク、バグ、テストケース:完全なSDLCワークフローのサポート
- ウィキシステム:エンティティへのリンクと256文字のタイトル制限付きのプロジェクトドキュメント用の統合ウィキ
- コメントシステム:すべてのエンティティに対する利害関係者のフィードバックとコラボレーション。コメント数の表示も可能
- エピックの依存関係:エピックは他のエピックに依存することができます(ユーザーストーリーの依存関係と同様)
- ワークフローの強制:適切な利害関係者の所有権とステータスの遷移
- 自動ステータス変更:クローズされたストーリーにバグが発生すると、そのストーリーが再オープンされます。ストーリーがQAに移行すると、そのエピックが再オープンされます
- 監査トレイル:所有権とステータスの遷移の追跡
- データ検証:包括的な入力検証と外部キー制約のチェック
- ブールフィールドの処理:アーカイブフィールドの適切なブール変換(true/false で 0/1 ではない)
- HTTP API:データベースの初期化、SDLCエンティティ、およびウィキページのRESTエンドポイント
- Web UI:SDLCトラッカーとウィキセクションを表示するタブ付きダッシュボードインターフェイス。エンティティの数が表示されます
- エラーハンドリング:無効な操作や制約違反に対する明確なエラーメッセージ
- SQLiteバックエンド:効率的な操作のためにbetter-sqlite3を使用したSQLite
📦 インストール
npm install
💻 使用例
基本的な使用法
サーバーの起動
npm start
または、自動再起動を伴う開発用モードでは:
npm run dev
データベースの初期化
他のツールを使用する前に、データベースを初期化する必要があります。2つのオプションがあります。
オプション1: MCPツール(AIエージェントに推奨)
initialize ツールを呼び出し、現在の作業ディレクトリのパスを指定します(例: "/Users/username/project")
- ツールはそのディレクトリに
.project_tracker.db を作成し、必要なすべてのテーブルを設定します
オプション2: HTTP API(Webアプリケーション用)
- サーバーを起動します:
npm start
POST /api/initialize を呼び出し、以下のようにリクエストを送信します: {"currentProjectLocation": "/path/to/project"}
- APIは
.project_tracker.db を作成し、データベース接続を確立します
高度な使用法
MCPクライアントへの接続
このサーバーはstdioトランスポートを使用するため、MCP互換のクライアントに接続できます。以下は、人気のあるAIコーディングエージェントの設定手順です。
Claude Code
claude mcp add --transport stdio my-tracker "npm start"
OpenCode
OpenCodeのMCP設定に以下を追加します:
{
"mcpServers": {
"sdlc-tracker": {
"command": "npm",
"args": ["start"],
"cwd": "/path/to/your/project"
}
}
}
OpenAI Codex
~/.codex/config.toml に以下を追加します:
[[mcp]]
name = "sdlc-tracker"
command = "npm"
args = ["start"]
cwd = "/path/to/your/project"
Windsurf
WindsurfのMCP設定でstdioトランスポートとコマンド npm start を設定します。
Cursor
- Cursorの設定を開きます
- MCPセクションに移動します
- 新しいサーバーを追加し、以下の設定を行います:
- トランスポート: stdio
- コマンド:
npm start
- 作業ディレクトリ:
/path/to/your/project
VS Code
- MCP拡張機能("MCP" または "Claude Code" など)をインストールします
- stdioトランスポートで設定します
- コマンドを
npm start に設定します
Web UIへのアクセス
サーバーはWebベースのダッシュボードインターフェイスも提供します。
npm start
Web UIの機能:
- タブ付きインターフェイス: 別々のSDLCトラッカーとウィキセクション
- ダッシュボードの概要: すべてのSDLCエンティティの視覚的な表現。明確なエンティティ識別が可能
- エンティティ番号の表示: すべてのカードにエンティティの種類とIDが表示されます(例: "User Story #5: Implement authentication")
- ウィキの閲覧: メタデータとタグ付きのカードベースのウィキページ表示
- ウィキのアーカイブ: 確認ダイアログとオプションの理由追跡付きでウィキページをアーカイブできます
- 依存関係の可視化: エピックとユーザーストーリーのクリック可能な依存関係リンク
- コメント数の表示: すべてのエンティティにコメント数が表示されます
- インタラクティブなナビゲーション: エンティティをクリックして詳細情報を表示できます
- ウィキページのレンダリング: リンクされたSDLCエンティティ付きの完全なMarkdownサポート
- リアルタイム更新: データの変更が自動的にリフレッシュされます
その他のMCP互換クライアント
- Cline: 設定でstdioトランスポートを使用して構成します
- Roo Code:
npm start コマンドでサーバー構成を追加します
- Continue: stdioトランスポートでconfig.jsonに追加します
- Zed: MCP設定パネルで構成します
すべてのクライアントで、SDLCトラッカーデータベースを初期化するプロジェクトディレクトリからコマンドを実行していることを確認してください。
📚 ドキュメント
利用可能なツール
データベース管理
initialize: 指定されたプロジェクトディレクトリにSDLCトラッカーデータベースを初期化します。現在の作業ディレクトリのパスを指定する必要があります(例: "/Users/username/project")
エピック管理
create_epics: タイトル、説明、およびプロダクトマネージャーの割り当てを指定して、複数のエピックを作成します
list_epics: オプションのステータスフィルターでエピックをリストします(デフォルトではアーカイブされたものを除外)
dependencies_resolved: 依存関係の解決状態でエピックをフィルターします(true/false)
update_epic: エピックのタイトル、説明、ステータス、割り当て、およびフェーズを更新します
archive_epic: エピックをアーカイブします(プロダクトマネージャーのみ)
ユーザーストーリー管理
create_user_stories: エピックへの関連付け、受け入れ基準、およびストーリーポイントを指定して、複数のユーザーストーリーを作成します
list_user_stories: エピック、ステータス、または担当者でフィルターしてユーザーストーリーをリストします(デフォルトではアーカイブされたものを除外)
dependencies_resolved: 依存関係の解決状態でユーザーストーリーをフィルターします(true/false)
update_user_story_content: ユーザーストーリーのタイトル、説明、およびストーリーポイントを更新します(すべての利害関係者が可能)
update_user_story_acceptance_criteria: ユーザーストーリーの受け入れ基準を更新します(プロダクトマネージャーのみ)
archive_user_story: ユーザーストーリーをアーカイブします(プロダクトマネージャーのみ)
タスク管理
create_tasks: ユーザーストーリーへの関連付け、時間見積もり、およびアーキテクト/開発者の割り当てを指定して、複数のタスクを作成します
list_tasks: ユーザーストーリー、ステータス、担当者、および依存関係でオプションのフィルターを指定してタスクをリストします
depends_on: 特定のタスクIDに依存するタスクをフィルターします
depended_by: 特定のタスクIDに依存されるタスクをフィルターします
has_dependencies: 依存関係の有無でタスクをフィルターします(true/false)
dependencies_resolved: 依存関係の解決状態でタスクをフィルターします(true/false)
バグ追跡
create_bugs: 深刻度レベル、報告者、および担当者の情報を指定して、複数のバグレポートを作成します
list_bugs: ステータス、深刻度、報告者、担当者でオプションのフィルターを指定してバグをリストします
テストケース管理
create_test_cases: 事前条件、手順、期待結果、およびテスター/プロダクトマネージャーの割り当てを指定して、複数のテストケースを作成します
list_test_cases: ステータス、担当者でオプションのフィルターを指定してテストケースをリストします
ワークフロー管理
update_entity_status: すべてのSDLCエンティティのステータスおよび/または割り当てを更新します。監査トレイルの記録とインテリジェントなワークフローの提案があります
manage_story_dependencies: 複数のユーザーストーリーの依存関係を一括で追加または削除します
manage_epic_dependencies: 複数のエピックの依存関係を一括で追加または削除します
manage_task_dependencies: 複数のタスクの依存関係を一括で追加または削除します(タスクは同じユーザーストーリーに属している必要があります)
- 自動ステータス変更: クローズされたストーリーに作成されたバグは自動的にそのストーリーをQAに再オープンし、QAに移動するストーリーは自動的にその親エピックをクローズからオープンに再オープンします
インテリジェントなワークフローの提案
システムは、SDLC全体にわたってインテリジェントなワークフローのガイダンスを提供します。
- タスクのクローズインテリジェンス: タスクが「クローズ」ステータスに移動すると、システムは自動的にユーザーストーリー内のすべてのタスクがクローズされたかどうかを確認します
- ユーザーストーリーの進捗: すべてのタスクがクローズされ、ユーザーストーリーがまだQA/UAT/クローズステータスでない場合、システムはユーザーストーリーを「QA」ステータスに移動することを提案します
- タスクの依存関係インテリジェンス: タスクがクローズされると、システムは依存するタスクをチェックし、すべての依存関係が満たされている場合、それらを「進行中」に移動することを提案します
- バグのステータスインテリジェンス: バグのステータスが変更されると、システムはターゲットとなる提案を提供します:
- 「修正済み」のバグ: QA検証を提案します
- 「クローズ」のバグ: 回帰テストが存在するかどうかを確認し、存在しない場合は作成を提案します
- 「オープン」のバグ: テスターに割り当てられている場合、開発者への再割り当てを提案します
- 自動ステータス変更: 提案に加えて、システムは自動的にワークフローの遷移を処理します:
- クローズされたストーリーに作成されたバグは自動的にそのストーリーを「QA」ステータスに再オープンします
- 「QA」に移動するストーリーは自動的にその親エピックを「クローズ」から「オープン」に再オープンします
- ユーザーストーリーの検証: 受け入れ基準とテストケースがない場合、ユーザーストーリーを「進行中」に移動することを防止します
- 積極的なガイダンス: チームが手動で追跡することなく、適切なSDLCワークフローを維持するのに役立ちます
応答例:
タスクの依存関係インテリジェンス:
{
"success": true,
"entity_type": "task",
"entity_id": 5,
"old_status": "Review",
"new_status": "Closed",
"workflow_suggestions": [
{
"entity_type": "task",
"entity_id": 7,
"suggested_action": "start_task",
"reason": "All dependencies for task \"Implement API\" are now completed",
"suggested_status": "In Progress"
}
]
}
バグのステータスインテリジェンス:
{
"success": true,
"entity_type": "bug",
"entity_id": 3,
"old_status": "In Progress",
"new_status": "Fixed",
"workflow_suggestions": [
{
"entity_type": "bug",
"entity_id": 3,
"suggested_action": "qa_verification",
"reason": "Bug has been marked as fixed and should be verified by QA",
"suggested_status": "In Progress"
}
]
}
ユーザーストーリーの検証:
{
"content": ["Please ask product manager to add acceptance criteria"],
"structuredContent": {
"success": false,
"entity_type": "user_story",
"entity_id": 1,
"error": "Please ask product manager to add acceptance criteria"
},
"isError": true
}
コメントのサポート
create_comments: すべての利害関係者がSDLCエンティティにコメントを追加できます
get_comments: 特定のSDLCエンティティのコメントを取得します
ウィキ管理
create_wiki_page: Markdownコンテンツ、タグ、およびカテゴリ分類を指定してウィキページを作成します(タイトルは256文字以内)
update_wiki_page: ウィキページのコンテンツ、メタデータ、およびタグを更新します(タイトルは256文字以内)
list_wiki_pages: カテゴリ、ステータス、タグ、または検索用語でフィルターを指定してウィキページをリストします
get_wiki_page: リンクされたエンティティ付きの詳細なウィキページコンテンツを取得します
manage_wiki_links: ウィキページとSDLCエンティティの間のリンクを追加または削除します
archive_wiki_page: ウィキページをアーカイブします(アーカイブステータスに移動)
知識グラフの生成
get_knowledge_graph: 初期化されたプロジェクトの知識グラフを生成して返します。Python、JavaScript/TypeScript、およびJavaファイルを分析して、インポート、クラス、関数、および依存関係を抽出します
エラーハンドリングと検証
サーバーには包括的なエラーハンドリングとデータ検証が含まれています。
入力検証
- 必須フィールド: すべての必須フィールドはZodスキーマを使用して検証されます
- データ型: すべての入力に対して適切な型チェックが行われます
- 列挙値: 利害関係者の役割とステータス値は厳密に検証されます
外部キー検証
- 参照チェック: すべての外部キー参照(epic_id、user_story_id、task_id)はデータベース操作の前に検証されます
- 明確なエラーメッセージ: 無効な参照は特定のエラーメッセージを返します(例: "Invalid epic IDs: 999")
- 制約の強制: データベース制約がチェックされ、違反が適切に処理されます
エラー応答形式
- 一貫した構造: すべてのツールは明確なメッセージを含む構造化されたエラー応答を返します
- 部分的な成功: 作成ツールは単一の応答で成功した操作と失敗した操作の両方を返すことができます
- 検証エラー: 入力検証の失敗には詳細なフィールドレベルのエラー情報が含まれます
エラー応答の例
"Invalid epic IDs: 999"
{
"code": "too_small",
"minimum": 1,
"message": "Title is required"
}
"FOREIGN KEY constraint failed"
HTTP API
サーバーはWebアプリケーションと直接のHTTPアクセスのためのREST APIも提供します。
エンドポイント
GET /api/status: データベースの初期化ステータスとサーバー情報を取得します
POST /api/initialize: プロジェクトの場所を指定してデータベースを初期化します
- リクエスト:
{"currentProjectLocation": "/path/to/project"}
- レスポンス: データベース接続ステータス
GET /api/epics: すべてのエピックをコメント数と依存関係とともにリストします
GET /api/epic/:id: 特定のエピックの詳細を取得します
GET /api/story/:id: 特定のユーザーストーリーの詳細を取得します
GET /api/task/:id: 特定のタスクの詳細を取得します
GET /api/bug/:id: 特定のバグの詳細を取得します
GET /api/test-case/:id: 特定のテストケースの詳細を取得します
GET /api/comments/:entityType/:entityId: 任意のエンティティのコメントを取得します
GET /api/wiki: すべてのウィキページをメタデータとタグとともにリストします
GET /api/wiki/:id: 完全なコンテンツとリンクされたエンティティ付きの特定のウィキページを取得します
GET /api/wiki/search?q=term: タイトルまたはコンテンツでウィキページを検索します
GET /api/get-knowledge-graph: 初期化されたプロジェクトの知識グラフデータを生成して取得します
- レスポンス: ツリー構造とファイル分析を含むJSONオブジェクト
機能
- コメント数: すべてのエンティティに
comment_count フィールドが含まれます
- 依存関係情報: エピックとユーザーストーリーに依存関係の配列が含まれます
- ブールフィールド: アーカイブフィールドに適切なブール値(true/false)が使用されます
- JSON応答: すべてのエンドポイントは構造化されたJSONデータを返します
利用可能なリソース
database_schema: データベーススキーマとテーブル構造に関する情報を提供します
知識グラフ
知識グラフツールは、プロジェクトのコードベースを分析して、コードベースの構造化された表現を作成します。
サポートされる言語
- Python (.py): インポート、クラス、関数、および関数呼び出しを抽出します
- JavaScript/TypeScript (.js, .ts, .jsx, .tsx): ES6/CommonJSのインポート、クラス、関数、および呼び出しを抽出します
- Java (.java): インポート、クラス、メソッド、およびメソッド呼び出しを抽出します
出力形式
知識グラフはプロジェクトのルートに .kg.json として保存され、以下の内容を含みます:
{
"t": "Project tree structure as text",
"f": [
{
"f": "relative/file/path",
"i": ["import1", "import2"],
"c": ["Class1", "Class2"],
"fn": ["function1", "function2"],
"ca": ["call1", "call2"]
}
]
}
使用方法
- ビルドディレクトリ、node_modules、および生成されたファイルは自動的に除外されます
- 他のツールと同様に、プロジェクトの初期化が必要です
- ファイルを保存せずに実行時に知識グラフを生成します
- コード分析、依存関係の可視化、およびプロジェクトの理解に使用できます
データベーススキーマ
initialize ツールは、指定されたディレクトリにSQLiteデータベースファイル .project_tracker.db を作成し、完全なSDLCスキーマを持ちます。
核心的なSDLCエンティティ
エピックテーブル
id: 主キー(自動インクリメント)
title: エピックのタイトル(必須)
description: エピックの説明(オプション)
status: エピックのステータス ('New', 'Open', 'Closed')
created_by: 作成者の利害関係者(列挙型)
owner: 現在の所有者 ('product')
assigned_to: 割り当て先 ('product' のみ)
created_at/updated_at: タイムスタンプ
closed_at: クローズのタイムスタンプ
archived: ソフト削除のためのブールフラグ
dependencies: このエピックが依存するエピックIDの配列
dependent_epics: このエピックに依存するエピックIDの配列
dependencies_resolved: すべての依存関係が 'Closed' であることを示すブール値
comment_count: このエピックのコメント数
ユーザーストーリーテーブル
id: 主キー(自動インクリメント)
epic_id: エピックへの外部キー(オプション)
title: ユーザーストーリーのタイトル(必須)
description: ユーザーストーリーの説明(オプション)
acceptance_criteria: 受け入れ基準(オプション)
status: ステータス ('New', 'In Progress', 'QA', 'UAT', 'Closed')
created_by/current_owner/assigned_to: 利害関係者の割り当て(列挙型)
story_points: ストーリーポイントの見積もり(オプション)
phase: フェーズ名(オプション、null可)
phase_status: フェーズの完了ステータス(オプション、デフォルトは 'New')
created_at/updated_at/qa_at/closed_at: タイムスタンプ
archived: ソフト削除のためのブールフラグ
dependencies: このストーリーが依存するストーリーIDの配列
dependent_stories: このストーリーに依存するストーリーIDの配列
dependencies_resolved: すべての依存関係が 'Closed' であることを示すブール値
comment_count: このユーザーストーリーのコメント数
タスクテーブル
id: 主キー(自動インクリメント)
user_story_id: ユーザーストーリーへの外部キー(オプション)
title: タスクのタイトル(必須)
description: タスクの説明(オプション)
status: ステータス ('New', 'In Progress', 'Review', 'Closed')
created_by/current_owner/assigned_to: 利害関係者の割り当て ('architect', 'developer')
estimated_hours/actual_hours: 時間追跡(オプション)
phase: フェーズ名(オプション、null可)
phase_status: フェーズの完了ステータス(オプション、デフォルトは 'New')
created_at/updated_at/closed_at: タイムスタンプ
dependencies_resolved: すべての依存関係が 'Closed' であることを示すブール値
comment_count: このタスクのコメント数
バグテーブル
id: 主キー(自動インクリメント)
user_story_id/task_id: 外部キー(オプション)
title: バグのタイトル(必須)
description: バグの説明(オプション)
severity: 深刻度レベル ('Critical', 'High', 'Medium', 'Low')
status: ステータス ('Open', 'In Progress', 'Review', 'Fixed', 'Closed')
reported_by/assigned_to/created_by/current_owner: 利害関係者の割り当て(列挙型)
phase: フェーズ名(オプション、null可)
phase_status: フェーズの完了ステータス(オプション、デフォルトは 'Open')
created_at/updated_at/fixed_at/closed_at: タイムスタンプ
comment_count: このバグのコメント数
テストケーステーブル
id: 主キー(自動インクリメント)
user_story_id: ユーザーストーリーへの外部キー(オプション)
title: テストケースのタイトル(必須)
description/preconditions/steps/expected_result: テストの詳細
status: ステータス ('New', 'Passed', 'Failed')
created_by/current_owner/assigned_to: 利害関係者の割り当て ('tester', 'productmanager')
phase: フェーズ名(オプション、null可)
phase_status: フェーズの完了ステータス(オプション、デフォルトは 'New')
created_at/updated_at/last_run_at/last_run_by: タイムスタンプ
comment_count: このテストケースのコメント数
ストーリー依存関係テーブル
id: 主キー(自動インクリメント)
dependent_story_id: ユーザーストーリーへの外部キー(他のストーリーに依存するストーリー)
dependency_story_id: ユーザーストーリーへの外部キー(依存されるストーリー)
created_at: 依存関係が作成されたタイムスタンプ
created_by: 依存関係を作成した利害関係者
- 制約: 自己依存関係はなく、重複する依存関係はなく、カスケード削除が行われます
エピック依存関係テーブル
id: 主キー(自動インクリメント)
dependent_epic_id: エピックへの外部キー(他のエピックに依存するエピック)
dependency_epic_id: エピックへの外部キー(依存されるエピック)
created_at: 依存関係が作成されたタイムスタンプ
created_by: 依存関係を作成した利害関係者
- 制約: 自己依存関係はなく、重複する依存関係はなく、カスケード削除が行われます
タスク依存関係テーブル
id: 主キー(自動インクリメント)
dependent_task_id: タスクへの外部キー(他のタスクに依存するタスク)
dependency_task_id: タスクへの外部キー(依存されるタスク)
created_at: 依存関係が作成されたタイムスタンプ
created_by: 依存関係を作成した利害関係者
- 制約: 自己依存関係はなく、重複する依存関係はなく、カスケード削除が行われ、同じユーザーストーリーの検証が行われます
コメントテーブル
id: 主キー(自動インクリメント)
entity_type: エンティティの種類 ('epic', 'user_story', 'task', 'bug', 'test_case')
entity_id: エンティティへの外部キー
comment_text: コメントの内容(必須)
author: コメントの作者の利害関係者(列挙型)
created_at/updated_at: タイムスタンプ
ウィキページテーブル
id: 主キー(自動インクリメント)
title: ウィキページのタイトル(必須、一意)
content: Markdownコンテンツ(必須)
category: カテゴリ分類 ('technical', 'process', 'requirements', 'architecture', 'other')
tags: 組織化のためのタグ文字列の配列
created_by/updated_by: ページを作成/更新した利害関係者
created_at/updated_at: タイムスタンプ
ウィキリンクテーブル
id: 主キー(自動インクリメント)
wiki_page_id: ウィキページへの外部キー
entity_type: リンクされたエンティティの種類 ('epic', 'user_story', 'task', 'bug', 'test_case')
entity_id: リンクされたエンティティへの外部キー
created_at: リンクが作成されたタイムスタンプ
created_by: リンクを作成した利害関係者
監査トレイルテーブル
所有権の遷移
ステータスの遷移
- タイムスタンプとアクターを含むすべてのステータスの変更を追跡します
インデックス
- すべての外部キーと一般的にフィルターされる列にパフォーマンスインデックスがあります
- 効率的なエンティティタイプのクエリのための複合インデックス
- エンティティベースの高速フィルタリングのためのコメントエンティティインデックス
SDLCワークフロー
サーバーは、適切な利害関係者の所有権を持つ完全なソフトウェア開発ライフサイクルを実装しています。
エンティティの状態と遷移
- エピック: 新規 → オープン → クローズ(プロダクトマネージャーが所有)
- ユーザーストーリー: 新規 → 進行中 → QA → UAT → クローズ(プロダクトマネージャー → アーキテクト → 開発者 → テスター → プロダクトマネージャー)
- 検証: 受け入れ基準とテストケースがない場合、'進行中' に移動することはできません
- タスク: 新規 → 進行中 → レビュー → クローズ(アーキテクト → 開発者 → アーキテクト)
- バグ: オープン → 進行中 → レビュー → 修正済み → クローズ(任意の利害関係者が関与する可能性があります)
- 検証: 'レビュー' は '進行中' からのみ設定でき、'修正済み' に直接ジャンプすることはできません
- テストケース: 新規、合格、不合格(テスター → プロダクトマネージャー → テスター)
利害関係者
- productmanager: プロダクト管理
- programmanager: プログラム管理
- architect: ソリューションアーキテクチャ
- developer: 開発チーム
- tester: 品質保証
ストーリーの依存関係
ストーリーは、他のストーリーに依存することができ、複雑なプロジェクトの関係をモデル化することができます。
- 多対多の関係: 1つのストーリーは複数のストーリーに依存することができ、複数のストーリーが1つのストーリーに依存することができます
- 依存関係の検証: 循環依存関係と自己依存関係を防止します
- スマートな並べ替え:
list_user_stories は、依存関係が最も少ない/少ないストーリーを最初に返します
- 一括管理: 単一の操作で複数のストーリーの依存関係を追加/削除できます
- 視覚的なインジケーター: UIに依存関係の数が表示され、クリック可能なリンクがあります
エピックの依存関係
エピックは、他のエピックに依存することができ、複雑なプロジェクトの関係をモデル化することができます。
- 多対多の関係: 1つのエピックは複数のエピックに依存することができ、複数のエピックが1つのエピックに依存することができます
- 依存関係の検証: 循環依存関係と自己依存関係を防止します
- 一括管理: 単一の操作で複数のエピックの依存関係を追加/削除できます
- 視覚的なインジケーター: UIに依存関係の数が表示され、クリック可能なリンクがあります
- APIサポート: エピックの依存関係管理のための完全なREST APIサポート
タスクの依存関係
タスクは、同じユーザーストーリー内の他のタスクに依存することができ、タスクの実行順序をモデル化することができます。
- 同じユーザーストーリーの制約: タスクは同じユーザーストーリー内の他のタスクにのみ依存することができます
- 依存関係の検証: 循環依存関係、自己依存関係、およびクロスストーリーの依存関係を防止します
- 一括管理: 単一の操作で複数のタスクの依存関係を追加/削除できます
- 視覚的なインジケーター: UIに依存関係の数が表示され、クリック可能なリンクがあります
- APIサポート: タスクの依存関係管理のための完全なMCP APIサポート
依存関係の解決ステータス
すべてのリスト操作(list_epics, list_user_stories, list_tasks)には、エンティティのすべての依存関係が 'Closed' ステータスであるかどうかを示す dependencies_resolved ブールフィールドが含まれています。
- 動的な計算: エンティティをリストするときにリアルタイムで計算されます
- フィルタリングサポート: すべてのリスト操作は
dependencies_resolved フィルターパラメーターをサポートします
- ワークフローの可視性: チームが作業の準備ができているエンティティを識別するのに役立ちます
- API統合: MCPツールとREST APIエンドポイントの両方で利用可能です
フェーズ管理
エンティティは、プロジェクトの組織化のためにカスタムフェーズに割り当てることができます。
- フェーズ: カスタムフェーズ名(例: "計画", "開発", "テスト", "デプロイメント")
- フェーズのステータス: フェーズ内の現在のステータス(例: "未開始", "進行中", "完了", "ブロックされ")
- オプション: フェーズは完全にオプションであり、コアワークフローの遷移に影響を与えません
- 柔軟性: フェーズ名は自由形式のテキストであり、カスタムのプロジェクト固有のフェーズを許可します
- フィルタリング: すべてのリスト操作は
phase と phase_status パラメーターでのフィルタリングをサポートします
- 設定: フェーズはエンティティの作成時に設定するか、
update_entity_status を介して更新することができます
ユーザーストーリーの権限とアーカイブ
ユーザーストーリーには、制限された更新権限とアーカイブ機能があります。
- コンテンツの更新: すべての利害関係者がタイトル、説明、およびストーリーポイントを更新することができます
- 受け入れ基準: プロダクトマネージャーのみが受け入れ基準を更新することができます
- アーカイブ: プロダクトマネージャーのみが理由を追跡しながらユーザーストーリーをアーカイブすることができます
- アーカイブされたストーリー: デフォルトのビューからは非表示で、
include_archived: true でアクセスできます
- 監査トレイル: すべてのコンテンツと受け入れ基準の変更は完全に監査されます
コメントシステム
- すべての利害関係者が任意のSDLCエンティティにコメントを追加することができます
- 要件、実装、および問題に関するスレッド付きのディスカッションとフィードバックをサポートします
- 作者とタイムスタンプを含む完全な監査トレイルを維持します
監査トレイル
すべての所有権とステータスの遷移は、完全なトレーサビリティのために監査テーブルに記録されます。
プロジェクトフォルダのアクセス
セキュリティ上の理由から、MCPサーバーはプロジェクトディレクトリのパスで明示的な初期化が必要です。他のツールを使用する前に、initialize ツールを現在の作業ディレクトリのパスで最初に呼び出す必要があります。
例の使用方法
MCPクライアントに接続した後、以下のことができます。
データベースの初期化
- "パス '/Users/username/my-project' でデータベースを初期化する"
エピック管理
- "エピックを作成: 'ユーザー認証システム' と '支払い処理'"
- "すべてのオープンエピックをリストする"
ユーザーストーリーの作成
- "ユーザーストーリーを作成: 'ユーザーとして、メールアドレス/パスワードでログインしたい' (5ポイント) と 'ユーザーとして、パスワードをリセットしたい' (3ポイント) をエピック1に関連付ける"(注: エピックIDは検証されます - 無効な参照は明確なエラーメッセージを返します)
- "フェーズ付きのユーザーストーリーを作成: 'ユーザーダッシュボードを実装する' (8ポイント) をエピック1に関連付け、フェーズ '開発' とフェーズステータス '計画' を設定する"
- "開発者に割り当てられた進行中のユーザーストーリーをリストする"
- "'開発' フェーズのユーザーストーリーをリストする"
タスクの分解
- "タスクを作成: 'パスワードのハッシュ化を実装する' (4時間) と 'ログインUIを作成する' (6時間) をユーザーストーリー1に関連付け、開発者に割り当てる"(注: ユーザーストーリーの参照は検証されます)
- "フェーズ付きのタスクを作成: '単体テストを書く' (3時間) をユーザーストーリー1に関連付け、フェーズ 'テスト' とフェーズステータス '未開始' を設定する"
- "進行中のタスクをリストする"
- "'テスト' フェーズで '未開始' ステータスのタスクをリストする"
- "タスク1のステータスを 'クローズ' に更新する"
- "タスク2のフェーズを 'テスト' に更新し、フェーズステータスを '進行中' に更新する"
ストーリーの依存関係
- "依存関係を追加: ストーリー2はストーリー1に依存し、ストーリー3はストーリー2に依存する"
- "依存関係を削除: ストーリー3はもはやストーリー2に依存しない"
- "依存関係が最も少ない順にユーザーストーリーをリストする"
エピックの依存関係
- "依存関係を追加: エピック2はエピック1に依存し、エピック3はエピック2に依存する"
- "依存関係を削除: エピック3はもはやエピック2に依存しない"
- "依存関係情報付きのエピックをリストする"
バグ追跡
- "バグを作成: 'モバイルデバイスでのログインが失敗する' (Critical、テスターによって報告) と 'パスワードリセットメールが送信されない' (High、プロダクトマネージャーによって報告)"(注: ユーザーストーリーとタスクの参照が提供された場合、検証されます)
- "深刻度が高いすべてのオープンバグをリストする"
テストケースの作成
- "テストケースを作成: 'ユーザーが正常にログインできることを検証する' と 'パスワードリセットが機能することを検証する' をユーザーストーリー1に関連付ける"(注: ユーザーストーリーの参照が提供された場合、検証されます)
- "失敗したテストケースをリストする"
コメントとコラボレーション
- "ユーザーストーリー1にコメントを追加: 'セキュリティのベストプラクティスを確保する必要がある' をアーキテクトによって"
- "バグ1にコメントを追加: '検証ではメールアドレスの形式をチェックする必要がある' を開発者によって"
ウィキのドキュメント化
- "ウィキページを作成: 'API認証ガイド' をOAuth2フローに関する内容で、カテゴリ '技術的'、タグ ['認証', 'セキュリティ', 'API'] で作成する"
- "ウィキページを作成: 'デプロイメントプロセス' をステップバイステップのデプロイメント手順で、カテゴリ 'プロセス'、タグ ['デプロイメント', 'CI-CD'] で作成する"
- "技術的カテゴリのすべてのウィキページをリストする"
- "'API認証ガイド' のウィキページのコンテンツを追加のOAuth2の詳細で更新する"
- "'API認証ガイド' のウィキページをユーザーストーリー1とタスク2にリンクする"
- "'認証' でウィキページを検索する"
ワークフロー管理
- "ユーザーストーリー1のステータスを '進行中' に更新し、アーキテクトによって遷移させる"
- "タスク1のステータスを 'クローズ' に更新し、開発者によって遷移させる"
依存関係の解決フィルタリング
- "すべての依存関係が解決されたエピックをリストする"
- "未解決の依存関係を持つユーザーストーリーをリストする"
- "依存関係が解決され