MSP-1 schema

site

Describes the website as a top-level MSP-1 semantic entity, providing global identity, location, purpose, and protocol context for pages and resources within the site.

MSP-1 v1.0.2 • Core term

site schema definition

Machine-readable structure describing a website's MSP-1 identity, location, and optional site-level context.

site schema JSON


{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://msp-1.org/schema/site/site.json",
  "title": "MSP-1 Site Schema",
  "description": "Schema for representing a website as a top-level MSP-1 semantic entity, including stable identity, primary URL, and optional site-level context.",
  "$comment": "MSP-1 v1.0.2 treats site as an object with id, name, and url as the minimal required identity fields. Protocol and version context are recommended where useful, but are not required for minimal site identity.",
  "type": "object",

  "properties": {
    "id": {
      "type": "string",
      "minLength": 1,
      "description": "Stable identifier for the site, often based on the domain or canonical site identity."
    },

    "name": {
      "oneOf": [
        {
          "type": "string",
          "minLength": 1,
          "description": "Human-readable site name."
        },
        {
          "type": "object",
          "properties": {
            "display": {
              "type": "string",
              "minLength": 1,
              "description": "The preferred user-facing site name."
            },
            "formal": {
              "type": "string",
              "description": "The official or formally recognized site name."
            },
            "short": {
              "type": "string",
              "description": "Optional abbreviated site name."
            },
            "alt": {
              "type": "array",
              "description": "Optional alternate names for the site.",
              "items": {
                "type": "string"
              }
            },
            "language": {
              "type": "string",
              "description": "Language code associated with the name set."
            },
            "primary": {
              "type": "string",
              "enum": ["formal", "display", "short"],
              "description": "Indicates which naming form should be treated as the primary representation."
            },
            "scope": {
              "type": "string",
              "description": "Optional description of what the name applies to."
            },
            "lastUpdated": {
              "type": "string",
              "format": "date",
              "description": "Date the name set was last reviewed or updated."
            }
          },
          "required": ["display"],
          "additionalProperties": false
        }
      ],
      "description": "Human-readable site name or structured name declaration."
    },

    "url": {
      "type": "string",
      "format": "uri",
      "description": "Primary URL of the site."
    },

    "description": {
      "oneOf": [
        {
          "type": "string",
          "minLength": 1,
          "description": "High-level description of the site's purpose, scope, and content."
        },
        {
          "type": "object",
          "properties": {
            "short": {
              "type": "string",
              "minLength": 1,
              "description": "A concise site description."
            },
            "long": {
              "type": "string",
              "description": "An expanded descriptive narrative providing additional detail, context, or background."
            },
            "alt": {
              "type": "array",
              "description": "Optional alternate site descriptions.",
              "items": {
                "type": "string"
              }
            },
            "interpretiveFrame": {
              "type": "string",
              "description": "Optional framing statement that helps agents contextualize the description."
            },
            "language": {
              "type": "string",
              "description": "Language code for the description block."
            },
            "lastUpdated": {
              "type": "string",
              "format": "date",
              "description": "Date the description text was last updated or reviewed."
            }
          },
          "required": ["short"],
          "additionalProperties": false
        }
      ],
      "description": "High-level description of the site's purpose, scope, and content."
    },

    "intent": {
      "type": "string",
      "description": "Optional statement describing the site's primary purpose under MSP-1."
    },

    "protocol": {
      "oneOf": [
        {
          "type": "string",
          "description": "Legacy or compact protocol identity value."
        },
        {
          "type": "object",
          "properties": {
            "name": {
              "type": "string",
              "const": "MSP-1",
              "description": "Formal name of the protocol."
            },
            "version": {
              "type": "string",
              "pattern": "^\\d+\\.\\d+\\.\\d+$",
              "description": "Specific MSP-1 protocol version being implemented."
            },
            "supportedVersionRange": {
              "type": "string",
              "description": "Optional compatibility range for supported MSP-1 versions."
            },
            "documentation": {
              "type": "string",
              "format": "uri",
              "description": "Optional URL pointing to the relevant MSP-1 documentation or specification root."
            }
          },
          "required": ["name", "version"],
          "additionalProperties": false
        }
      ],
      "description": "Optional site-level MSP-1 protocol context. Object form is preferred for MSP-1 v1.0.2 declarations."
    },

    "version": {
      "type": "string",
      "pattern": "^\\d+\\.\\d+\\.\\d+$",
      "description": "Optional version identifier for the site's MSP-1 implementation or declared protocol context."
    },

    "lastUpdated": {
      "type": "string",
      "format": "date",
      "description": "Date when the site metadata was last reviewed or updated."
    },

    "notes": {
      "type": "string",
      "description": "Optional free-form notes relevant to the site declaration."
    }
  },

  "required": ["id", "name", "url"],

  "additionalProperties": false,

  "examples": [
    {
      "id": "msp-1-org",
      "name": "MSP-1 — Mark Semantic Protocol",
      "url": "https://msp-1.org/"
    },
    {
      "id": "msp-1-org",
      "name": "MSP-1 — Mark Semantic Protocol",
      "url": "https://msp-1.org/",
      "description": "An open, AI-first metadata protocol for machine-readable clarity.",
      "intent": "Provide a structured semantic layer that AI agents can reliably interpret.",
      "protocol": {
        "name": "MSP-1",
        "version": "1.0.2"
      },
      "version": "1.0.2"
    }
  ]
} 

Schema notes

The canonical MSP-1 v1.0.2 form for site is an object with id, name, and url as the minimal required site identity fields.

site should not be confused with page or discovery. site identifies the website-level semantic entity; page identifies an individual resource within the site; discovery identifies how MSP-1 metadata is located.