12 releases
| 0.1.13 | Mar 25, 2026 |
|---|---|
| 0.1.12 | Mar 25, 2026 |
| 0.1.5 | Feb 16, 2026 |
| 0.1.0 | Jan 31, 2026 |
#2031 in Command line utilities
480KB
12K
SLoC
mc — project management for developers and AI agents
Manage tasks, meetings, research, contacts, and sprints with plain Markdown files. No database, no server, no account — just files in your repo that you can git diff, review in PRs, and edit with any tool. Works from your terminal and from AI editors via MCP.
Quickstart
cargo install mc
cd my-project && mc init --embedded
mc -y new task "Ship the feature" --priority 2
mc task board
That's it. You now have a .mc/ folder with task tracking in your project.
Why mc?
- Plain Markdown + YAML frontmatter —
git diffyour project management - No database, no server, no account — just files in your repo
- Built for AI agents — full MCP server, one command to connect
- Embedded mode —
.mc/folder lives alongside your code - Kanban board, sprint planning, meeting notes, research tracking, contact management — all from the terminal
Two Ways to Use It
Embedded Mode (recommended for most projects)
Add mc to an existing project. Creates a .mc/ folder for tasks, meetings, research, sprints, and proposals (no customers, projects, or contacts).
cd my-project
mc init --embedded
my-project/
├── .mc/
│ ├── config.yml
│ ├── tasks/
│ ├── meetings/
│ ├── research/
│ ├── sprints/
│ └── proposals/
└── (your code)
Standalone Mode (for portfolios and CRM)
Create a dedicated repository for managing customers, projects, and all related work.
mc init --name "My Company"
my-company/
├── config/config.yml
├── customers/
├── projects/
├── meetings/
├── research/
├── tasks/
├── sprints/
└── proposals/
Standalone mode adds customers, contacts, and projects — useful for agencies, freelancers, or anyone managing multiple clients.
What You Can Track
| Entity | Description | Example |
|---|---|---|
| Tasks | Work items with priority, status, dependencies | mc new task "Fix auth bug" --priority 1 |
| Sprints | Time-boxed iterations | mc new sprint "2026-W06" --goal "Auth module" |
| Meetings | Notes with date, attendees, PDF export | mc new meeting "Sprint Review" --date 2026-02-10 |
| Research | Multi-agent research topics, PDF export | mc new research "LLM Benchmarks" --agents claude,gemini |
| Customers | Client profiles (standalone only) | mc new customer "Acme Corp" |
| Contacts | Per-customer contacts (standalone only) | mc new contact "Alice Smith" --customer CUST-001 |
| Projects | Project containers (standalone only) | mc new project "Robot Arm" --customers CUST-001 |
| Proposals | Decision records (BIP/ADR-style) | mc new proposal "Migrate to Postgres" |
Task Management
Tasks are first-class citizens with a full kanban workflow.
Kanban Board
mc task board
┌─────────────────────────────────────────────────────────────────────┐
│ backlog todo in-progress done │
├─────────────────────────────────────────────────────────────────────┤
│ TASK-003 [P3] TASK-002 [P2] TASK-001 [P1] │
│ Write tests Update docs Fix auth bug │
└─────────────────────────────────────────────────────────────────────┘
Move Tasks
mc task move TASK-001 in-progress
mc task move TASK-001 done
Next Task
Get the highest-priority unblocked task:
mc task next
Filtering
mc list tasks --status in-progress --priority 1
mc list tasks --sprint 2026-W06 --owner alice
mc task board --project PROJ-001
Dependencies
Tasks can depend on other tasks:
mc new task "Deploy to prod" --depends-on TASK-001,TASK-002
Blocked tasks are hidden from mc task next until their dependencies are done.
AI Agent Integration (MCP)
Connect your AI editor to mc with one command:
Claude Code:
claude mcp add mc -- mc mcp
Cursor, Windsurf, Claude Desktop (add to your MCP config):
{
"mcpServers": {
"mc": {
"command": "mc",
"args": ["mcp"]
}
}
}
VS Code (.vscode/mcp.json):
{
"servers": {
"mc": {
"type": "stdio",
"command": "mc",
"args": ["mcp"]
}
}
}
Now your AI assistant can create tasks, move them through the board, query status, create meetings, and more.
Available MCP Tools
All tools return JSON with documented fields. Parameter descriptions include valid values, defaults, and examples — AI agents can discover the full API from the tool schema alone.
| Tool | Description |
|---|---|
get_status |
Status overview with per-entity counts and recent activity |
list_entities |
List entities by kind with optional status/tag filters |
list_tasks |
List tasks with rich filtering (status, project, customer, priority, sprint, owner, tag) |
get_entity |
Get entity detail with frontmatter fields and body preview |
read_entity_file |
Read full markdown content (YAML frontmatter + body) |
create_task |
Create a task (with priority, sprint, dependencies, scoping) |
create_sprint |
Create a sprint |
create_meeting |
Create a meeting |
create_research |
Create a research topic |
create_customer |
Create a customer (standalone only) |
create_project |
Create a project (standalone only) |
create_contact |
Create a contact under a customer (standalone only) |
create_proposal |
Create a proposal / decision record (standalone only) |
move_task |
Move a task to a new status, optionally assign a sprint |
print_meeting |
Export meeting to PDF |
print_research |
Export research to PDF |
print_file |
Generate branded PDF from any markdown file |
validate_repo |
Validate repo structure and frontmatter |
build_index |
Rebuild JSON index files for the web dashboard |
MCP Resources
Resources provide read-only data snapshots. Start with mc://config to discover valid status values and ID prefixes.
| Resource | Description |
|---|---|
mc://config |
Valid status values, ID prefixes, and directory paths |
mc://entities/customers |
All customers (standalone only) |
mc://entities/contacts |
All contacts |
mc://entities/projects |
All projects (standalone only) |
mc://entities/meetings |
All meetings |
mc://entities/research |
All research topics |
mc://entities/tasks |
All tasks (unfiltered — use list_tasks tool for filtering) |
mc://entities/sprints |
All sprints |
mc://entities/proposals |
All proposals |
Web Dashboard
Browse all your data in a local web UI:
mc serve
# Open http://localhost:5000
Installation
From crates.io
cargo install mc
Prebuilt Binaries
Download from GitHub Releases:
| Platform | Archive |
|---|---|
| macOS (Apple Silicon) | mc-macos-arm64.tar.gz |
| macOS (Intel) | mc-macos-amd64.tar.gz |
| Linux (x86_64) | mc-linux-amd64.tar.gz |
| Linux (arm64) | mc-linux-arm64.tar.gz |
tar xzf mc-<platform>.tar.gz
sudo mv mc /usr/local/bin/
Build from Source
git clone https://github.com/RaaSaaR-org/mission-control.git
cd mission-control
cargo build --release
# Binary is at target/release/mc
Configuration
Config lives at .mc/config.yml (embedded) or config/config.yml (standalone). It controls:
- Directory paths for each entity type
- ID prefixes (
CUST,CONT,PROJ,MTG,RES,TASK,SPR,PROP) - Allowed status values per entity type
The defaults work out of the box. Edit the config when you want to customize status workflows or add new prefixes.
CLI Reference
| Command | Description |
|---|---|
mc init |
Initialize a new repo (use --embedded for existing projects) |
mc new <type> "name" |
Create a new entity |
mc list <type> |
List entities with optional filters |
mc show <ID> |
Display entity details |
mc task board |
Kanban board view |
mc task move <ID> <status> |
Change task status |
mc task next |
Show next actionable task |
mc validate |
Check repo structure and frontmatter |
mc status |
Dashboard with counts and recent activity |
mc print meeting <ID> |
Export meeting to PDF |
mc print research <ID> |
Export research to PDF |
mc print file <path> |
Generate branded PDF from any markdown file |
mc index |
Rebuild JSON index files (data/*.json) |
mc export <type> <ID> |
Export entity to a zip archive |
mc serve |
Start web dashboard |
mc mcp |
Start MCP server |
Use mc <command> --help for detailed options.
Contributing
CI runs on every push and PR:
cargo fmt --checkcargo clippy -- -D warningscargo testcargo build --release
See CLAUDE.md for architecture details and build commands.
License
MIT
Dependencies
~42–57MB
~563K SLoC