{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://raw.githubusercontent.com/api-evangelist/agentgateway/refs/heads/main/json-schema/agentgateway-mcp-target-schema.json",
  "title": "MCPTarget",
  "description": "Configuration for an MCP server target in AgentGateway, defining a connected MCP tool provider.",
  "type": "object",
  "properties": {
    "name": {
      "type": "string",
      "description": "Unique name for this MCP target.",
      "example": "filesystem-tools"
    },
    "type": {
      "type": "string",
      "description": "The connection type for this MCP target.",
      "enum": ["sse", "stdio", "http"],
      "example": "http"
    },
    "url": {
      "type": "string",
      "format": "uri",
      "description": "URL of the MCP server endpoint.",
      "example": "http://localhost:3001/mcp"
    },
    "authentication": {
      "type": "object",
      "description": "Authentication configuration for connecting to this MCP server.",
      "properties": {
        "type": {
          "type": "string",
          "enum": ["bearer", "apikey", "none"],
          "example": "bearer"
        },
        "tokenRef": {
          "type": "string",
          "description": "Reference to the secret containing the authentication token.",
          "example": "mcp-server-token"
        }
      }
    },
    "tools": {
      "type": "array",
      "description": "List of tool names exposed by this MCP target (empty means all tools are available).",
      "items": {
        "type": "string"
      },
      "example": ["read_file", "write_file", "list_directory"]
    },
    "allowedClients": {
      "type": "array",
      "description": "List of client identifiers permitted to use this MCP target.",
      "items": {
        "type": "string"
      }
    }
  },
  "required": ["name", "type"]
}
