Your AI coding assistant's quest companion - campaign and task management via MCP
Project description
Task Crusade MCP
Your AI coding assistant's quest companion - campaign and task management via MCP.
Overview
Task Crusade is a campaign and task management system designed for AI coding assistants. It provides a Model Context Protocol (MCP) server that enables AI agents like Claude, Cursor, and others to organize work into campaigns (projects) and tasks with:
- Dependency tracking: Tasks can depend on other tasks
- Acceptance criteria: Define completion requirements for each task
- Progress monitoring: Track campaign progress and find actionable tasks
- Sequential & parallel execution: Support for both single-agent and multi-agent workflows
Installation
Basic Installation (MCP Server only)
pip install task-crusader-mcp
With CLI
pip install task-crusader-mcp[cli]
With TUI
pip install task-crusader-mcp[tui]
Full Installation
pip install task-crusader-mcp[all]
Quick Start
1. Configure Your AI Assistant
Add to your MCP client configuration (e.g., Claude Desktop claude_desktop_config.json):
{
"mcpServers": {
"task-crusade": {
"command": "crusader-mcp"
}
}
}
Or for Cursor (.cursor/mcp.json):
{
"mcpServers": {
"task-crusade": {
"command": "crusader-mcp"
}
}
}
2. Basic Workflow
-
Create a campaign:
campaign_create(name="My Project") -
Add tasks:
task_create(title="Implement feature", campaign_id="...") -
Add acceptance criteria:
task_acceptance_criteria_add(task_id="...", content="Unit tests pass") -
Execute the task loop:
while campaign not complete: 1. campaign_get_next_actionable_task(campaign_id) -> get next task 2. task_update(task_id, status="in-progress") -> claim task 3. [Implement the task] 4. task_acceptance_criteria_mark_met(criteria_id) -> mark criteria met 5. task_complete(task_id) -> complete task
Available Tools
Campaign Management (12 tools)
| Tool | Description |
|---|---|
campaign_create |
Create a new campaign |
campaign_list |
List all campaigns |
campaign_show |
Show campaign details with tasks |
campaign_update |
Update campaign properties |
campaign_delete |
Delete a campaign |
campaign_get_progress_summary |
Get lightweight progress summary |
campaign_get_next_actionable_task |
Get next task with dependencies met |
campaign_get_all_actionable_tasks |
Get all actionable tasks (for parallel execution) |
campaign_details |
Show campaign metadata |
campaign_research_add |
Add research to campaign |
campaign_research_list |
List campaign research |
campaign_workflow_guide |
Get workflow guidance |
Task Management (12 tools)
| Tool | Description |
|---|---|
task_create |
Create a new task |
task_list |
List tasks |
task_show |
Show task details |
task_update |
Update task properties |
task_delete |
Delete a task |
task_complete |
Complete a task (validates criteria) |
task_acceptance_criteria_add |
Add acceptance criterion |
task_acceptance_criteria_mark_met |
Mark criterion as met |
task_acceptance_criteria_mark_unmet |
Mark criterion as unmet |
task_research_add |
Add research to task |
task_implementation_notes_add |
Add implementation note |
task_testing_step_add |
Add testing step |
CLI Usage
# Create a campaign
crusader campaign create "My Project" --description "My awesome project"
# List campaigns
crusader campaign list
# Show campaign details
crusader campaign show <campaign-id>
# Create a task
crusader task create "Implement feature" --campaign <campaign-id>
# Show task details
crusader task show <task-id>
# Update task status
crusader task update <task-id> --status in-progress
TUI Usage
crusader-tui
This opens an interactive terminal interface for browsing campaigns and tasks.
Database
By default, Task Crusade stores data in ~/.crusader/database.db. You can configure a custom path by setting the CRUSADER_DB_PATH environment variable.
Architecture
Task Crusade follows a clean hexagonal architecture:
MCP Server → Service Layer → Repository Layer → SQLite Database
↓
Domain Layer (DTOs, Result Types)
Key design decisions:
- Direct service calls: MCP tools call services directly (no CLI subprocess overhead)
- Result pattern: All operations return
DomainResultfor explicit error handling - Memory system internal: Acceptance criteria, research, and notes use an internal memory system but are not exposed as MCP tools
Contributing
Contributions are welcome! Before pushing, run the CI checks locally:
./scripts/check_ci.sh
This runs:
- Linting with
ruff check src/ tests/ - Tests with coverage:
pytest --cov --cov-fail-under=65 - Optional type checking:
mypy src/
See CONTRIBUTING.md for detailed guidelines.
License
MIT License - see LICENSE file for details.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file task_crusader_mcp-0.1.0.tar.gz.
File metadata
- Download URL: task_crusader_mcp-0.1.0.tar.gz
- Upload date:
- Size: 89.2 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
3fd7fbfedcf929ff28c59bc389cbb1ee11c28f35856a02e1f2b98be7ad9a4df6
|
|
| MD5 |
4f8bc5a0edddfe89310c9273a9476ecb
|
|
| BLAKE2b-256 |
3859005a76548be8c6718946634c11c5b2c4bf776ef4b34a84d6b56a691ccd79
|
Provenance
The following attestation bundles were made for task_crusader_mcp-0.1.0.tar.gz:
Publisher:
publish.yml on mcrescenzo/task-crusader-mcp
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
task_crusader_mcp-0.1.0.tar.gz -
Subject digest:
3fd7fbfedcf929ff28c59bc389cbb1ee11c28f35856a02e1f2b98be7ad9a4df6 - Sigstore transparency entry: 857190446
- Sigstore integration time:
-
Permalink:
mcrescenzo/task-crusader-mcp@ae77e1dfbdd2cbee02322548764425c43bf1761d -
Branch / Tag:
refs/tags/v0.1.0 - Owner: https://github.com/mcrescenzo
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@ae77e1dfbdd2cbee02322548764425c43bf1761d -
Trigger Event:
release
-
Statement type:
File details
Details for the file task_crusader_mcp-0.1.0-py3-none-any.whl.
File metadata
- Download URL: task_crusader_mcp-0.1.0-py3-none-any.whl
- Upload date:
- Size: 97.9 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
9f3eb5dfd98e032ae889d80d86427975163800b7b297f2f765254f9574b28200
|
|
| MD5 |
2d34a09ddbcad8055b5d1e57f2b09b1e
|
|
| BLAKE2b-256 |
461cbbbd83ac501c67aa9b42dfe1c9d89a55eeee6c2d1e8910d55bb1a490471c
|
Provenance
The following attestation bundles were made for task_crusader_mcp-0.1.0-py3-none-any.whl:
Publisher:
publish.yml on mcrescenzo/task-crusader-mcp
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
task_crusader_mcp-0.1.0-py3-none-any.whl -
Subject digest:
9f3eb5dfd98e032ae889d80d86427975163800b7b297f2f765254f9574b28200 - Sigstore transparency entry: 857190448
- Sigstore integration time:
-
Permalink:
mcrescenzo/task-crusader-mcp@ae77e1dfbdd2cbee02322548764425c43bf1761d -
Branch / Tag:
refs/tags/v0.1.0 - Owner: https://github.com/mcrescenzo
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@ae77e1dfbdd2cbee02322548764425c43bf1761d -
Trigger Event:
release
-
Statement type: