1212[ ![ License: MIT] ( https://img.shields.io/badge/License-MIT-yellow.svg )] ( https://opensource.org/licenses/MIT )
1313[ ![ Python 3.10+] ( https://img.shields.io/badge/python-3.10+-blue.svg )] ( https://www.python.org/downloads/ )
1414[ ![ PyPI] ( https://img.shields.io/pypi/v/cloakmcp.svg )] ( https://pypi.org/project/cloakmcp/ )
15- [ ![ Version] ( https://img.shields.io/badge/version-0.12.2 -orange.svg )] ( https://github.com/ovitrac/CloakMCP/releases )
15+ [ ![ Version] ( https://img.shields.io/badge/version-0.12.3 -orange.svg )] ( https://github.com/ovitrac/CloakMCP/releases )
1616[ ![ Tests] ( https://img.shields.io/badge/tests-382%20passing-brightgreen.svg )] ( ./tests )
1717[ ![ MCP] ( https://img.shields.io/badge/MCP-6%20tools-blueviolet.svg )] ( #mcp-tool-server--6-tools )
1818[ ![ DeepWiki] ( https://img.shields.io/badge/Docs-DeepWiki-purple.svg )] ( https://deepwiki.com/ovitrac/CloakMCP )
@@ -428,7 +428,7 @@ sequenceDiagram
428428│ └── <project-slug>.vault # Encrypted JSON mapping {TAG → secret}
429429└── backups/
430430 └── <project-slug>/ # Pre-redaction backups (auto-cleaned on session end)
431- └── <timestamp>/ # Timestamped snapshot (outside project tree )
431+ └── <timestamp>.enc # Encrypted backup (Fernet + HKDF-derived key )
432432```
433433
434434Backups can be restored with ` cloak restore --from-backup --backup-id <timestamp> --force ` .
@@ -678,56 +678,64 @@ All endpoints require Bearer token authentication. Server binds to `127.0.0.1` o
678678``` bash
679679pip install -e " .[test]"
680680
681- # Run all tests (282 passing)
681+ # Run all tests (382 passing)
682682pytest
683683
684684# Run with coverage
685685pytest --cov=cloakmcp --cov-report=term
686686```
687687
688- ** Test suite** : 282 tests across 7 test files covering unit tests, integration tests, API tests, hook tests, MCP server tests, and enterprise policy tests.
688+ ** Test suite** : 382 tests across 10 test files covering unit tests, integration tests, API tests, hook tests, MCP server tests, enterprise policy tests, backup encryption, key wrapping, backup lifecycle, and cross-platform hooks .
689689
690690---
691691
692692## Project Structure
693693
694694```
695695CloakMCP/
696- ├── cloakmcp/ # Main package (15 modules, ~3,800 LOC)
696+ ├── cloakmcp/ # Main package (16 modules, ~4,200 LOC)
697697│ ├── __init__.py
698698│ ├── actions.py # Action engine (redact, pseudonymize, etc.)
699699│ ├── audit.py # Audit logging
700- │ ├── cli.py # CLI entry point (scan, sanitize, pack, unpack, hook)
700+ │ ├── cli.py # CLI entry point (scan, sanitize, pack, unpack, hook, install )
701701│ ├── dirpack.py # Directory pack/unpack walker
702702│ ├── fastmcp_server.py # FastMCP server (cloak serve, 6 tools)
703703│ ├── filepack.py # Text-level pack/unpack with overlap dedup
704- │ ├── hooks.py # Claude Code hooks (session-start/end, guard-write)
704+ │ ├── hooks/ # Claude Code hooks package (v0.12.0)
705+ │ │ ├── __init__.py # Hook handlers (session, guard-write, prompt-guard, etc.)
706+ │ │ └── __main__.py # python -m cloakmcp.hooks entrypoint
707+ │ ├── installer.py # Cross-platform hook installer (cloak install)
705708│ ├── mcp_server.py # MCP tool server (JSON-RPC 2.0 over stdio)
706709│ ├── normalizer.py # Text normalization
707710│ ├── policy.py # Policy engine (YAML, inheritance, merging)
708711│ ├── scanner.py # Secret detectors (regex, entropy, IP, URL, email)
709712│ ├── server.py # FastAPI REST server (localhost)
710- │ ├── storage.py # Vault encryption (Fernet AES-128)
713+ │ ├── storage.py # Vault encryption (Fernet AES-128, scrypt key wrapping )
711714│ └── utils.py # Utilities (hashing, encoding)
712- ├── tests/ # Test suite (282 tests, 7 files)
715+ ├── tests/ # Test suite (382 tests, 10 files)
716+ │ ├── conftest.py # Autouse fixture for ~/.cloakmcp/ artifact cleanup
713717│ ├── test_comprehensive.py # Full feature tests
714718│ ├── test_api.py # API endpoint tests
715719│ ├── test_filepack.py # Pack/unpack round-trip tests
716720│ ├── test_hooks.py # Claude Code hook tests (session, guard, repack)
717721│ ├── test_mcp_server.py # MCP server protocol tests
718722│ ├── test_policy_enterprise.py # Enterprise policy profile tests
723+ │ ├── test_backup_encryption.py # HKDF backup encryption tests
724+ │ ├── test_key_wrapping.py # Tier 1 scrypt key wrapping tests
725+ │ ├── test_backup_lifecycle.py # Backup migrate/prune tests
726+ │ ├── test_cross_platform_hooks.py # Cross-platform hook installer tests
719727│ └── test_smoke.py # Basic smoke test
720728├── docs/ # Developer documentation
721729│ ├── QUICKSTART.md # First-time setup, FAQ, compatibility
722730│ ├── QUICKREF.md # Cheat sheet (all CLI commands)
723731│ ├── SERVER.md # Server configuration and security model
724732│ ├── VSCODE_MANUAL.md # Complete VS Code integration guide
725733│ ├── GROUP_POLICY_IMPLEMENTATION.md # Group policy inheritance details
726- │ └── THREAT_MODEL.md # Threat model and security analysis
727- │ └ ── scripts/ # Bundled installer + hooks (included in PyPI wheel)
728- │ ├── install_claude.sh # Idempotent hook installer (--profile, --dry-run )
729- │ ├── hooks/ # Hook shell scripts (7 tracked scripts)
730- │ └── settings/ # Settings templates (hooks.json, hooks-hardened.json)
734+ │ └── THREAT_MODEL.md # Threat model and security analysis (v0.12.0)
735+ ├ ── cloakmcp/ scripts/ # Bundled installer + hooks (included in PyPI wheel)
736+ │ ├── install_claude.sh # Legacy bash installer (use cloak install instead )
737+ │ ├── hooks/ # 7 .sh + 7 .py hook scripts (cross-platform )
738+ │ └── settings/ # Settings templates (hooks-cli .json, hooks-hardened.json, etc. )
731739├── demo/ # Live demo (Spring Boot banking service)
732740│ ├── llm_demo.sh # LLM demo (Ollama / Claude)
733741│ ├── mcp_demo.sh # MCP protocol + hook lifecycle demo
@@ -749,7 +757,7 @@ CloakMCP/
749757├── .mcp.json # MCP server discovery for Claude Code
750758├── .vscode/ # VS Code integration (tasks, keybindings)
751759├── .mcpignore # Pack/unpack exclusion patterns
752- ├── pyproject.toml # Package metadata (v0.10.1 )
760+ ├── pyproject.toml # Package metadata (v0.12.3 )
753761├── pytest.ini # Pytest configuration
754762├── CHANGELOG.md # Full release history
755763├── SECURITY.md # Security policy and disclosure
@@ -806,7 +814,7 @@ Commit convention: `type(scope): description` (e.g., `feat(hooks): add guard-wri
806814
807815See ** [ ` CHANGELOG.md ` ] ( CHANGELOG.md ) ** for the full release history.
808816
809- ** Latest** : v0.10.1 — Test artifact cleanup (v0.10.0: encrypted backups at rest , v0.9 .0: G1-G5 )
817+ ** Latest** : v0.12.3 — README sync (v0.12.2: demo fix, v0.12.0: cross-platform hooks , v0.11 .0: key hardening )
810818
811819---
812820
0 commit comments