DEVELOPER TOOLING

MSR Command Line Utility (msr)

The specified command surface for authoring, linting, signing and converting MSR JSON manifests in local workflows and CI/CD pipelines. It is a contract for implementers, not a released binary — validate a manifest today with the recipe below.

Installation

The reference CLI has not been released

msr has no published binary, no package on any registry and no install script. The command surface documented below is the specified design, not shipped software. Until the first signed release exists, validate manifests with the browser validator or with the local recipe below, which depends on nothing from this project.

Validate a manifest today

An MSR JSON manifest is ordinary JSON Schema 2020-12, so any conforming validator checks it against the canonical schema. Both recipes below use independently published tools and work right now.

pip install check-jsonschema

check-jsonschema \
  --schemafile https://msr-standard.org/schemas/msr-2.0.json \
  .well-known/msr.json
npx ajv-cli validate --spec=draft2020 \
  -s https://msr-standard.org/schemas/msr-2.0.json \
  -d .well-known/msr.json

Command Reference Planned

The surface below is normative design for the reference implementation. No command here is executable yet; treat it as the contract a conforming CLI must satisfy.

msr validate <path>
Core

Validate Manifest Against Specification

Validates a local JSON manifest file or remote HTTPS URL against canonical JSON Schema (Draft 2020-12) rules, confirming required fields, SemVer strings, and artifact hashes.

  • --schema <url>: Custom schema override
  • --strict: Treat warnings as errors
  • --json: Output machine-readable JSON validation report
# Validate local manifest
msr validate .well-known/msr.json

# Validate remote live manifest
msr validate https://lanternly.dev/.well-known/msr.json --strict
msr generate
Scaffolding

Interactive Manifest Generator

Guides developers through an interactive prompt to create a fully conformant .well-known/msr.json manifest with automatic detection of git remotes, licenses, and OpenAPI specs.

  • --type <saas|mcp|api|agent|desktop>: Pre-select archetype
  • --output <file>: Destination path (defaults to .well-known/msr.json)
# Interactive generator
msr generate --type mcp-server

# Non-interactive quick template
msr generate --type saas --domain example.org --output msr.json
msr lint <path>
Quality

Manifest Style & Best Practice Linter

Performs heuristic analysis beyond basic schema validation: checks for broken URLs, ensures summary character lengths stay within optimal search snippet limits, and verifies SHA-256 binary lengths.

# Lint manifest
msr lint .well-known/msr.json
msr convert
Migration

Convert Legacy Formats to MSR JSON

Automatically translates legacy ASP PAD XML files or package manager configs (package.json, pyproject.toml) into valid MSR v2.0 JSON manifests.

# Convert legacy PAD XML
msr convert --from-pad application.xml --output .well-known/msr.json

# Extract from npm package.json
msr convert --from-package package.json --output msr.json
msr sign <path>
Security

Cryptographic Attestation & Signing

Signs a manifest using an Ed25519 or ECDSA private key per RFC 0003, inserting canonical signatures into the trust.signatures block.

# Generate keypair
msr keygen --algorithm ed25519 --out private.pem

# Sign manifest
msr sign .well-known/msr.json --key private.pem

GitHub Actions CI/CD Integration

Validate your manifest on every push and pull request. This workflow uses a published third-party validator, so it runs today and depends on no unreleased tooling:

name: Validate MSR Manifest
on: [push, pull_request]

jobs:
  validate:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - uses: actions/setup-python@v5
        with:
          python-version: '3.13'
      - run: pip install check-jsonschema
      - name: Validate against the canonical MSR JSON schema
        run: |
          check-jsonschema \
            --schemafile https://msr-standard.org/schemas/msr-2.0.json \
            .well-known/msr.json