MCP タスクマネージャーサーバー
SQLite データベースを使用してクライアント主導のプロジェクトおよびタスク管理用のバックエンド ツールを提供するローカル モデル コンテキスト プロトコル (MCP) サーバー。
概要
このサーバーは、個別のプロジェクト内の構造化されたタスクデータを管理する必要があるローカルMCPクライアント(AIエージェントやスクリプトなど)の永続的なバックエンドとして機能します。データストレージを処理し、インタラクションのための標準化されたツールセットを提供します。一方、戦略的なワークフローロジックはクライアント内に存在します。
主な機能:
- **プロジェクトベース:**タスクは個別のプロジェクト内で整理されます。
- **SQLite 永続性:**シンプルで自己完結的なデータ ストレージとして、ローカル SQLite ファイル (デフォルトでは
./data/taskmanager.db
) を使用します。 - **クライアント主導:**クライアントにツールを提供しますが、ワークフローを指示しません。
- **MCP 準拠:**ツールの定義と通信のためのモデル コンテキスト プロトコルに準拠します。
- **タスク管理:**プロジェクトの作成、タスクの追加、タスクの一覧表示/表示、ステータスの更新、タスクのサブタスクへの拡張、次に実行可能なタスクの特定をサポートします。
- **インポート/エクスポート:**プロジェクト データを JSON にエクスポートし、JSON からインポートして新しいプロジェクトを作成できます。
実装されたMCPツール
MCP クライアントでは次のツールが利用可能です。
createProject
:- **説明:**新しい空のプロジェクトを作成します。
- パラメータ:
projectName
(文字列、オプション、最大 255) - 戻り値:
{ project_id: string }
addTask
:- **説明:**プロジェクトに新しいタスクを追加します。
- パラメータ:
project_id
(文字列、必須、UUID)、description
(文字列、必須、1-1024)、dependencies
(文字列[]、オプション、最大 50)、priority
(列挙型 'high'|'medium'|'low'、オプション、デフォルト 'medium')、status
(列挙型 'todo'|'in-progress'|'review'|'done'、オプション、デフォルト 'todo') - **戻り値:**作成されたタスクの完全な
TaskData
オブジェクト。
listTasks
:- **説明:**オプションのフィルタリングとサブタスクの組み込みを使用して、プロジェクトのタスクを一覧表示します。
- パラメータ:
project_id
(文字列、必須、UUID)、status
(列挙型 'todo'|'in-progress'|'review'|'done'、オプション)、include_subtasks
(ブール値、オプション、デフォルトは false) - 戻り値:
TaskData
またはStructuredTaskData
オブジェクトの配列。
showTask
:- **説明:**依存関係や直接のサブタスクなど、特定のタスクの完全な詳細を取得します。
- パラメータ:
project_id
(文字列、必須、UUID)、task_id
(文字列、必須) - 戻り値:
FullTaskData
オブジェクト。
setTaskStatus
:- 説明: 1 つ以上のタスクのステータスを更新します。
- パラメータ:
project_id
(文字列、必須、UUID)、task_ids
(文字列[]、必須、1-100)、status
(列挙型 'todo'|'in-progress'|'review'|'done'、必須) - 戻り値:
{ success: true, updated_count: number }
expandTask
:- **説明:**親タスクをサブタスクに分割し、必要に応じて既存のタスクを置き換えます。
- パラメータ:
project_id
(文字列、必須、UUID)、task_id
(文字列、必須)、subtask_descriptions
(文字列[]、必須、1〜20、それぞれ1〜512)、force
(ブール値、オプション、デフォルトは false) - **戻り値:**新しいサブタスクを含む更新された親
FullTaskData
オブジェクト。
getNextTask
:- **説明:**ステータス (「todo」)、依存関係 (「done」)、優先度、作成日に基づいて、次に実行可能なタスクを識別します。
- パラメータ:
project_id
(文字列、必須、UUID) - **戻り値:**次のタスクの
FullTaskData
オブジェクト。準備ができていない場合はnull
。
exportProject
:- **説明:**完全なプロジェクト データを JSON 文字列としてエクスポートします。
- パラメータ:
project_id
(文字列、必須、UUID)、format
(列挙型 'json'、オプション、デフォルト 'json') - **戻り値:**プロジェクトを表す JSON 文字列。
importProject
:- **説明:**エクスポートされた JSON 文字列から新しいプロジェクトを作成します。
- パラメータ:
project_data
(文字列、必須、JSON)、new_project_name
(文字列、オプション、最大 255) - **戻り値:**新しく作成されたプロジェクトの
{ project_id: string }
。
updateTask
:- **説明:**既存のタスクの特定の詳細 (説明、優先度、依存関係) を更新します。
- パラメータ:
project_id
(文字列、必須、UUID)、task_id
(文字列、必須、UUID)、description
(文字列、オプション、1〜1024)、priority
(列挙型 'high'|'medium'|'low'、オプション)、dependencies
(文字列[]、オプション、最大50、既存のものを置き換えます) - **戻り値:**更新された
FullTaskData
オブジェクト。
deleteTask
:- 説明: 1 つ以上のタスク (およびカスケード経由のサブタスク/依存関係リンク) を削除します。
- パラメータ:
project_id
(文字列、必須、UUID)、task_ids
(文字列[]、必須、1-100) - 戻り値:
{ success: true, deleted_count: number }
deleteProject
:- **説明:**プロジェクトとそれに関連するすべてのデータを完全に削除します。注意して使用してください。
- パラメータ:
project_id
(文字列、必須、UUID) - 戻り値:
{ success: true }
(注: 詳細な Zod スキーマとパラメータの説明については、対応するsrc/tools/*Params.ts
ファイルを参照してください。)
はじめる
- 前提条件: Node.js (LTS 推奨)、npm。
- 依存関係をインストールします:
- 開発モードで実行: (自動リロードに
ts-node
とnodemon
使用)サーバーはstdio経由で接続します。ログ(JSON形式)はstderrに出力されます。SQLiteデータベースは./data/taskmanager.db
に作成/更新されます。 - 生産向けビルド:
- プロダクションビルドを実行します。
構成
- データベースパス: SQLiteデータベースファイルの場所は、
DATABASE_PATH
環境変数を設定することで上書きできます。デフォルトは./data/taskmanager.db
です。 - **ログレベル:**ログレベルは
LOG_LEVEL
環境変数を使用して設定できます(例:debug
、info
、warn
、error
)。デフォルトはinfo
です。
プロジェクト構造
/src
: ソースコード。/config
: 構成管理。/db
: データベース マネージャーとスキーマ (schema.sql
)。/repositories
: データ アクセス層 (SQLite の相互作用)。/services
: コアビジネスロジック。/tools
: MCP ツールの定義 (*Params.ts) と実装 (*Tool.ts)。/types
: 共有 TypeScript インターフェース (現在は最小限で、主にリポジトリ/サービス内)。/utils
: ログ記録、カスタムエラーなど。createServer.ts
: サーバー インスタンスの作成。server.ts
: メインアプリケーションのエントリポイント。
/dist
: コンパイルされた JavaScript 出力。/docs
: プロジェクトドキュメント (PRD、機能仕様、RFC)。/data
: SQLite データベース ファイルのデフォルトの場所 (自動的に作成されます)。tasks.md
: 開発用の手動タスク追跡ファイル。- 設定ファイル (
package.json
、tsconfig.json
、.eslintrc.json
など)
リンティングとフォーマット
- リント:
npm run lint
- フォーマット:
npm run format
(コードは、コミット時に Husky/lint-staged を介して自動的に lint/フォーマットされます)。
You must be authenticated.
local-only server
The server can only run on the client's local machine because it depends on local resources.
Tools
AI エージェントが SQLite の永続ストレージを使用してプロジェクトとタスクを管理するためのバックエンド ツールを提供するローカル モデル コンテキスト プロトコル サーバー。依存関係、優先度、ステータスを含むプロジェクト タスクの構造化された追跡を可能にします。
Related Resources
Related MCP Servers
- -securityFlicense-qualityA Model Context Protocol server that enables AI assistants to explore and interact with Cursor IDE's SQLite databases, providing access to project data, chat history, and composer information.Last updated -10Python
- AsecurityAlicenseAqualityA Model Context Protocol server that integrates with Linear, enabling AI assistants to create, update, search, and comment on issues for project management and issue tracking.Last updated -56PythonApache 2.0
- -security-license-qualityA Model Context Protocol server implementation that enables AI assistants to interact with Linear project management systems, allowing them to create, retrieve, and modify data related to issues, projects, teams, and users.Last updated -202TypeScript
- -securityAlicense-qualityA Model Context Protocol server implementation that enables AI assistants to execute SQL queries and interact with SQLite databases through a structured interface.Last updated -6TypeScriptMIT License