{
  "schema": "https://vixai.app/schemas/ai-capabilities/v1",
  "name": "VixAI Connect",
  "description": "Social publishing infrastructure for AI agents, with human authorization and control.",
  "version": "2026-09-01.1",
  "protocol": "MCP Streamable HTTP",
  "mcp_endpoint": "https://mcp.vixai.app/mcp",
  "resource": "https://mcp.vixai.app",
  "authorization_server": "https://social.vixai.app",
  "protected_resource_metadata": "https://mcp.vixai.app/.well-known/oauth-protected-resource",
  "authorization_server_metadata": "https://social.vixai.app/.well-known/oauth-authorization-server",
  "documentation": {
    "human": "https://vixai.app/en/developers/",
    "llms": "https://vixai.app/llms.txt",
    "llms_full": "https://vixai.app/llms-full.txt",
    "live_manifest": "https://mcp.vixai.app/capabilities",
    "privacy": "https://vixai.app/privacy/",
    "support": "https://vixai.app/support/"
  },
  "supported_clients": ["ChatGPT", "Claude", "Grok", "standards-compatible MCP clients"],
  "supported_networks": ["Instagram", "X"],
  "supported_media": {
    "image": ["image/jpeg", "image/png", "image/webp"],
    "carousel": {"item_types": ["image/jpeg", "image/png", "image/webp"], "minimum_items": 2, "maximum_items": 10, "vixai_generation_supported": true, "generation_credits_per_item": 2},
    "reel": ["video/mp4", "video/quicktime"],
    "one_media_item_per_draft": false
  },
  "controls": {
    "human_confirmation_required_for": ["publish_post", "schedule_post"],
    "social_tokens_shared_with_clients": false,
    "idempotent_action_intents": true,
    "scheduled_jobs_survive_client_disconnect": true,
    "email_verification_required": true
  },
  "limits": {
    "free_beta_actions_per_rolling_24_hours": 10,
    "schedule_minimum_lead_minutes": 2,
    "schedule_maximum_lead_days": 30
  },
  "tools": [
    {"name": "list_social_accounts", "purpose": "List Instagram and X accounts connected to the authenticated VixAI user.", "mode": "read", "scopes": ["social.accounts.read"]},
    {"name": "analyze_x_account", "purpose": "Analyze up to 100 recent posts and mentions from the user's connected X account.", "mode": "read", "scopes": ["social.accounts.read", "social.posts.read"]},
    {"name": "create_x_post_draft", "purpose": "Create a text post or thread draft for X without publishing it.", "mode": "draft", "scopes": ["social.accounts.read", "social.posts.write"]},
    {"name": "create_x_image_post_draft", "purpose": "Create an X image-post draft from one image supplied by the MCP client.", "mode": "draft", "scopes": ["social.accounts.read", "social.posts.write"]},
    {"name": "create_post_draft", "purpose": "Create a draft from one image or Reel passed directly by the MCP client.", "mode": "draft", "scopes": ["social.accounts.read", "social.posts.write"]},
    {"name": "create_carousel_post_draft", "purpose": "Create one Instagram carousel draft from 2 to 10 images passed directly by the MCP client.", "mode": "draft", "scopes": ["social.accounts.read", "social.posts.write"]},
    {"name": "create_carousel_post_draft_from_urls", "purpose": "Create one carousel draft from 2 to 10 temporary HTTPS image URLs produced by the AI client; URLs are not persisted.", "mode": "draft", "scopes": ["social.accounts.read", "social.posts.write"]},
    {"name": "create_media_upload", "purpose": "Create a secure upload link when a client cannot pass an attachment to a tool.", "mode": "draft", "scopes": ["social.posts.write"]},
    {"name": "generate_image_post_draft", "purpose": "Generate an original image in VixAI and create a draft without publishing it.", "mode": "draft", "scopes": ["social.accounts.read", "social.posts.write"]},
    {"name": "generate_carousel_post_draft", "purpose": "Generate 2 to 10 original images in VixAI and create one ordered carousel draft, primarily for clients such as Claude without native image generation.", "mode": "draft", "scopes": ["social.accounts.read", "social.posts.write"]},
    {"name": "create_post_draft_from_upload", "purpose": "Create a draft from a completed secure VixAI media upload.", "mode": "draft", "scopes": ["social.accounts.read", "social.posts.write"]},
    {"name": "get_post_draft", "purpose": "Read a draft owned by the authenticated VixAI user.", "mode": "read", "scopes": ["social.posts.read"]},
    {"name": "prepare_post_action", "purpose": "Create a short-lived immutable preview and action intent for human approval.", "mode": "prepare", "scopes": ["social.posts.write"]},
    {"name": "publish_post", "purpose": "Consume an explicitly approved intent and publish to the selected social network.", "mode": "external_action", "scopes": ["social.posts.publish"], "requires_explicit_confirmation": true},
    {"name": "schedule_post", "purpose": "Consume an explicitly approved intent and schedule a publication on the selected social network.", "mode": "external_action", "scopes": ["social.posts.schedule"], "requires_explicit_confirmation": true},
    {"name": "cancel_scheduled_post", "purpose": "Cancel a scheduled publication that has not started.", "mode": "destructive_action", "scopes": ["social.posts.schedule"]},
    {"name": "get_post_status", "purpose": "Read the current draft, queue, publication, success, or failure state.", "mode": "read", "scopes": ["social.posts.read"]},
    {"name": "list_posts", "purpose": "List recent VixAI drafts and publications owned by the authenticated user.", "mode": "read", "scopes": ["social.posts.read"]}
  ],
  "notice": "The live MCP tools/list response is the executable source of truth. This manifest is a VixAI documentation surface."
}
