# mc — project management for developers and AI agents
Manage tasks, meetings, research, 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.
[](https://crates.io/crates/mc)
[](LICENSE)
[](https://github.com/RaaSaaR-org/mission-control/actions)
## Quickstart
```bash
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 diff` your 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** — 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, and sprints.
```bash
cd my-project
mc init --embedded
```
```
my-project/
├── .mc/
│ ├── config.yml
│ ├── tasks/
│ ├── meetings/
│ ├── research/
│ └── sprints/
└── (your code)
```
### Standalone Mode (for portfolios and CRM)
Create a dedicated repository for managing customers, projects, and all related work.
```bash
mc init --name "My Company"
```
```
my-company/
├── config/config.yml
├── customers/
├── projects/
├── meetings/
├── research/
├── tasks/
└── sprints/
```
Standalone mode adds **customers** and **projects** — useful for agencies, freelancers, or anyone managing multiple clients.
## What You Can Track
| **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"` |
| **Projects** | Project containers (standalone only) | `mc new project "Robot Arm" --customers CUST-001` |
## Task Management
Tasks are first-class citizens with a full kanban workflow.
### Kanban Board
```bash
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
```bash
mc task move TASK-001 in-progress
mc task move TASK-001 done
```
### Next Task
Get the highest-priority unblocked task:
```bash
mc task next
```
### Filtering
```bash
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:
```bash
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:**
```bash
claude mcp add mc -- mc mcp
```
**Cursor, Windsurf, Claude Desktop** (add to your MCP config):
```json
{
"mcpServers": {
"mc": {
"command": "mc",
"args": ["mcp"]
}
}
}
```
**VS Code** (`.vscode/mcp.json`):
```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
| `list_entities` | List entities by kind with optional filters |
| `list_tasks` | List tasks with rich filtering (project, sprint, priority, owner) |
| `get_entity` | Get details about any entity |
| `create_task` | Create a new task |
| `create_sprint` | Create a new sprint |
| `create_meeting` | Create a meeting |
| `create_research` | Create a research topic |
| `move_task` | Move a task to a new status |
| `print_meeting` | Export meeting to PDF |
| `print_research` | Export research to PDF |
| `validate_repo` | Check repo structure |
| `get_status` | Dashboard with counts and recent activity |
## Web Dashboard
Browse all your data in a local web UI:
```bash
mc serve
# Open http://localhost:5000
```
## Installation
### From crates.io
```bash
cargo install mc
```
### Prebuilt Binaries
Download from [GitHub Releases](https://github.com/RaaSaaR-org/mission-control/releases):
| 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` |
```bash
tar xzf mc-<platform>.tar.gz
sudo mv mc /usr/local/bin/
```
### Build from Source
```bash
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 (`TASK`, `MTG`, `RES`, `SPR`, etc.)
- 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
| `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 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 --check`
- `cargo clippy -- -D warnings`
- `cargo test`
- `cargo build --release`
See [CLAUDE.md](CLAUDE.md) for architecture details and build commands.
## License
MIT