{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://artifacts.apis.io/flowra-dev/json-schema/flowra-dev-update-mcp-server-dto-schema.json",
  "title": "UpdateMcpServerDto",
  "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/UpdateMcpServerDto",
  "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)"
    },
    "discoveryToolsWhitelist": {
      "type": "boolean",
      "description": "Meta mode: true = whitelist discovery to selected tools; false = blacklist those slugs."
    },
    "selectedTools": {
      "description": "Tool slugs (NORMAL = fixed set; META = discovery filter). Same as create.",
      "type": "array",
      "items": {
        "type": "string"
      }
    },
    "isPublic": {
      "type": "boolean",
      "description": "Whether the MCP server is public"
    },
    "config": {
      "type": "object",
      "description": "Configuration for the MCP server (endpoint, authToken, etc.)"
    },
    "externalMcpConfigs": {
      "description": "External MCP configs (name, url, headers?, tools). Omit to leave unchanged.",
      "type": "array",
      "items": {
        "type": "string"
      }
    },
    "connectionCallbackUrl": {
      "type": "string",
      "description": "OAuth return URL after a toolkit connection. Empty string clears.",
      "maxLength": 2048
    }
  }
}