{
  "name": "Frisky MCP Cloud Integration Hub",
  "status": "beta",
  "canonical_domain": "https://mcp.friskydev.com",
  "secret_vault": {
    "provider": "Infisical",
    "role": "Canonical secret vault for dev and operator environments.",
    "dev_runtime": "Coolify",
    "required_runtime_secrets": [
      "FRISKY_BOT_API_TOKEN",
      "FRISKY_MCP_CLIENT_SECRET",
      "FRISKY_AUTH_SIGNING_SECRET",
      "MONGODB_URI",
      "FRISKY_MODEL_PROVIDER",
      "VERTEX_AI_PROJECT_ID",
      "VERTEX_AI_LOCATION",
      "VERTEX_AI_MODEL",
      "SUPABASE_URL",
      "SUPABASE_SERVICE_ROLE_KEY"
    ],
    "rule": "Do not paste secrets into browser clients, public manifests, GPT instructions, or repo files. Pull them from Infisical into Coolify or the server runtime."
  },
  "mcp": {
    "streamable_http": "https://mcp.friskydev.com/mcp",
    "direct_cloud_run": "https://frisky-gpt-mcp-411033642222.us-central1.run.app/mcp",
    "codex_config": "https://mcp.friskydev.com/codex.mcp.json"
  },
  "clients": {
    "codex": {
      "type": "mcp_client",
      "config_url": "https://mcp.friskydev.com/codex.mcp.json",
      "purpose": "Use Frisky specialists and memory from Codex through the remote MCP bridge.",
      "config": {
        "mcpServers": {
          "frisky-dev-mcp": {
            "type": "http",
            "url": "https://mcp.friskydev.com/mcp"
          }
        }
      }
    },
    "cursor": {
      "type": "mcp_client",
      "purpose": "Use Frisky specialists from Cursor when reviewing code, planning patches, or delegating to Frisky operators.",
      "config": {
        "mcpServers": {
          "frisky-dev-mcp": {
            "type": "http",
            "url": "https://mcp.friskydev.com/mcp"
          }
        }
      }
    },
    "antigravity": {
      "type": "mcp_client",
      "purpose": "Use Frisky MCP as the Antigravity cloud tool surface for product, infra, launch, and specialist routing.",
      "config": {
        "mcpServers": {
          "frisky-dev-mcp": {
            "type": "http",
            "url": "https://mcp.friskydev.com/mcp"
          }
        }
      }
    },
    "neon": {
      "type": "rest_or_agent_integration",
      "purpose": "Let Neon-backed agents call Frisky specialist planning and memory endpoints around database work.",
      "recommended_calls": [
        "POST https://mcp.friskydev.com/consult_specialist",
        "GET https://mcp.friskydev.com/api/memory/stats",
        "GET https://mcp.friskydev.com/api/specialists"
      ],
      "suggested_specialists": [
        "frisky-data-model",
        "frisky-saas-infrastructure",
        "frisky-codex-engineer"
      ]
    },
    "supabase": {
      "type": "rest_or_edge_function_integration",
      "purpose": "Let Supabase Edge Functions, auth workflows, or admin tools call Frisky specialists with bearer auth.",
      "recommended_calls": [
        "POST https://mcp.friskydev.com/consult_specialist",
        "GET https://mcp.friskydev.com/api/specialists",
        "GET https://mcp.friskydev.com/specialists.json"
      ],
      "suggested_specialists": [
        "frisky-data-model",
        "frisky-saas-infrastructure",
        "frisky-trust-safety",
        "frisky-client-onboarding"
      ],
      "edge_function_fetch_example": "await fetch('https://mcp.friskydev.com/consult_specialist', { method: 'POST', headers: { Authorization: `Bearer ${Deno.env.get('FRISKY_BOT_API_TOKEN')}`, 'Content-Type': 'application/json' }, body: JSON.stringify({ slug: 'frisky-data-model', request: 'Review this schema migration.', live_call: true }) })"
    }
  },
  "gpt_actions": {
    "openapi": "https://mcp.friskydev.com/openapi.json",
    "endpoint": "https://mcp.friskydev.com/consult_specialist",
    "authentication": {
      "type": "bearer",
      "human_oauth": "Frisky MCP OAuth access token from the same login flow as the ChatGPT app.",
      "machine_token": "FRISKY_BOT_API_TOKEN"
    }
  },
  "rest": {
    "consult_specialist": "POST https://mcp.friskydev.com/consult_specialist",
    "consult_specialist_legacy": "POST https://mcp.friskydev.com/api/consult",
    "list_specialists": "GET https://mcp.friskydev.com/api/specialists",
    "specialists_manifest": "GET https://mcp.friskydev.com/specialists.json",
    "model_status": "GET https://mcp.friskydev.com/api/model/status",
    "memory_stats": "GET https://mcp.friskydev.com/api/memory/stats"
  },
  "cli": {
    "manifest": "https://mcp.friskydev.com/cli.json",
    "download": "https://mcp.friskydev.com/frisky-mcp-cli.sh",
    "install": "curl -fsS https://mcp.friskydev.com/frisky-mcp-cli.sh -o frisky-mcp && chmod +x frisky-mcp",
    "examples": [
      "./frisky-mcp specialists",
      "./frisky-mcp packet frisky-codex-engineer \"Review deployment risk\"",
      "FRISKY_ACCESS_TOKEN=... ./frisky-mcp consult frisky-director \"Prioritize beta work\"",
      "FRISKY_BOT_API_TOKEN=... ./frisky-mcp consult frisky-director \"Prioritize beta work\""
    ]
  },
  "examples": {
    "mcpServers": {
      "frisky-dev-mcp": {
        "url": "https://mcp.friskydev.com/mcp"
      }
    },
    "consult_specialist_body": {
      "slug": "frisky-director",
      "request": "Prioritize today's beta work.",
      "live_call": true
    },
    "curl": "curl -X POST https://mcp.friskydev.com/consult_specialist -H 'Authorization: Bearer $FRISKY_ACCESS_TOKEN_OR_BOT_TOKEN' -H 'Content-Type: application/json' -d '{\"slug\":\"frisky-director\",\"request\":\"Prioritize today beta work.\",\"live_call\":true}'"
  },
  "specialist_slugs": [
    "frisky-director",
    "frisky-brand-governance",
    "frisky-launch-strategy",
    "fenrir-security-architect",
    "frisky-saas-infrastructure",
    "frisky-codex-engineer",
    "frisky-automation-integrations",
    "frisky-data-model",
    "frisky-community-ops-commander",
    "frisky-telegram-bot-specialist",
    "frisky-trust-safety",
    "stix-magic-creative-director",
    "clipsflow-streaming-systems",
    "frisky-promo-copy",
    "frisky-client-onboarding"
  ],
  "notes": [
    "Use the MCP URL for MCP clients.",
    "Use the OpenAPI URL for GPT Actions and REST-capable tools.",
    "Use live_call=true only when the caller has a Frisky OAuth access token or machine bearer token.",
    "The GitLab repo remains the source of truth; this hub is the cloud integration surface."
  ]
}
