{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://artifacts.apis.io/flowra-dev/json-schema/flowra-dev-create-mcp-server-dto-schema.json",
  "title": "CreateMcpServerDto",
  "x-generated": "2026-11-10",
  "x-method": "derived",
  "x-generator": "derive-json-schema.py",
  "x-source": "openapi/flowra-dev-mcp-api-openapi.yml#/components/schemas/CreateMcpServerDto",
  "type": "object",
  "properties": {
    "name": {
      "type": "string",
      "pattern": "SLUG_PATTERN",
      "description": "Name (slug): lowercase letters, numbers, hyphens. Unique per project."
    },
    "description": {
      "type": "string",
      "description": "Description of the MCP server"
    },
    "mode": {
      "enum": [
        "NORMAL",
        "META"
      ],
      "type": "string",
      "description": "Mode of the MCP server: NORMAL (specific tools) or META (meta tools only)",
      "default": "META"
    },
    "discoveryToolsWhitelist": {
      "type": "boolean",
      "description": "Meta mode only: true = discovery limited to selected tools; false = exclude those tools from discovery.",
      "default": true
    },
    "selectedTools": {
      "description": "Tool slugs: NORMAL = agent tool set; META = discovery filter list.",
      "type": "array",
      "items": {
        "type": "string"
      }
    },
    "isPublic": {
      "type": "boolean",
      "description": "Whether the MCP server is public",
      "default": false
    },
    "config": {
      "type": "object",
      "description": "Configuration for the MCP server (endpoint, authToken, etc.)"
    },
    "externalMcpConfigs": {
      "description": "External MCP configs (name, url, headers?, tools), same as workflow.",
      "type": "array",
      "items": {
        "type": "string"
      }
    },
    "connectionCallbackUrl": {
      "type": "string",
      "description": "OAuth return URL after a toolkit connection. Empty string clears.",
      "maxLength": 2048
    }
  },
  "required": [
    "name"
  ]
}