mc 0.1.9

Git-based knowledge management CLI — manage customers, projects, meetings, research and tasks with Markdown + YAML frontmatter
mc-0.1.9 is not a library.

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.

Crates.io License: MIT CI

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 frontmattergit 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, 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 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 for architecture details and build commands.

License

MIT