Scripts Directory

April 9, 2026 · View on GitHub

CI/Dev tools for validation, testing, and release of the Dravr MCP Server.

For runtime scripts (starting/stopping services), see bin/README.md.

Directory Structure

scripts/
├── ci/                              # CI pipelines & pre-push validation
│   ├── architectural-validation.sh  # Custom architectural pattern validation
│   ├── validation-patterns.toml     # Pattern definitions for arch validation
│   ├── parse-validation-patterns.py # TOML pattern parser
│   ├── lint-and-test.sh             # Full CI validation suite
│   ├── validate-no-secrets.sh       # Secret/credential detection
│   ├── ensure-mcp-compliance.sh     # MCP protocol compliance
│   ├── security-review.sh           # Authorization & tenant isolation checks
│   ├── check-input-validation.sh    # Division-by-zero, pagination, range checks
│   ├── pre-push-validate.sh         # Marker-based pre-push orchestrator
│   ├── pre-push-frontend-tests.sh   # Web frontend pre-push validation
│   └── pre-push-mobile-tests.sh     # Mobile pre-push validation
├── testing/                         # Manual/integration test scripts
│   ├── test-postgres.sh             # PostgreSQL integration (requires Docker)
│   ├── run-bridge-tests.sh          # SDK bridge test suite
│   └── clean-test-databases.sh      # Test database cleanup
├── release/                         # Release management
│   ├── prepare-release.sh           # Version bump, validation, commit + tag
│   └── validate-release.sh          # Pre-release consistency checks
├── setup/                           # Dev environment setup
│   ├── setup-claude-code-mcp.sh     # Claude Code session JWT setup
│   ├── check-gh-cli.sh             # GitHub CLI availability check
│   └── add-license-headers.sh       # SPDX license header management
├── sdk/                             # SDK tooling
│   ├── generate-sdk-types.js        # TypeScript type generation from server schemas
│   └── validate-sdk-schemas.sh      # SDK schema drift detection
├── profiling/                       # Performance profiling
│   ├── benchmark-compare.sh         # Criterion benchmark comparison
│   ├── flamegraph.sh                # CPU flamegraph generation
│   └── memory-profile.sh            # Memory profiling with DHAT/Valgrind
└── README.md                        # This file

Usage by Category

Validation (Run Before Commit)

cargo fmt                                        # Format code
./scripts/ci/architectural-validation.sh         # Architectural patterns
cargo clippy -p <changed-crate>                  # Linting
cargo test --test <test_file> <pattern>          # Targeted tests

Testing Hierarchy

LevelWhenCommand
TargetedDuring developmentcargo test --test <test_file> <pattern>
Pre-pushBefore git push./scripts/ci/pre-push-validate.sh
Full CIBefore merge./scripts/ci/lint-and-test.sh

Frontend/Mobile Tests

./scripts/ci/pre-push-frontend-tests.sh   # ~5-10 seconds
./scripts/ci/pre-push-mobile-tests.sh     # ~5-10 seconds

Specialized Testing

./scripts/testing/test-postgres.sh         # PostgreSQL integration (Docker)
./scripts/testing/run-bridge-tests.sh      # SDK/Bridge tests
./scripts/ci/ensure-mcp-compliance.sh      # MCP protocol compliance

Cleanup

./scripts/testing/clean-test-databases.sh  # Remove test databases

Release

./scripts/release/prepare-release.sh 0.3.0           # Full release
./scripts/release/prepare-release.sh 0.3.0 --dry-run  # Preview changes

Script Dependencies

  • ci/architectural-validation.sh depends on ci/validation-patterns.toml and ci/parse-validation-patterns.py
  • ci/architectural-validation.sh calls ci/security-review.sh and ci/check-input-validation.sh when --apply-skills is passed
  • ci/lint-and-test.sh orchestrates ci/ scripts plus testing/run-bridge-tests.sh and testing/clean-test-databases.sh
  • ci/pre-push-validate.sh calls ci/architectural-validation.sh, ci/pre-push-frontend-tests.sh, and ci/pre-push-mobile-tests.sh
  • release/prepare-release.sh calls release/validate-release.sh