{
  "name": "bfd-cms-mcp",
  "version": "0.2.0",
  "status": "ok",
  "transport": "streamable_http",
  "auth": "clerk-oauth",
  "scope": "cms.admin",
  "capabilities": {
    "tools": true,
    "prompts": true,
    "resources": true
  },
  "safety": {
    "defaultWriteMode": "draft-only",
    "explicitPublishTools": [
      "cms_publish_page",
      "cms_publish_blog_post",
      "cms_publish_site"
    ],
    "explicitUnpublishTools": [
      "cms_unpublish_page",
      "cms_unpublish_blog_post"
    ],
    "unpublishedRoutes": "Pages and blog posts stay off the public site until an explicit publish tool runs.",
    "sitePublishBehavior": "cms_publish_site republishes routes that are already live. It does not bring unpublished pages online."
  },
  "endpoints": {
    "root": "https://cms-mcp.procrastinaging.healthspanwealth.com/",
    "mcp": "https://cms-mcp.procrastinaging.healthspanwealth.com/mcp",
    "authorize": "https://cms-mcp.procrastinaging.healthspanwealth.com/authorize",
    "callback": "https://cms-mcp.procrastinaging.healthspanwealth.com/callback",
    "token": "https://cms-mcp.procrastinaging.healthspanwealth.com/token",
    "register": "https://cms-mcp.procrastinaging.healthspanwealth.com/register",
    "protectedResourceMetadata": "https://cms-mcp.procrastinaging.healthspanwealth.com/.well-known/oauth-protected-resource",
    "authorizationServerMetadata": "https://cms-mcp.procrastinaging.healthspanwealth.com/.well-known/oauth-authorization-server"
  },
  "tools": {
    "read": [
      "cms_get_overview",
      "cms_list_pages",
      "cms_get_page_bundle",
      "cms_list_blog_posts",
      "cms_get_blog_post",
      "cms_list_blog_authors"
    ],
    "draftWrites": [
      "cms_update_page_metadata",
      "cms_update_section",
      "cms_reorder_sections",
      "cms_create_blog_post",
      "cms_update_blog_post",
      "cms_create_blog_author",
      "cms_update_blog_author",
      "cms_media_generate_image"
    ],
    "liveState": [
      "cms_publish_page",
      "cms_unpublish_page",
      "cms_publish_blog_post",
      "cms_unpublish_blog_post",
      "cms_publish_site"
    ],
    "destructive": [
      "cms_delete_blog_post",
      "cms_delete_blog_author"
    ]
  },
  "prompts": [
    {
      "name": "cms-safe-draft-editing",
      "description": "Default operating guidance for editing CMS content without making it live accidentally."
    },
    {
      "name": "cms-page-edit-workflow",
      "description": "A guided page-edit workflow that defaults to draft-only changes and preserves live routes."
    },
    {
      "name": "cms-blog-edit-workflow",
      "description": "A guided blog workflow for saving drafts, reviewing live state, and publishing intentionally."
    },
    {
      "name": "cms-release-checklist",
      "description": "A release checklist for pages, blog posts, and site-wide page publishing."
    },
    {
      "name": "cms-image-generation-workflow",
      "description": "A guided image-generation workflow: pick the right layout + style preset, write a subject-focused prompt, iterate with intent, and embed the result in a post. Covers the iteration-and-critique loop you should actually run."
    }
  ],
  "resources": {
    "docs": [
      {
        "uri": "bfdcms://docs/overview",
        "name": "CMS MCP Overview",
        "description": "What this MCP exposes and how it maps to the Black Flag CMS.",
        "mimeType": "text/markdown"
      },
      {
        "uri": "bfdcms://docs/safe-writes",
        "name": "CMS Safe Writes",
        "description": "The draft/live model and which operations make content public.",
        "mimeType": "text/markdown"
      },
      {
        "uri": "bfdcms://docs/tool-catalog",
        "name": "CMS Tool Catalog",
        "description": "A grouped summary of the CMS MCP tool surface.",
        "mimeType": "text/markdown"
      },
      {
        "uri": "bfdcms://docs/image-generation",
        "name": "CMS Image Generation",
        "description": "How to use cms_media_generate_image well — layouts, style presets with exact brand anchors, prompt-writing discipline for Gemini, the iteration loop, and how to embed the result in a post. READ THIS before calling cms_media_generate_image.",
        "mimeType": "text/markdown"
      },
      {
        "uri": "bfdcms://docs/image-styles",
        "name": "CMS Image Style Presets (machine-readable)",
        "description": "The canonical style-preset catalog with their full prompt-injection strings. Useful for agents that want to see exactly what each preset will add to their prompt.",
        "mimeType": "application/json"
      },
      {
        "uri": "bfdcms://docs/image-layouts",
        "name": "CMS Image Layouts (machine-readable)",
        "description": "The canonical layout catalog with aspect ratios and mobile-collapse rules.",
        "mimeType": "application/json"
      }
    ],
    "state": [
      {
        "uri": "bfdcms://state/overview",
        "name": "CMS Overview State",
        "description": "Live overview of current CMS actor, page, and blog state.",
        "mimeType": "application/json"
      },
      {
        "uri": "bfdcms://pages",
        "name": "CMS Pages",
        "description": "All pages with live-state and route-visibility summary.",
        "mimeType": "application/json"
      },
      {
        "uri": "bfdcms://blog/posts",
        "name": "CMS Blog Posts",
        "description": "All blog posts with draft/live route summary.",
        "mimeType": "application/json"
      },
      {
        "uri": "bfdcms://blog/authors",
        "name": "CMS Blog Authors",
        "description": "All blog author profiles.",
        "mimeType": "application/json"
      }
    ],
    "templates": [
      {
        "uriTemplate": "bfdcms://pages/{slug}",
        "name": "CMS Page Bundle",
        "description": "Editor bundle for one page, including draft and live snapshots.",
        "mimeType": "application/json"
      },
      {
        "uriTemplate": "bfdcms://blog/posts/{slug}",
        "name": "CMS Blog Post",
        "description": "Draft/published detail for one blog post.",
        "mimeType": "application/json"
      }
    ]
  },
  "notes": [
    "After tool-surface deployments, reconnect the MCP server or start a new session so clients reload tools, prompts, and resources."
  ]
}