{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "title": "MCP Reference Metadata",
  "type": "object",
  "required": [
    "id",
    "name",
    "type",
    "provider",
    "harnesses",
    "summary",
    "source_type",
    "official_docs",
    "security_notes",
    "last_verified",
    "path",
    "official_project_url",
    "vendor",
    "auth_model",
    "install_example",
    "unofficial_warning"
  ],
  "properties": {
    "id": {
      "type": "string",
      "pattern": "^[a-z0-9][a-z0-9-]*$"
    },
    "name": {
      "type": "string",
      "minLength": 1
    },
    "type": {
      "const": "mcp-reference"
    },
    "provider": {
      "enum": [
        "aws",
        "azure",
        "oracle",
        "oci",
        "gcp",
        "kubernetes",
        "terraform",
        "multi-cloud",
        "generic",
        "microsoft",
        "databricks",
        "snowflake"
      ]
    },
    "harnesses": {
      "type": "array",
      "minItems": 1,
      "items": {
        "enum": [
          "codex",
          "copilot",
          "claude-code",
          "cursor",
          "gemini",
          "kiro",
          "other"
        ]
      }
    },
    "summary": {
      "type": "string",
      "minLength": 20
    },
    "source_type": {
      "enum": [
        "original",
        "adapted",
        "reference-only"
      ]
    },
    "official_docs": {
      "type": "array",
      "minItems": 1,
      "items": {
        "type": "string",
        "format": "uri"
      }
    },
    "security_notes": {
      "type": "string",
      "minLength": 20
    },
    "last_verified": {
      "type": "string",
      "pattern": "^\\d{4}-\\d{2}-\\d{2}$"
    },
    "path": {
      "type": "string",
      "minLength": 1
    },
    "official_project_url": {
      "type": "string",
      "format": "uri"
    },
    "vendor": {
      "type": "string",
      "minLength": 1
    },
    "auth_model": {
      "type": "string",
      "minLength": 10
    },
    "install_example": {
      "type": "string",
      "minLength": 10
    },
    "unofficial_warning": {
      "type": "string",
      "minLength": 10
    },
    "trust_matrix": {
      "type": "object",
      "description": "Structured trust posture for this MCP server. Optional today; promoted to required in a future release once the corpus is fully back-filled. Treats the MCP server as the remote-code-execution surface it actually is.",
      "required": [
        "mutation_capable",
        "requires_egress",
        "requires_credentials",
        "signed_release",
        "pin_strategy"
      ],
      "properties": {
        "mutation_capable": {
          "type": "boolean",
          "description": "True if any tool exposed by the server can mutate state (create/update/delete on a target system, send messages, write files, etc.)."
        },
        "requires_egress": {
          "type": "boolean",
          "description": "True if the server requires outbound network egress (remote API calls, registry pulls, OIDC issuance)."
        },
        "requires_credentials": {
          "type": "boolean",
          "description": "True if the server requires credentials (API keys, tokens, kubeconfig, cloud SDK auth)."
        },
        "signed_release": {
          "type": "string",
          "description": "Release signing posture. 'cosign' = signed with Sigstore cosign; 'gh-attestation' = GitHub artifact attestation; 'unsigned' = no verifiable signature; 'unknown' = not verified by maintainers of this repo.",
          "enum": ["cosign", "gh-attestation", "unsigned", "unknown"]
        },
        "pin_strategy": {
          "type": "string",
          "description": "How a consumer should pin this server. 'digest' = pin by image/commit digest; 'tag' = pin by version tag (mutable); 'version' = pin by published version string; 'none' = no pinning advised by upstream.",
          "enum": ["digest", "tag", "version", "none"]
        }
      },
      "additionalProperties": false
    }
  },
  "additionalProperties": true
}