TaskMateAI
AI-driven task management application that operates via MCP, enabling autonomous creation, organization, and execution of tasks with support for subtasks, priorities, and progress tracking.
README
TaskMateAI
AI/MCP TODOタスク管理アプリケーション
TaskMateAIは、AIが自律的にタスクを管理・実行するためのシンプルなタスク管理アプリケーションで、MCP (Model Context Protocol)を通じて操作できます。
特徴
- MCPを通じたタスクの作成・管理
- サブタスクのサポート
- 優先順位に基づくタスク処理
- タスクの進捗管理と報告機能
- ノート追加機能
- JSONファイルによるデータ永続化
- エージェントIDによる複数AIのタスク管理
- プロジェクト単位でのタスク整理
インストール
前提条件
- Python 3.12以上
- uv (Python パッケージマネージャー)
- WSL (Windows Subsystem for Linux) ※Windows環境の場合
インストール手順
- リポジトリをクローンまたはダウンロード:
git clone https://github.com/YourUsername/TaskMateAI.git
cd TaskMateAI
- 必要なパッケージをインストール:
uv install -r requirements.txt
使用方法
アプリケーションの起動
WSL環境では以下のようにアプリケーションを実行できます:
cd /path/to/TaskMateAI/src/TaskMateAI
uv run TaskMateAI
MCP構成
MCPで利用するための設定例:
{
"mcpServers": {
"TodoApplication": {
"command": "uv",
"args": [
"--directory",
"/絶対パス/TaskMateAI",
"run",
"TaskMateAI"
],
"env": {},
"alwaysAllow": [
"get_tasks", "get_next_task", "create_task", "update_progress",
"complete_task", "add_subtask", "update_subtask", "add_note",
"list_agents", "list_projects"
],
"defaultArguments": {
"agent_id": "agent_123",
"project_name": ""
}
}
}
}
{
"mcpServers": {
"TodoApplication": {
"command": "wsl.exe",
"args": [
"-e",
"bash",
"-c",
"cd /絶対パス/TaskMateAI && /home/ユーザー/.local/bin/uv run TaskMateAI"
],
"env": {},
"alwaysAllow": [
"get_tasks", "get_next_task", "create_task", "update_progress",
"complete_task", "add_subtask", "update_subtask", "add_note",
"list_agents", "list_projects"
],
"defaultArguments": {
"agent_id": "agent_123",
"project_name": ""
}
}
}
}
利用可能なMCPツール
TaskMateAIは以下のMCPツールを提供します:
- get_tasks - タスクリストの取得(ステータスや優先度でフィルタリング可能)
- get_next_task - 優先度の高い次のタスクを取得(自動的に進行中ステータスに更新)
- create_task - 新しいタスクの作成(サブタスク付き)
- update_progress - タスクの進捗更新
- complete_task - タスクを完了としてマーク
- add_subtask - 既存タスクにサブタスクを追加
- update_subtask - サブタスクのステータス更新
- add_note - タスクにノートを追加
- list_agents - 利用可能なエージェントIDの一覧を取得
- list_projects - 特定のエージェントに関連するプロジェクトの一覧を取得
データ形式
タスクは以下のような構造で管理されます:
{
"id": 1,
"title": "タスクのタイトル",
"description": "タスクの詳細な説明",
"priority": 3,
"status": "todo", // "todo", "in_progress", "done" のいずれか
"progress": 0, // 0-100 の進捗率
"subtasks": [
{
"id": 1,
"description": "サブタスクの説明",
"status": "todo" // "todo", "in_progress", "done" のいずれか
}
],
"notes": [
{
"id": 1,
"content": "ノートの内容",
"timestamp": "2025-02-28T09:22:53.532808"
}
]
}
データ保存
タスクデータは階層構造で保存されます:
output/
├── tasks.json # デフォルトのタスクファイル
├── agent1/
│ ├── tasks.json # agent1のタスクファイル
│ ├── project1/
│ │ └── tasks.json # agent1のproject1のタスクファイル
│ └── project2/
│ └── tasks.json # agent1のproject2のタスクファイル
└── agent2/
├── tasks.json # agent2のタスクファイル
└── projectA/
└── tasks.json # agent2のprojectAのタスクファイル
各タスクファイルはアプリケーション実行時に自動的に生成・更新されます。
エージェントとプロジェクトの管理
特定のエージェントやプロジェクトのタスクを管理するには、以下の方法があります:
-
MCP設定でデフォルトエージェントを指定:
defaultArgumentsでagent_idを指定することで、すべてのリクエストで自動的に使用されます。 -
AI会話でプロジェクトを指定:会話の中で「プロジェクトXに新しいタスクを追加して」などと指定できます。
-
AIからの直接指定:リクエストパラメータに
agent_idとproject_nameを含めることができます。
プロジェクト構造
TaskMateAI/
├── src/
│ └── TaskMateAI/
│ ├── __init__.py # パッケージ初期化
│ └── __main__.py # メインアプリケーションコード
├── output/ # データ保存ディレクトリ
│ └── tasks.json # タスクデータ (自動生成)
├── tests/ # テストコード
│ ├── unit/ # ユニットテスト
│ └── integration/ # 統合テスト
├── requirements.txt # 依存パッケージリスト
└── README.md # このファイル
テスト
TaskMateAIでは、機能の信頼性を確保するため、包括的なテストスイートを提供しています。
テストの構成
テストは以下のディレクトリ構造で管理されています:
tests/
├── __init__.py # テストパッケージの初期化
├── conftest.py # テスト用フィクスチャの定義
├── unit/ # ユニットテスト
│ ├── __init__.py
│ ├── test_task_utils.py # タスク関連ユーティリティのテスト
│ ├── test_mcp_tools.py # MCPツール機能のテスト
│ └── test_agent_projects.py # エージェントとプロジェクト管理のテスト
└── integration/ # 統合テスト
└── __init__.py
テストの種類
-
ユニットテスト: アプリケーションの個々のコンポーネントが正しく機能することを確認します
test_task_utils.py: タスクの読み書き、ID生成などの基本機能をテストtest_mcp_tools.py: MCPツールの機能(タスクの作成、更新、完了など)をテストtest_agent_projects.py: エージェントIDとプロジェクト管理機能をテスト
-
統合テスト: 複数のコンポーネントが連携して正しく動作することを確認します(将来拡張予定)
テスト実行方法
以下のコマンドを使用してテストを実行できます:
- すべてのテストを実行:
cd /path/to/TaskMateAI
uv run python -m pytest -xvs
- 特定のテストファイルを実行:
uv run python -m pytest -xvs tests/unit/test_task_utils.py
- 特定のテストクラスを実行:
uv run python -m pytest -xvs tests/unit/test_mcp_tools.py::TestMCPTools
- 特定のテスト関数を実行:
uv run python -m pytest -xvs tests/unit/test_task_utils.py::TestTaskUtils::test_read_tasks_with_data
テスト引数の説明:
-x: エラーが発生した時点でテストを停止します-v: 詳細な出力を表示します-s: テスト中の標準出力を表示します
修正予定項目
- タスクテンプレート機能の実装
- タスク間の依存関係管理システムの構築
- スケジュール機能の追加
- タグによるタスク分類システムの導入
- マイルストーン管理機能の実装
ライセンス
MIT
著者
Recommended Servers
playwright-mcp
A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.
Magic Component Platform (MCP)
An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.
Audiense Insights MCP Server
Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.
VeyraX MCP
Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.
graphlit-mcp-server
The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.
Kagi MCP Server
An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.
E2B
Using MCP to run code via e2b.
Neon Database
MCP server for interacting with Neon Management API and databases
Exa Search
A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.
Qdrant Server
This repository is an example of how to create a MCP server for Qdrant, a vector search engine.