mc 0.1.1

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

mc -- MissionControl CLI

A command-line tool for managing git-based knowledge repositories. Scaffolds new entities, validates repo structure, builds JSON indexes, exports archives, and serves a local dashboard.

Installation

From crates.io

cargo install mc

Prebuilt binaries

Download the latest release for your platform from the GitHub Releases page:

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

Extract and place mc somewhere on your PATH:

tar xzf mc-<platform>.tar.gz
sudo mv mc /usr/local/bin/

Build from source

cargo install --git https://github.com/RaaSaaR-org/mission-control

Or clone and build locally:

git clone https://github.com/RaaSaaR-org/mission-control.git
cd mission-control
cargo build --release
# Binary is at target/release/mc

Usage

mc [--root <PATH>] [-y|--yes] <COMMAND>
Flag Description
--root <PATH> Path to repo root (auto-detected if omitted)
-y, --yes Skip interactive prompts and use defaults

Commands

Command Description
mc new <type> "<name>" Scaffold a new entity from template
mc list <type> List entities with optional --status / --tag filters
mc list tasks List tasks with --project, --customer, --priority, --sprint, --owner filters
mc show <ID> Display entity details
mc validate Check naming conventions, frontmatter, and repo structure
mc index Rebuild JSON indexes in data/
mc export customer <ID> Export a customer folder to ZIP
mc status Repo overview with status counts
mc serve [--port PORT] Local web dashboard (default port: 5000)
mc mcp Start MCP server over stdio

mc new

Creates directories, files, and YAML frontmatter from templates. IDs are assigned automatically.

mc new customer "Acme Corp" --owner alice --status active --tags "robotics,eu"
mc new project "Robot Arm" --customers CUST-001
mc new meeting "Sprint Review" --date 2026-02-03 --time 14:00 --duration 1h
mc new research "Humanoid Robotics" --agents claude,gemini,perplexity
mc new task "Fix sensor calibration" --project PROJ-001 --priority 2

mc validate

Checks all entities for:

  • Folder/file naming conventions
  • Frontmatter presence and YAML validity
  • Required fields (id, name/title, status)
  • ID prefix correctness
  • Status values against config/config.yml

Exits with code 1 if any issues are found.

Configuration

The CLI reads config/config.yml from the repo root. This file defines directory paths, ID prefixes (CUST, PROJ, MTG, RES, TASK), and allowed status values per entity type.

MCP Server Integration

The mc mcp command exposes all CLI functionality as MCP tools and resources, allowing AI assistants to interact with MissionControl directly.

Editor setup

--root is a global flag and must come before the mcp subcommand.

If mc is installed via cargo install mc (or a prebuilt binary on your PATH), use mc as the command. Otherwise replace with the full path to the binary.

Claude Code:

claude mcp add mc -- mc --root /absolute/path/to/repo mcp

Cursor (.cursor/mcp.json), Windsurf (~/.codeium/windsurf/mcp_config.json), Claude Desktop (~/Library/Application Support/Claude/claude_desktop_config.json):

{
  "mcpServers": {
    "mc": {
      "command": "mc",
      "args": ["--root", "/absolute/path/to/repo", "mcp"]
    }
  }
}

VS Code (.vscode/mcp.json):

{
  "servers": {
    "mc": {
      "type": "stdio",
      "command": "mc",
      "args": ["--root", "/absolute/path/to/repo", "mcp"]
    }
  }
}

Available MCP tools

Tool Description
list_entities List entities by kind with optional filters
get_entity Get detailed info about an entity
read_entity_file Read full markdown content
create_customer Create a new customer
create_project Create a new project
create_meeting Create a new meeting
create_research Create a new research topic
create_task Create a new task
move_task Move a task to a new status
list_tasks List tasks with rich filtering
print_meeting Export a meeting to PDF
print_research Export a research topic to PDF
validate_repo Check repo structure and frontmatter
build_index Rebuild JSON index files
get_status Status overview with counts and recent activity

Available MCP resources

URI Description
mc://config Repository configuration
mc://entities/customers All customers
mc://entities/projects All projects
mc://entities/meetings All meetings
mc://entities/research All research topics
mc://entities/tasks All tasks

CI/CD

Continuous integration

Every push to main and every pull request runs:

  1. cargo fmt --check
  2. cargo clippy -- -D warnings
  3. cargo test
  4. cargo build --release

Releasing a new version

Releases are fully automated. When you push a version tag, the pipeline builds platform binaries, creates a GitHub Release, and publishes to crates.io.

  1. Bump the version in Cargo.toml
  2. Commit and push:
    git add Cargo.toml Cargo.lock
    git commit -m "Bump version to 0.2.0"
    git push
    
  3. Tag and push:
    git tag v0.2.0
    git push origin v0.2.0
    
Job What it does
build Cross-compiles binaries for Linux and macOS (amd64 + arm64)
release Attaches .tar.gz archives to a GitHub Release
publish Publishes the crate to crates.io

One-time setup: Add your crates.io API token as the GitHub secret CARGO_REGISTRY_TOKEN in repo Settings > Secrets and variables > Actions.

License

MIT