{
  "$schema": "https://static.modelcontextprotocol.io/schemas/v1/server.schema.json",
  "name": "ai.ezugc/mcp",
  "title": "EzUGC MCP Server",
  "description": "Generate UGC-style video ads, any-model videos, and image ads, and manage saved brands — from Claude.ai, Claude Code, Cursor, or any MCP client. Connect over remote Streamable HTTP or run the stdio package locally. Calls the EzUGC public API on your behalf.",
  "version": "0.5.0",
  "websiteUrl": "https://www.ezugc.ai/mcp",
  "serverUrl": "https://api.ezugc.ai/mcp",
  "repository": {
    "url": "https://github.com/team-listnr/ez-ugc-app",
    "source": "github",
    "subfolder": "mcp"
  },
  "remotes": [
    {
      "type": "streamable-http",
      "url": "https://api.ezugc.ai/mcp"
    }
  ],
  "tools": [
    {
      "name": "whoami",
      "description": "Verify the connected EzUGC account and return its scopes and subscription status."
    },
    {
      "name": "get_usage",
      "description": "Return the account's video usage, limit, remaining quota, and subscription status."
    },
    {
      "name": "list_video_models",
      "description": "List available video generation models and their capabilities. Call before generate_video."
    },
    {
      "name": "generate_video",
      "description": "Generate a video with a catalog model (text-to-video or image-to-video). Optionally ground it in a saved brand."
    },
    {
      "name": "generate_ugc_video",
      "description": "Generate a full UGC-style ad video (script, avatar, voiceover, captions) from a brief."
    },
    {
      "name": "generate_brand_video",
      "description": "Generate a UGC ad grounded in a saved brand (logo, colors, tone, products)."
    },
    {
      "name": "list_brands",
      "description": "List saved brand workspaces."
    },
    {
      "name": "create_brand",
      "description": "Create a saved brand by ingesting a website URL."
    },
    {
      "name": "get_brand",
      "description": "Get a saved brand's status and extracted brand profile."
    },
    {
      "name": "get_brand_assets",
      "description": "List a saved brand's uploaded assets and generated creatives with temporary signed URLs."
    },
    {
      "name": "update_brand_md",
      "description": "Update a saved brand's Markdown brand book and optional tone of voice."
    },
    {
      "name": "list_image_models",
      "description": "List available static image-ad models. Call before generate_image_ad."
    },
    {
      "name": "generate_image_ad",
      "description": "Generate 1-4 static image ads from a prompt, optionally with reference images and a saved brand."
    },
    {
      "name": "generate_brand_image_ad",
      "description": "Generate a static image ad grounded in a saved brand."
    },
    {
      "name": "list_agent_skills",
      "description": "List the read-only catalog of conversational-agent tool capabilities."
    },
    {
      "name": "list_skills",
      "description": "List the account's saved skills (parameterized prompt templates)."
    },
    {
      "name": "create_skill",
      "description": "Create a reusable saved skill (prompt template + default params)."
    },
    {
      "name": "get_skill",
      "description": "Get a single saved skill by id."
    },
    {
      "name": "update_skill",
      "description": "Update a saved skill in place."
    },
    {
      "name": "delete_skill",
      "description": "Permanently delete a saved skill by id."
    },
    {
      "name": "run_skill",
      "description": "Run a saved skill and dispatch a generation job of the skill kind."
    },
    {
      "name": "list_jobs",
      "description": "List recent generation jobs (video, UGC, image, subtitle)."
    },
    {
      "name": "get_job",
      "description": "Get the status and result URL of a job by id."
    },
    {
      "name": "generate_subtitled_video",
      "description": "Render burned-in captions onto a video."
    },
    {
      "name": "create_agent_schedule",
      "description": "Create a recurring or one-off Super Agent trigger."
    },
    {
      "name": "list_agent_schedules",
      "description": "List Super Agent schedules and their next fire time."
    },
    {
      "name": "pause_agent_schedule",
      "description": "Pause or resume a Super Agent schedule by id."
    },
    {
      "name": "list_channel_accounts",
      "description": "List linked messaging accounts (for example Telegram) for 24/7 agent messaging."
    },
    {
      "name": "create_channel_link_token",
      "description": "Generate a short-lived code to link a Telegram chat to the EzUGC account."
    }
  ],
  "packages": [
    {
      "registryType": "npm",
      "registryBaseUrl": "https://registry.npmjs.org",
      "identifier": "@ezugc/mcp",
      "version": "0.5.0",
      "runtimeHint": "npx",
      "transport": {
        "type": "stdio"
      },
      "environmentVariables": [
        {
          "name": "EZUGC_API_KEY",
          "description": "EzUGC API key (prefix ezk_live_). Issued only to active paid accounts from the EzUGC dashboard.",
          "isRequired": true,
          "isSecret": true
        }
      ]
    }
  ],
  "_meta": {
    "ai.ezugc": {
      "docsUrl": "https://www.ezugc.ai/mcp",
      "npmUrl": "https://www.npmjs.com/package/@ezugc/mcp",
      "apiKeysUrl": "https://app.ezugc.ai/dashboard/apps/mcp",
      "openapiUrl": "https://api.ezugc.ai/openapi.json",
      "authentication": {
        "remote": {
          "type": "api_key",
          "transport": "streamable-http",
          "resource": "https://api.ezugc.ai/mcp",
          "serverUrl": "https://api.ezugc.ai/mcp",
          "protectedResourceMetadataUrl": "https://api.ezugc.ai/.well-known/oauth-protected-resource",
          "mcpProtectedResourceMetadataUrl": "https://api.ezugc.ai/.well-known/oauth-protected-resource/mcp",
          "scopesSupported": [
            "ugc:write",
            "video:write",
            "image:write",
            "jobs:read",
            "account:read",
            "agent:read",
            "agent:write",
            "agent:approve",
            "brand:read",
            "brand:write",
            "skills:read",
            "skills:write"
          ],
          "description": "Paid dashboard API key (ezk_live_). Send Authorization: Bearer or x-api-key to the Streamable HTTP endpoint. RFC 9728 metadata is published on the API origin. There is no public OAuth authorization server for this resource."
        },
        "local": {
          "type": "api_key",
          "transport": "stdio",
          "description": "EzUGC API key sent by the stdio package as a bearer token / x-api-key header to the EzUGC public API."
        }
      }
    }
  }
}