🚀 MCP Tasks 📋
MCP Tasksは、複数のファイル形式(Markdown、JSON、YAML)に対応した強力な検索、フィルタリング、整理機能を備えた、効率的なタスクマネージャーです。ツールの混乱を最小限に抑え、LLMの予算効率を最大化します。
🚀 クイックスタート
Cursorの場合は~/.cursor/mcp.jsonに、Claude Desktopの場合は~/.config/claude_desktop_config.jsonに以下を追加します。
オプション1: NPX(推奨)
{
"mcpServers": {
"mcp-tasks": {
"command": "npx",
"args": ["-y", "mcp-tasks"]
}
}
}
オプション2: Docker
{
"mcpServers": {
"mcp-tasks": {
"command": "docker",
"args": [
"run",
"--rm",
"-i",
"flesler/mcp-tasks"
]
}
}
}
✨ 主な機能
- ⚡ 超効率的な設計:ツール数を最小限(5つのツール)に抑え、AIの混乱を減らします。
- 🎯 予算最適化:バッチ操作、スマートなデフォルト設定、自動操作により、LLM API呼び出しを最小限に抑えます。
- 🚀 複数フォーマット対応:Markdown(
.md)、JSON(.json)、YAML(.yml)のタスクファイルをサポートします。
- 🔍 強力な検索機能:大文字小文字を区別しないテキスト/ステータスフィルタリング(OR論理)とIDベースの検索が可能です。
- 📊 スマートな整理機能:カスタマイズ可能なワークフロー状態に基づくステータスフィルタリングができます。
- 🎯 位置ベースのインデックス:0ベースの挿入により、タスクの順序付けが簡単です。
- 📁 複数ソースサポート:複数のタスクファイルを同時に管理できます。
- 🔄 リアルタイム更新:選択したフォーマットに自動的に変更が保存されます。
- 🤖 自動WIP管理:作業中のタスク制限を自動的に管理します。
- 🚫 重複防止:自動的に重複タスクを防止します。
- 🛡️ 型安全:Zodバリデーションを備えた完全なTypeScriptサポートです。
- 🔒 超安全:AIはタスクを書き換えたり削除することはできません(有効にしない限り)。追加と移動のみ可能です。
- 📅 オプションのリマインダー:AIが常に参照できる専用のリマインダーセクションを有効にできます。
🤖 AI統合のヒント
AIにこれらのツールを使用させるには、以下のようなプロンプトから始めることができます。.md(推奨)、.json、.ymlなど、任意のパスを指定できます。
Use mcp-tasks tools to track our work in path/to/tasks.md
新しいまたは更新されたタスクについてAIに伝える場合は、プロンプトの末尾に以下を追加できます。
use mcp-tasks
AIの作業中にタスクを追加する場合:AIの操作に干渉せずに安全にタスクを追加するには、別のターミナルからCLIを使用します。
npx mcp-tasks add "Your new task text" "To Do" 0
🔧 インストール例
カスタム環境での完全な設定
{
"mcpServers": {
"mcp-tasks": {
"command": "npx",
"args": ["-y", "mcp-tasks"],
"env": {
"STATUS_WIP": "In Progress",
"STATUS_TODO": "To Do",
"STATUS_DONE": "Done",
"STATUS_REMINDERS": "Reminders",
"STATUS_NOTES": "Notes",
"STATUSES": "In Progress,To Do,Done,Backlog,Reminders,Notes",
"AUTO_WIP": "true",
"PREFIX_TOOLS": "true",
"KEEP_DELETED": "true",
"TRANSPORT": "stdio",
"PORT": "4680",
"INSTRUCTIONS": "Use mcp-tasks tools when the user mentions new or updated tasks"
}
}
}
}
リモートアクセス用のHTTPトランスポート
まず、サーバーを起動します。
TRANSPORT=http PORT=4680 npx mcp-tasks
次に、以下の設定を行います。
{
"mcpServers": {
"mcp-tasks": {
"type": "streamableHttp",
"url": "http://localhost:4680/mcp"
}
}
}
📁 サポートされるファイル形式
| 拡張子 |
フォーマット |
最適な用途 |
自動作成 |
.md |
Markdown |
人間が読みやすいタスクリスト |
✅ |
.json |
JSON |
構造化データ、API |
✅ |
.yml |
YAML |
設定ファイル |
✅ |
フォーマットはファイル拡張子から自動検出されます。すべてのフォーマットが同じ機能をサポートし、同じプロジェクト内で混合使用することができます。
推奨:人間が読みやすく編集しやすいMarkdown(.md)を使用することをおすすめします。
⚠️ 重要提示
既存のタスクファイルではなく、新しいファイルから始めることをおすすめします。非タスクコンテンツを失う可能性があるためです。
🛠️ 利用可能なツール
PREFIX_TOOLS=true(デフォルト)の場合、すべてのツール名にtasks_が付けられます。
| ツール |
説明 |
パラメータ |
tasks_setup |
タスクファイルを初期化します(存在しない場合は作成します。.md、.json、.ymlをサポート) |
source_path, workspace? |
tasks_search |
フィルタリングを使用してタスクを検索します |
source_id, statuses?, terms?, ids? |
tasks_add |
ステータスに新しいタスクを追加します |
source_id, texts[], status, index? |
tasks_update |
IDでタスクを更新します |
source_id, ids[], status, index? |
tasks_summary |
タスク数と作業中のタスクを取得します |
source_id |
ID形式:source_id(ファイルパスから)とタスクid(タスクテキストから)は、4文字の英数字文字列(例:"xK8p"、"m3Qw")です。
ツールの使用例
基本的な使用法
tasks_setup({
workspace: "/path/to/project",
source_path: "tasks.md"
})
高度な使用法
tasks_add({
source_id: "xK8p",
texts: ["Implement authentication", "Write tests"],
status: "To Do",
index: 0
})
tasks_search({
source_id: "xK8p",
terms: ["auth", "deploy"],
statuses: ["To Do"],
ids: ["m3Qw", "p9Lx"]
})
tasks_update({
source_id: "xK8p",
ids: ["m3Qw", "p9Lx"],
status: "Done"
})
tasks_summary({
source_id: "xK8p"
})
🎛️ 環境変数
| 変数 |
デフォルト値 |
説明 |
TRANSPORT |
stdio |
トランスポートモード:stdioまたはhttp |
PORT |
4680 |
HTTPサーバーのポート(TRANSPORT=httpの場合) |
PREFIX_TOOLS |
true |
ツール名にtasks_を付けます |
STATUS_WIP |
In Progress |
作業中のステータス名 |
STATUS_TODO |
To Do |
未着手のステータス名 |
STATUS_DONE |
Done |
完了したステータス名 |
STATUS_REMINDERS |
Reminders |
AI用のリマインダー(無効にするには空文字列) |
STATUS_NOTES |
Notes |
メモ/非アクションタスク(無効にするには空文字列) |
STATUSES |
Backlog |
カンマ区切りの追加ステータス |
AUTO_WIP |
true |
1つの作業中タスクがある場合、残りのタスクを未着手に移動し、作業中のタスクがない場合は最初の未着手タスクを作業中に移動します |
KEEP_DELETED |
true |
削除されたタスクを保持します(AIがタスクを失うことはありません!) |
INSTRUCTIONS |
... |
すべてのツールレスポンスに含まれ、AIが従うための指示です |
SOURCES_PATH |
./sources.json |
ソースレジストリを保存するファイル(内部使用) |
DEBUG |
false |
trueの場合、tasks_debugツールを有効にします |
高度な設定例
オプションで、WIP/ToDo/Doneのステータスを含めて、それらの順序を制御することができます。
{
"env": {
"STATUSES": "WIP,Pending,Archived,Done,To Review",
"STATUS_WIP": "WIP",
"STATUS_TODO": "Pending",
"AUTO_WIP": "false"
}
}
📊 ファイルフォーマット
Markdown(.md) - 人間が読みやすい
# Tasks - File Name
## In Progress
- [ ] Write user registration
## To Do
- [ ] Implement authentication
- [ ] Set up CI/CD pipeline
## Backlog
- [ ] Plan architecture
- [ ] Design database schema
## Done
- [x] Set up project structure
- [x] Initialize repository
## Reminders
- [ ] Don't move to Done until you verified it works
- [ ] After you move to Done, commit all the changes, use the task name as the commit message
## Notes
- [ ] The task tools were really great to use!
JSON(.json) - 構造化データ
{
"groups": {
"In Progress": [
"Write user registration"
],
"To Do": [
"Implement authentication",
"Set up CI/CD pipeline"
],
"Backlog": [
"Plan architecture",
"Design database schema"
],
"Done": [
"Set up project structure",
"Initialize repository"
],
"Reminders": [
"Don't move to Done until you verified it works",
"After you move to Done, commit all the changes, use the task name as the commit message"
],
"Notes": [
"The task tools were really great to use!"
]
}
}
YAML(.yml) - 設定に適したフォーマット
groups:
"In Progress":
- Write user registration
"To Do":
- Implement authentication
- Set up CI/CD pipeline
Backlog:
- Plan architecture
- Design database schema
Done:
- Set up project structure
- Initialize repository
Reminders:
- Don't move to Done until you verified it works
- After you move to Done, commit all the changes, use the task name as the commit message
🖥️ サーバーの使用方法
mcp-tasks --help
mcp-tasks
TRANSPORT=http mcp-tasks
TRANSPORT=http PORT=8080 mcp-tasks
STATUS_WIP="Working" AUTO_WIP=false mcp-tasks
💻 CLIの使用方法
mcp-tasks(またはnpx mcp-tasks)をコマンドラインツールとして使用して、迅速なタスク管理を行うことができます。
mcp-tasks setup tasks.md $PWD
mcp-tasks add "Implement authentication"
mcp-tasks add "Write tests" "Backlog"
mcp-tasks add "Fix critical bug" "In Progress" 0
mcp-tasks search
mcp-tasks search "" "auth,login"
mcp-tasks search "To Do,Done" ""
mcp-tasks search "In Progress" "bug"
mcp-tasks update m3Qw,p9Lx Done
mcp-tasks summary
mcp-tasks add "Don't move to Done until you verified it works" Reminders
CLIの特長
- すべてのMCPツール機能に直接アクセスできます。
- JSON出力により、解析とスクリプト作成が容易です。
- MCPツールと同じ信頼性と重複防止機能を備えています。
- 自動化スクリプトやCI/CDパイプラインに最適です。
🧪 開発方法
git clone https://github.com/flesler/mcp-tasks
cd mcp-tasks
npm install
npm run dev
npm run dev:http
npm run build
npm run lint
npm run lint:full
🛠️ トラブルシューティング
必要条件
- Node.js ≥20 - このパッケージはNode.jsバージョン20以上が必要です。
一般的な問題と解決策
npx-tasksを実行するとERR_MODULE_NOT_FOUNDが発生する場合
タスクはどこに保存されていますか?
- タスクは、
tasks_setupでAIが指定したファイルパスに保存されます。
- 絶対パスは、すべてのツール呼び出しのレスポンスの
source.pathに含まれています。
- 場所を忘れた場合は、任意のツールのレスポンスを確認するか、AIに表示させることができます。
Markdownファイルの内容が失われた場合
- ⚠️ ツールはファイル全体を書き換え、認識されたステータスセクション内のタスクのみを保持します。
- 非タスクコンテンツ(メモ、ドキュメント)は、ツールがファイルを変更する際に失われる可能性があります。
- 他のコンテンツとタスクを混在させるのではなく、専用のタスクファイルを使用することをおすすめします。
なぜAIにタスクファイルを直接編集させないのですか?
- ファイル解析の複雑さ:AIはファイル全体を読み、Markdown構造を解析し、現在の状態を理解する必要があります。これはコストがかかり、エラーが発生しやすいです。
- 多段階操作:タスクを「作業中」から「完了」に移動するには、
read_file、grep_search、sedの複数の呼び出しが必要で、正しいセクションを見つけて変更する必要があります。
- コンテキストの喪失:大きなタスクファイルの場合、トークン制限のためにAIが不完全なチャンクで作業する必要があり、全体の構造を把握できなくなります。
- 状態の理解:AIは、断片的なファイルセクションを読むだけでは、実際のプロジェクトの状態を理解するのが難しいです。どのタスクが実際に作業中なのかを把握するのが困難です。
- 編集の精度:手動で編集すると、Markdownの書式が破損したり、タスクが失われたり、誤って間違ったセクションを変更するリスクがあります。
- 同時編集の競合:AIが直接ファイルを編集する場合、人間が手動で変更を加えると、競合や上書きが発生する可能性があります。
- トークンの非効率性:読み取り+解析+編集のサイクルは、明確な入力/出力を持つ構造化ツール呼び出しよりもはるかに多くのトークンを消費します。
- 安全性:AIが直接ファイルを編集すると、誤ってタスクを変更または削除する可能性がありますが、これらのツールを使用すると、AIはタスクを書き換えたり削除することはできません。
🤝 コントリビューション
コントリビューションを歓迎します!以下の手順に従ってください。
- リポジトリをフォークします。
- 機能ブランチを作成します:
git checkout -b feature-name
- テストを含めて変更を加えます。
npm run lint:fullを実行します。
- プルリクエストを送信します。
📄 ライセンス
このプロジェクトはMITライセンスの下で公開されています。詳細はLICENSEを参照してください。
🔗 リンク