Skip to main content

CMMC 2.0 Level 2 compliance scanner and admin dashboard for web application teams

Project description

cmmc2-toolkit

A self-contained Python package that gives any web application team a CMMC 2.0 Level 2 compliance scanner and admin dashboard — installable via pip, zero infrastructure required.

Features

  • 62 controls — all CMMC Level 1 (17), Level 2 practices, and optional Level 3 (24) controls
  • Auto-scan for 5 platforms: Flask, Django, FastAPI, Express/Node.js, Spring Boot
  • Dashboard — per-project compliance tracker with status, progress, target dates, and audit log
  • POA&M — Plan of Action & Milestones view for Gap / Partial / Manual controls
  • Excel export — one-click 3-tab workbook (Dashboard, POA&M, Audit Log)
  • Audit log — every status change timestamped and attributed to a user
  • REST API — agent ingest endpoint for CI/CD pipeline integration

Quickstart

pip install cmmc2-toolkit

cmmc2 serve                        # launch dashboard at http://localhost:5050
cmmc2 scan --path /path/to/project # run programmatic checks (CLI mode)
cmmc2 export --out poam.xlsx       # export POA&M to Excel

On first launch the dashboard creates an admin account automatically (admin / BWIadmin!2026 — change it immediately).

Supported platforms

Platform Auto-detected by Auto-checks
Flask flask in requirements / app.py 25 controls
Django django in requirements / manage.py 25 controls
FastAPI fastapi in requirements / main.py 25 controls
Express / Next.js express or next in package.json 25 controls
Spring Boot / WildFly spring-boot in pom.xml / WEB-INF 25 controls

Unsupported platforms fall back to full manual tracking mode.

Dashboard

cmmc2 serve --port 5050
  • Create projects by URL or local path
  • Run a live scan against a local codebase
  • Track status (Pass / Gap / Partial / Manual) per control
  • Every status change requires a note — written to the immutable audit log
  • Level 3 controls (NIST SP 800-172) are opt-in per project
  • Export the full workbook (Dashboard + POA&M + Audit Log tabs) with one click

On Windows, use the included serve.ps1 launcher if cmmc2 is not yet on your PATH.

Architecture

cmmc2toolkit/
├── controls.py          # 62 CMMC control definitions (L1 + L2 + L3)
├── models.py            # Control, Finding dataclasses
├── cli.py               # click CLI (scan | serve | export | init)
├── detector/            # auto-detect platform from project files
├── adapters/            # platform-specific check runners
├── checks/              # atomic grep-based check functions
├── store/               # SQLiteStore + StoreBase ABC
├── auth/                # password hashing, TOTP, session management
├── dashboard/           # Flask micro-app (routes + Jinja2 templates)
└── export.py            # openpyxl 3-tab Excel export

Contributing an adapter

  1. Subclass AdapterBase in cmmc2toolkit/adapters/adapter_<platform>.py
  2. Implement check_all() -> list[Finding]
  3. Register it in adapters/base.pyget_adapter() registry
  4. Add fingerprint rules in detector/fingerprints.py
  5. Open a PR

License

MIT

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

cmmc2_toolkit-0.2.0.tar.gz (50.1 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

cmmc2_toolkit-0.2.0-py3-none-any.whl (68.2 kB view details)

Uploaded Python 3

File details

Details for the file cmmc2_toolkit-0.2.0.tar.gz.

File metadata

  • Download URL: cmmc2_toolkit-0.2.0.tar.gz
  • Upload date:
  • Size: 50.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.14.6

File hashes

Hashes for cmmc2_toolkit-0.2.0.tar.gz
Algorithm Hash digest
SHA256 7d0357034a0a90c3ed5e2a4b20a2ccf11cd256b618f65ade6d54a9a2aa5fdd84
MD5 9d9eb04d2c12bb5c112f26fcd872a61c
BLAKE2b-256 ba2faecc936f74f8134dea32fcfad2ab56530f7727fb651bfc2e7236e7fcd8e0

See more details on using hashes here.

File details

Details for the file cmmc2_toolkit-0.2.0-py3-none-any.whl.

File metadata

  • Download URL: cmmc2_toolkit-0.2.0-py3-none-any.whl
  • Upload date:
  • Size: 68.2 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.14.6

File hashes

Hashes for cmmc2_toolkit-0.2.0-py3-none-any.whl
Algorithm Hash digest
SHA256 dbb3347e9846fa6abdf9346fe0a12f5b73b9805ebbd4dffe556d05b7eb694773
MD5 0ba2426eeb44d45377273c44cab5c7c0
BLAKE2b-256 576aaa0b50bd96e462ec1ad5285a928b4aa60570ca2a72d7fc401bf62ff348e7

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page