MCP resource schema

resources/list returns definitions, not resource bodies:

{
  "resources": [
    {
      "uri": "pom://site/authoring-context",
      "name": "POM site authoring context",
      "description": "…",
      "mimeType": "application/json"
    }
  ]
}

The list contains fixed POM guides plus up to 200 shortcode-item resources derived from the current runtime. Clients must not rely on a fixed count.

Read one URI with:

{
  "method": "resources/read",
  "params": {
    "uri": "pom://site/authoring-context"
  }
}

The initial response contains a task receipt as JSON text. Follow its poll_after_seconds delay and call pom_get_task; see background execution. The completed task's result has one content item:

{
  "contents": [
    {
      "uri": "pom://site/authoring-context",
      "mimeType": "application/json",
      "text": "{\"target\":…}"
    }
  ]
}

All payloads use text. When mimeType is application/json, decode text as JSON; when it is text/markdown, retain it as guidance. Reading an unknown URI returns the domain code pom_ai_mcp_resource_not_found.

File-backed template references have a 512 KiB read limit. A larger reference returns pom_ai_mcp_file_size instead of partial guidance. Resource discovery provides names and descriptions; read an individual resource to retrieve its full supported schema or guidance.

Theme URIs require POM Theme read scope and edit_theme_options. Site and shortcode URIs require WordPress-content read scope and edit_posts. A resource response is informational and cannot carry write authorization.

Related guides: resource catalog, authorization, and error contract.