Skip to Content
SpecificationExtensions

Extensions

The extensions object provides a namespace for domain-specific metadata not covered by the core specification.

Namespace format

Extension keys MUST use reverse-domain notation:

{ "extensions": { "com.example": { "custom_field": "value" }, "org.c2pa": { "manifest_uri": "https://example.com/c2pa/manifest.cbor" }, "io.modelcontextprotocol": { "server_name": "my-server", "tool_name": "generate" } } }

Rules

  • Extension keys MUST be valid reverse-domain strings
  • Extensions MUST NOT redefine core schema fields
  • Consumers MUST ignore unrecognised extensions (fail-open)
  • Extensions SHOULD be documented by their namespace owners

Well-known extensions

NamespaceOwnerPurpose
org.c2paC2PALinks to Content Credentials manifests
io.modelcontextprotocolMCPModel Context Protocol integration metadata
org.schemaSchema.orgSchema.org CreativeWork property mappings

C2PA integration example

{ "extensions": { "org.c2pa": { "manifest_uri": "https://example.com/c2pa/manifest.cbor", "claim_generator": "example-platform/1.0" } } }

MCP integration example

{ "extensions": { "io.modelcontextprotocol": { "server_name": "product-description-server", "server_version": "1.0.0", "tool_name": "generate_description", "session_id": "mcp-session-abc123" } } }

Registering a namespace

There is no formal registration process. By convention, use the reverse-domain notation of a domain you control. Document your extension schema publicly to enable interoperability.

Last updated on