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
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>
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
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>
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
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>
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