---
title: "Get an MCP Server"
method: GET
path: "/v1/ai-gateways/{gatewayId}/mcp-servers/{mcpServerIdOrName}"
tags: ["AI Gateway MCP Servers"]
---

# Get an MCP Server

`GET /v1/ai-gateways/{gatewayId}/mcp-servers/{mcpServerIdOrName}`

**Pre-release Endpoint**
This endpoint is currently in beta and is subject to change.

Returns the details of a specific MCP Server.

## Response `200`

A successful response returning an MCP Server.

- union — **Pre-release Feature** This feature is currently in beta and is subject to change.
  - object — **Pre-release Feature** This feature is currently in beta and is subject to change.
    - `id` string, uuid, required — Contains a unique identifier used for this resource.
    - `created_at` string, date-time, required — An ISO-8601 timestamp representation of entity creation date.
    - `updated_at` string, date-time, required — An ISO-8601 timestamp representation of entity update date.
    - `type` 'conversion-only', required
    - `config` AIGatewayMCPServerWithUpstreamNoProxyConfigNoServerConfig, required — **Pre-release Feature** This feature is currently in beta and is subject to change. Routing, logging, and request body size limits for the MCP Server.
      - `route` AIGatewayRouteConfig — **Pre-release Feature** This feature is currently in beta and is subject to change. Configuration for an AI Gateway route.
        - `headers` object — One or more lists of values indexed by header name that will cause this route to match if present in the request. The `Host` header cannot be used with this attribute: hosts should be specified using the `hosts` attribute. When `headers` contains only one value and that value starts with the special prefix `~*`, the value is interpreted as a regular expression.
        - `hosts` string[] — A list of domain names that match this route. Note that the hosts value is case sensitive.
        - `https_redirect_status_code` integer — The status code Kong responds with when all properties of a route match except the protocol i.e. if the protocol of the request is `HTTP` instead of `HTTPS`. `Location` header is injected by Kong if the field is set to 301, 302, 307 or 308. Note: This config applies only if the route is configured to only accept the `https` protocol.
        - `methods` string[] — A list of HTTP methods that match this route.
        - `paths` string[] — A list of paths that match this route.
        - `preserve_host` boolean — When matching a route via one of the `hosts` domain names, use the request `Host` header in the upstream request headers. If set to `false`, the upstream `Host` header will be that of the service's `host`.
        - `protocols` string[] — An array of the protocols this route should allow. See the [route Object](#route-object) section for a list of accepted protocols. When set to only `https`, HTTP requests are answered with an upgrade error. When set to only `http`, HTTPS requests are answered with an error.
        - `regex_priority` integer — A number used to choose which route resolves a given request when several routes match it using regexes simultaneously. When two routes match the path and have the same `regex_priority`, the older one (lowest `created_at`) is used. Note that the priority for non-regex routes is different (longer non-regex routes are matched before shorter ones).
        - `request_buffering` boolean — Whether to enable request body buffering or not. With HTTP 1.1, it may make sense to turn this off on services that receive data with chunked transfer encoding.
        - `response_buffering` boolean — Whether to enable response body buffering or not. With HTTP 1.1, it may make sense to turn this off on services that send data with chunked transfer encoding.
        - `strip_path` boolean — When matching a route via one of the `paths`, strip the matching prefix from the upstream request URL.
        - `tags` string[] — An optional set of strings associated with the route for grouping and filtering.
      - `logging` object — **Pre-release Feature** This feature is currently in beta and is subject to change. Configuration for AI Gateway logging.
        - `payloads` boolean
        - `audits` boolean
      - `max_request_body_size` integer — Maximum size of request body to parse. Set to 0 for unlimited.
      - `url` string, uri, required — Helper field to set protocol, host, port and path of the upstream service using a URL. This is the same as a Kong Gateway Service URL: ${scheme}://${host}:${port}/${path}
    - `tools` AIGatewayMCPConversionTool[] — List of tools exposed by this MCP Server.
      - `access` object
        - `acls` AIGatewayMCPACLs — **Pre-release Feature** This feature is currently in beta and is subject to change. Access control rules for MCP resources. Configure `allow`, `deny`, or both.
          - `allow` string[] — List of consumer groups that are permitted access.
          - `deny` string[] — List of consumer groups that are denied access.
      - `annotations` AIGatewayMCPToolAnnotations — **Pre-release Feature** This feature is currently in beta and is subject to change.
        - `destructive_hint` boolean — If true, the tool may perform destructive updates
        - `idempotent_hint` boolean — If true, repeated calls with same args have no additional effect
        - `open_world_hint` boolean — If true, tool interacts with external entities
        - `read_only_hint` boolean — If true, the tool does not modify its environment
        - `title` string — Human-readable title for the tool
      - `description` string, required — A description of what the tool does.
      - `headers` AIGatewayMCPToolHeaders — **Pre-release Feature** This feature is currently in beta and is subject to change. The headers of the exported API. By default, Kong will extract the headers from API configuration. If the configured headers are not exactly matched, this field is required.
      - `host` string — The host of the exported API, which must match the route's hosts. It should be the route's host. By default, Kong will extract the host from API configuration. If the configured host is wildcard, this field is required.
      - `name` string, required — Tool identifier. In passthrough-listener mode, used to match remote MCP Server tools for ACL enforcement. In other modes, it is also used as the tool name (overrides annotations.title if present).
      - `method` 'DELETE' | 'GET' | 'PATCH' | 'POST' | 'PUT', required — For conversion-only and conversion-listener modes, the method of the exported API, which must match the route's methods.
      - `path` string — The path of the exported API, which must match the route's paths. Path not starting with '/' are treated as relative path and the route path will be added as the prefix. By default, Kong will extract the path from API configuration.
      - `query` AIGatewayMCPToolQuery — **Pre-release Feature** This feature is currently in beta and is subject to change. The query arguments of the exported API. If the generated query arguments are not exactly matched, this field is required.
      - `request_body` AIGatewayMCPToolRequestBody — **Pre-release Feature** This feature is currently in beta and is subject to change. The API requestBody specification defined in OpenAPI JSON format. For example, '{"content":{"application/x-www-form-urlencoded":{"schema":{"type":"object","properties":{"color":{"type":"array","items":{"type":"string"}}}}}}}'. See https://swagger.io/docs/specification/v3_0/describing-request-body/describing-request-body/ for more details. Note that `$ref` is not supported.
      - `responses` AIGatewayMCPToolResponses — **Pre-release Feature** This feature is currently in beta and is subject to change. The API responses specification defined in OpenAPI JSON format. This specification will be used to validate the upstream response and map it back to the structuredOutput. For example, '{"200":{"content":{"application/json":{"schema":{"type":"object","properties":{"result":{"type":"string"}}}}}}}}'. See https://swagger.io/docs/specification/v3_0/describing-responses/ for more details. Only one non-error (status code < 400) response is supported. Note that `$ref` is not supported.
      - `scheme` 'http' | 'https' — The scheme of the exported API. By default, Kong will extract the scheme from API configuration. If the configured scheme is not expected, this field can be used to override it.
      - `parameters` AIGatewayMCPToolParameter[] — **Pre-release Feature** This feature is currently in beta and is subject to change.
        - `name` string, required — The name of the parameter.
        - `in` 'query' | 'path' | 'header' | 'body', required — The location of the parameter in the request.
        - `description` string — A description of the parameter.
        - `required` boolean — Whether this parameter is required.
        - `schema` object — JSON Schema definition for the parameter value. See https://swagger.io/docs/specification/v3_0/describing-parameters/#schema-vs-content for more details.
    - `display_name` string, required — The display name for the MCP Server.
    - `name` string, required — Identifier for an AI Gateway entity. In some cases, this may be the entity name or ID.
    - `enabled` boolean — Whether the MCP Server is enabled.
    - `policies` string[] — List of policy references.
    - `labels` PublicLabels — Public labels store information about an entity that can be used for filtering a list of objects. Public labels are intended to store **PUBLIC** metadata. Keys must be of length 1-63 characters, and cannot start with "kong", "konnect", "mesh", "kic", or "_".
    - `managed_by` ManagedBy — Stores information about what manages this entity, such as the tool or system responsible for its lifecycle (for example, `terraform`). Keys must be 1–63 characters long and start with an alphanumeric character.
  - object — **Pre-release Feature** This feature is currently in beta and is subject to change.
    - `id` string, uuid, required — Contains a unique identifier used for this resource.
    - `created_at` string, date-time, required — An ISO-8601 timestamp representation of entity creation date.
    - `updated_at` string, date-time, required — An ISO-8601 timestamp representation of entity update date.
    - `type` 'conversion-listener', required
    - `config` AIGatewayMCPServerWithUpstreamNoProxyConfig, required — **Pre-release Feature** This feature is currently in beta and is subject to change. Routing, logging, and server configuration for the MCP Server.
      - `route` AIGatewayRouteConfig — **Pre-release Feature** This feature is currently in beta and is subject to change. Configuration for an AI Gateway route.
        - `headers` object — One or more lists of values indexed by header name that will cause this route to match if present in the request. The `Host` header cannot be used with this attribute: hosts should be specified using the `hosts` attribute. When `headers` contains only one value and that value starts with the special prefix `~*`, the value is interpreted as a regular expression.
        - `hosts` string[] — A list of domain names that match this route. Note that the hosts value is case sensitive.
        - `https_redirect_status_code` integer — The status code Kong responds with when all properties of a route match except the protocol i.e. if the protocol of the request is `HTTP` instead of `HTTPS`. `Location` header is injected by Kong if the field is set to 301, 302, 307 or 308. Note: This config applies only if the route is configured to only accept the `https` protocol.
        - `methods` string[] — A list of HTTP methods that match this route.
        - `paths` string[] — A list of paths that match this route.
        - `preserve_host` boolean — When matching a route via one of the `hosts` domain names, use the request `Host` header in the upstream request headers. If set to `false`, the upstream `Host` header will be that of the service's `host`.
        - `protocols` string[] — An array of the protocols this route should allow. See the [route Object](#route-object) section for a list of accepted protocols. When set to only `https`, HTTP requests are answered with an upgrade error. When set to only `http`, HTTPS requests are answered with an error.
        - `regex_priority` integer — A number used to choose which route resolves a given request when several routes match it using regexes simultaneously. When two routes match the path and have the same `regex_priority`, the older one (lowest `created_at`) is used. Note that the priority for non-regex routes is different (longer non-regex routes are matched before shorter ones).
        - `request_buffering` boolean — Whether to enable request body buffering or not. With HTTP 1.1, it may make sense to turn this off on services that receive data with chunked transfer encoding.
        - `response_buffering` boolean — Whether to enable response body buffering or not. With HTTP 1.1, it may make sense to turn this off on services that send data with chunked transfer encoding.
        - `strip_path` boolean — When matching a route via one of the `paths`, strip the matching prefix from the upstream request URL.
        - `tags` string[] — An optional set of strings associated with the route for grouping and filtering.
      - `logging` object — **Pre-release Feature** This feature is currently in beta and is subject to change. Configuration for AI Gateway logging.
        - `payloads` boolean
        - `audits` boolean
      - `max_request_body_size` integer — Maximum size of request body to parse. Set to 0 for unlimited.
      - `server` AIGatewayMCPServerServerConfigBase — **Pre-release Feature** This feature is currently in beta and is subject to change. Server-side configuration for the MCP Server.
        - `forward_client_headers` boolean — Whether to forward the client request headers to the upstream server when calling the tools.
        - `session` object — Enable managed session when Kong responds as MCP server in listener, conversion-listener, or upstream-server modes. This doesn't affect the passthrough-listener mode as the state in that mode is maintained by the upstream MCP servers.
          - `client` object — The configuration for client-side session storage.
            - `secrets` string[] — The secrets that are used in session encryption. Required when the strategy is 'client'. The first secret is used for encryption, while all secrets are used for decryption to support key rotation.
          - `managed` boolean — If enabled, Kong will maintain managed sessions with the MCP server.
          - `redis` AIGatewayRedisCloudConfiguration — **Pre-release Feature** This feature is currently in beta and is subject to change. Config for connecting to a Cloud Provider's Redis instance.
            - `cloud_authentication` union — Auth related config for connecting to a Cloud Provider's Redis instance.
              - …
            - `cluster` object — Cluster configuration for the Redis connection.
              - …
            - `connect_timeout` integer — An integer representing a timeout in milliseconds. Must be between 0 and 2^31-2.
            - `connection_is_proxied` boolean — If the connection to Redis is proxied (e.g. Envoy), set it `true`. Set the `host` and `port` to point to the proxy address.
            - `database` integer — Database to use for the Redis connection when using the `redis` strategy
            - `host` string — A string representing a host name, such as example.com. This field is [referenceable](https://developer.konghq.com/gateway/entities/vault/#how-do-i-reference-secrets-stored-in-a-vault).
            - `keepalive` object — Keepalive configuration for the Redis connection.
              - …
            - `password` string — Password to use for Redis connections. If undefined, no AUTH commands are sent to Redis. This field is [referenceable](https://developer.konghq.com/gateway/entities/vault/#how-do-i-reference-secrets-stored-in-a-vault).
            - `port` union — An integer representing a port number between 0 and 65535, inclusive. This field is [referenceable](https://developer.konghq.com/gateway/entities/vault/#how-do-i-reference-secrets-stored-in-a-vault).
              - …
            - `read_timeout` integer — An integer representing a timeout in milliseconds. Must be between 0 and 2^31-2.
            - `send_timeout` integer — An integer representing a timeout in milliseconds. Must be between 0 and 2^31-2.
            - `sentinel` object — Configuration for Redis Sentinel.
              - …
            - `server_name` string — A string representing an SNI (server name indication) value for TLS. This field is [referenceable](https://developer.konghq.com/gateway/entities/vault/#how-do-i-reference-secrets-stored-in-a-vault).
            - `ssl` boolean — If set to true, uses SSL to connect to Redis.
            - `ssl_verify` boolean — If set to true, verifies the validity of the server SSL certificate. If setting this parameter, also configure `lua_ssl_trusted_certificate` in `kong.conf` to specify the CA (or server) certificate used by your Redis server. You may also need to configure `lua_ssl_verify_depth` accordingly.
            - `username` string — Username to use for Redis connections. If undefined, ACL authentication won't be performed. This requires Redis v6.0.0+. To be compatible with Redis v5.x.y, you can set it to `default`. This field is [referenceable](https://developer.konghq.com/gateway/entities/vault/#how-do-i-reference-secrets-stored-in-a-vault).
          - `session_ttl` integer — The time-to-live (TTL) for each session in seconds.
          - `strategy` 'client' | 'redis' — The strategy for the session. If the value is 'client', the session is encrypted into MCP session id assigned to the client. If the value is not 'client', the session is stored in the configured database.
        - `label` string — The label of the MCP server. This is used to filter the exported MCP tools.
        - `timeout` integer — The timeout for calling the tools in milliseconds.
      - `url` string, uri, required — Helper field to set protocol, host, port and path of the upstream service using a URL. This is the same as a Kong Gateway Service URL: ${scheme}://${host}:${port}/${path}
    - `tools` AIGatewayMCPConversionTool[] — List of tools exposed by this MCP Server.
      - `access` object
        - `acls` AIGatewayMCPACLs — **Pre-release Feature** This feature is currently in beta and is subject to change. Access control rules for MCP resources. Configure `allow`, `deny`, or both.
          - `allow` string[] — List of consumer groups that are permitted access.
          - `deny` string[] — List of consumer groups that are denied access.
      - `annotations` AIGatewayMCPToolAnnotations — **Pre-release Feature** This feature is currently in beta and is subject to change.
        - `destructive_hint` boolean — If true, the tool may perform destructive updates
        - `idempotent_hint` boolean — If true, repeated calls with same args have no additional effect
        - `open_world_hint` boolean — If true, tool interacts with external entities
        - `read_only_hint` boolean — If true, the tool does not modify its environment
        - `title` string — Human-readable title for the tool
      - `description` string, required — A description of what the tool does.
      - `headers` AIGatewayMCPToolHeaders — **Pre-release Feature** This feature is currently in beta and is subject to change. The headers of the exported API. By default, Kong will extract the headers from API configuration. If the configured headers are not exactly matched, this field is required.
      - `host` string — The host of the exported API, which must match the route's hosts. It should be the route's host. By default, Kong will extract the host from API configuration. If the configured host is wildcard, this field is required.
      - `name` string, required — Tool identifier. In passthrough-listener mode, used to match remote MCP Server tools for ACL enforcement. In other modes, it is also used as the tool name (overrides annotations.title if present).
      - `method` 'DELETE' | 'GET' | 'PATCH' | 'POST' | 'PUT', required — For conversion-only and conversion-listener modes, the method of the exported API, which must match the route's methods.
      - `path` string — The path of the exported API, which must match the route's paths. Path not starting with '/' are treated as relative path and the route path will be added as the prefix. By default, Kong will extract the path from API configuration.
      - `query` AIGatewayMCPToolQuery — **Pre-release Feature** This feature is currently in beta and is subject to change. The query arguments of the exported API. If the generated query arguments are not exactly matched, this field is required.
      - `request_body` AIGatewayMCPToolRequestBody — **Pre-release Feature** This feature is currently in beta and is subject to change. The API requestBody specification defined in OpenAPI JSON format. For example, '{"content":{"application/x-www-form-urlencoded":{"schema":{"type":"object","properties":{"color":{"type":"array","items":{"type":"string"}}}}}}}'. See https://swagger.io/docs/specification/v3_0/describing-request-body/describing-request-body/ for more details. Note that `$ref` is not supported.
      - `responses` AIGatewayMCPToolResponses — **Pre-release Feature** This feature is currently in beta and is subject to change. The API responses specification defined in OpenAPI JSON format. This specification will be used to validate the upstream response and map it back to the structuredOutput. For example, '{"200":{"content":{"application/json":{"schema":{"type":"object","properties":{"result":{"type":"string"}}}}}}}}'. See https://swagger.io/docs/specification/v3_0/describing-responses/ for more details. Only one non-error (status code < 400) response is supported. Note that `$ref` is not supported.
      - `scheme` 'http' | 'https' — The scheme of the exported API. By default, Kong will extract the scheme from API configuration. If the configured scheme is not expected, this field can be used to override it.
      - `parameters` AIGatewayMCPToolParameter[] — **Pre-release Feature** This feature is currently in beta and is subject to change.
        - `name` string, required — The name of the parameter.
        - `in` 'query' | 'path' | 'header' | 'body', required — The location of the parameter in the request.
        - `description` string — A description of the parameter.
        - `required` boolean — Whether this parameter is required.
        - `schema` object — JSON Schema definition for the parameter value. See https://swagger.io/docs/specification/v3_0/describing-parameters/#schema-vs-content for more details.
    - `access` union — **Pre-release Feature** This feature is currently in beta and is subject to change.
      - AIGatewayMCPServerListenerConsumer — **Pre-release Feature** This feature is currently in beta and is subject to change. Identity provider and OAuth 2.0 Protected Resource Metadata configuration for granting access to an MCP server.
        - `acl_attribute_type` 'consumer', required — The type of attributes that ACL is evaluated with.
        - `acls` AIGatewayMCPACLs — **Pre-release Feature** This feature is currently in beta and is subject to change. Access control rules for MCP resources. Configure `allow`, `deny`, or both.
          - `allow` string[] — List of consumer groups that are permitted access.
          - `deny` string[] — List of consumer groups that are denied access.
        - `default_tool_acls` AIGatewayMCPACLs — **Pre-release Feature** This feature is currently in beta and is subject to change. Access control rules for MCP resources. Configure `allow`, `deny`, or both.
          - `allow` string[] — List of consumer groups that are permitted access.
          - `deny` string[] — List of consumer groups that are denied access.
        - `identity_providers` AIGatewayIdentityProviderReference[] — List of identity providers for granting access to the MCP server. At most 1 identity provider of each identity provider type can be referenced.
        - `metadata` AIGatewayMCPServerProtectedResourceMetadata — **Pre-release Feature** This feature is currently in beta and is subject to change. OAuth 2.0 Protected Resource Metadata (RFC 9728) advertised for this MCP server, allowing clients to discover the authorization servers that protect it.
          - `discovery_endpoint` string — The URL where the protected resource metadata is served.
          - `endpoint` string — The protected resource endpoint the metadata describes.
          - `authorization_servers` string[] — List of authorization server issuer URLs that can issue tokens for this resource.
          - `resource` string — The protected resource's identifier (resource URI).
          - `scopes_supported` string[] — List of OAuth scopes supported by the protected resource.
      - AIGatewayMCPServerListenerOauth — **Pre-release Feature** This feature is currently in beta and is subject to change. Identity provider and OAuth 2.0 Protected Resource Metadata configuration for granting access to an MCP server.
        - `acl_attribute_type` 'oauth_access_token', required — The type of attributes that ACL is evaluated with.
        - `access_token_claim_field` string, required — The claim in the OAuth2 access token to use as the subject for ACL evaluation when `acl_attribute_type` is set to `oauth_access_token`. Nested claim can be fetched by using a jq filter starts with dot, e.g., “.user.email”: https://jqlang.org/manual/#object-identifier-index
        - `acls` AIGatewayMCPACLs — **Pre-release Feature** This feature is currently in beta and is subject to change. Access control rules for MCP resources. Configure `allow`, `deny`, or both.
          - `allow` string[] — List of consumer groups that are permitted access.
          - `deny` string[] — List of consumer groups that are denied access.
        - `default_tool_acls` AIGatewayMCPACLs — **Pre-release Feature** This feature is currently in beta and is subject to change. Access control rules for MCP resources. Configure `allow`, `deny`, or both.
          - `allow` string[] — List of consumer groups that are permitted access.
          - `deny` string[] — List of consumer groups that are denied access.
        - `identity_providers` AIGatewayIdentityProviderReference[] — List of identity providers for granting access to the MCP server. At most 1 identity provider of each identity provider type can be referenced.
        - `metadata` AIGatewayMCPServerProtectedResourceMetadata — **Pre-release Feature** This feature is currently in beta and is subject to change. OAuth 2.0 Protected Resource Metadata (RFC 9728) advertised for this MCP server, allowing clients to discover the authorization servers that protect it.
          - `discovery_endpoint` string — The URL where the protected resource metadata is served.
          - `endpoint` string — The protected resource endpoint the metadata describes.
          - `authorization_servers` string[] — List of authorization server issuer URLs that can issue tokens for this resource.
          - `resource` string — The protected resource's identifier (resource URI).
          - `scopes_supported` string[] — List of OAuth scopes supported by the protected resource.
    - `display_name` string, required — The display name for the MCP Server.
    - `name` string, required — Identifier for an AI Gateway entity. In some cases, this may be the entity name or ID.
    - `enabled` boolean — Whether the MCP Server is enabled.
    - `policies` string[] — List of policy references.
    - `labels` PublicLabels — Public labels store information about an entity that can be used for filtering a list of objects. Public labels are intended to store **PUBLIC** metadata. Keys must be of length 1-63 characters, and cannot start with "kong", "konnect", "mesh", "kic", or "_".
    - `managed_by` ManagedBy — Stores information about what manages this entity, such as the tool or system responsible for its lifecycle (for example, `terraform`). Keys must be 1–63 characters long and start with an alphanumeric character.
  - object — **Pre-release Feature** This feature is currently in beta and is subject to change.
    - `id` string, uuid, required — Contains a unique identifier used for this resource.
    - `created_at` string, date-time, required — An ISO-8601 timestamp representation of entity creation date.
    - `updated_at` string, date-time, required — An ISO-8601 timestamp representation of entity update date.
    - `type` 'listener', required
    - `config` AIGatewayMCPServerNoUpstreamConfig, required — **Pre-release Feature** This feature is currently in beta and is subject to change. Routing, logging, and server configuration for the MCP Server.
      - `route` AIGatewayRouteConfig — **Pre-release Feature** This feature is currently in beta and is subject to change. Configuration for an AI Gateway route.
        - `headers` object — One or more lists of values indexed by header name that will cause this route to match if present in the request. The `Host` header cannot be used with this attribute: hosts should be specified using the `hosts` attribute. When `headers` contains only one value and that value starts with the special prefix `~*`, the value is interpreted as a regular expression.
        - `hosts` string[] — A list of domain names that match this route. Note that the hosts value is case sensitive.
        - `https_redirect_status_code` integer — The status code Kong responds with when all properties of a route match except the protocol i.e. if the protocol of the request is `HTTP` instead of `HTTPS`. `Location` header is injected by Kong if the field is set to 301, 302, 307 or 308. Note: This config applies only if the route is configured to only accept the `https` protocol.
        - `methods` string[] — A list of HTTP methods that match this route.
        - `paths` string[] — A list of paths that match this route.
        - `preserve_host` boolean — When matching a route via one of the `hosts` domain names, use the request `Host` header in the upstream request headers. If set to `false`, the upstream `Host` header will be that of the service's `host`.
        - `protocols` string[] — An array of the protocols this route should allow. See the [route Object](#route-object) section for a list of accepted protocols. When set to only `https`, HTTP requests are answered with an upgrade error. When set to only `http`, HTTPS requests are answered with an error.
        - `regex_priority` integer — A number used to choose which route resolves a given request when several routes match it using regexes simultaneously. When two routes match the path and have the same `regex_priority`, the older one (lowest `created_at`) is used. Note that the priority for non-regex routes is different (longer non-regex routes are matched before shorter ones).
        - `request_buffering` boolean — Whether to enable request body buffering or not. With HTTP 1.1, it may make sense to turn this off on services that receive data with chunked transfer encoding.
        - `response_buffering` boolean — Whether to enable response body buffering or not. With HTTP 1.1, it may make sense to turn this off on services that send data with chunked transfer encoding.
        - `strip_path` boolean — When matching a route via one of the `paths`, strip the matching prefix from the upstream request URL.
        - `tags` string[] — An optional set of strings associated with the route for grouping and filtering.
      - `logging` object — **Pre-release Feature** This feature is currently in beta and is subject to change. Configuration for AI Gateway logging.
        - `payloads` boolean
        - `audits` boolean
      - `max_request_body_size` integer — Maximum size of request body to parse. Set to 0 for unlimited.
      - `server` AIGatewayMCPServerServerConfigBase — **Pre-release Feature** This feature is currently in beta and is subject to change. Server-side configuration for the MCP Server.
        - `forward_client_headers` boolean — Whether to forward the client request headers to the upstream server when calling the tools.
        - `session` object — Enable managed session when Kong responds as MCP server in listener, conversion-listener, or upstream-server modes. This doesn't affect the passthrough-listener mode as the state in that mode is maintained by the upstream MCP servers.
          - `client` object — The configuration for client-side session storage.
            - `secrets` string[] — The secrets that are used in session encryption. Required when the strategy is 'client'. The first secret is used for encryption, while all secrets are used for decryption to support key rotation.
          - `managed` boolean — If enabled, Kong will maintain managed sessions with the MCP server.
          - `redis` AIGatewayRedisCloudConfiguration — **Pre-release Feature** This feature is currently in beta and is subject to change. Config for connecting to a Cloud Provider's Redis instance.
            - `cloud_authentication` union — Auth related config for connecting to a Cloud Provider's Redis instance.
              - …
            - `cluster` object — Cluster configuration for the Redis connection.
              - …
            - `connect_timeout` integer — An integer representing a timeout in milliseconds. Must be between 0 and 2^31-2.
            - `connection_is_proxied` boolean — If the connection to Redis is proxied (e.g. Envoy), set it `true`. Set the `host` and `port` to point to the proxy address.
            - `database` integer — Database to use for the Redis connection when using the `redis` strategy
            - `host` string — A string representing a host name, such as example.com. This field is [referenceable](https://developer.konghq.com/gateway/entities/vault/#how-do-i-reference-secrets-stored-in-a-vault).
            - `keepalive` object — Keepalive configuration for the Redis connection.
              - …
            - `password` string — Password to use for Redis connections. If undefined, no AUTH commands are sent to Redis. This field is [referenceable](https://developer.konghq.com/gateway/entities/vault/#how-do-i-reference-secrets-stored-in-a-vault).
            - `port` union — An integer representing a port number between 0 and 65535, inclusive. This field is [referenceable](https://developer.konghq.com/gateway/entities/vault/#how-do-i-reference-secrets-stored-in-a-vault).
              - …
            - `read_timeout` integer — An integer representing a timeout in milliseconds. Must be between 0 and 2^31-2.
            - `send_timeout` integer — An integer representing a timeout in milliseconds. Must be between 0 and 2^31-2.
            - `sentinel` object — Configuration for Redis Sentinel.
              - …
            - `server_name` string — A string representing an SNI (server name indication) value for TLS. This field is [referenceable](https://developer.konghq.com/gateway/entities/vault/#how-do-i-reference-secrets-stored-in-a-vault).
            - `ssl` boolean — If set to true, uses SSL to connect to Redis.
            - `ssl_verify` boolean — If set to true, verifies the validity of the server SSL certificate. If setting this parameter, also configure `lua_ssl_trusted_certificate` in `kong.conf` to specify the CA (or server) certificate used by your Redis server. You may also need to configure `lua_ssl_verify_depth` accordingly.
            - `username` string — Username to use for Redis connections. If undefined, ACL authentication won't be performed. This requires Redis v6.0.0+. To be compatible with Redis v5.x.y, you can set it to `default`. This field is [referenceable](https://developer.konghq.com/gateway/entities/vault/#how-do-i-reference-secrets-stored-in-a-vault).
          - `session_ttl` integer — The time-to-live (TTL) for each session in seconds.
          - `strategy` 'client' | 'redis' — The strategy for the session. If the value is 'client', the session is encrypted into MCP session id assigned to the client. If the value is not 'client', the session is stored in the configured database.
        - `label` string — The label of the MCP server. This is used to filter the exported MCP tools.
        - `timeout` integer — The timeout for calling the tools in milliseconds.
    - `tools` AIGatewayMCPToolBase[] — List of tools exposed by this MCP Server.
      - `access` object
        - `acls` AIGatewayMCPACLs — **Pre-release Feature** This feature is currently in beta and is subject to change. Access control rules for MCP resources. Configure `allow`, `deny`, or both.
          - `allow` string[] — List of consumer groups that are permitted access.
          - `deny` string[] — List of consumer groups that are denied access.
      - `annotations` AIGatewayMCPToolAnnotations — **Pre-release Feature** This feature is currently in beta and is subject to change.
        - `destructive_hint` boolean — If true, the tool may perform destructive updates
        - `idempotent_hint` boolean — If true, repeated calls with same args have no additional effect
        - `open_world_hint` boolean — If true, tool interacts with external entities
        - `read_only_hint` boolean — If true, the tool does not modify its environment
        - `title` string — Human-readable title for the tool
      - `description` string, required — A description of what the tool does.
      - `headers` AIGatewayMCPToolHeaders — **Pre-release Feature** This feature is currently in beta and is subject to change. The headers of the exported API. By default, Kong will extract the headers from API configuration. If the configured headers are not exactly matched, this field is required.
      - `host` string — The host of the exported API, which must match the route's hosts. It should be the route's host. By default, Kong will extract the host from API configuration. If the configured host is wildcard, this field is required.
      - `name` string, required — Tool identifier. In passthrough-listener mode, used to match remote MCP Server tools for ACL enforcement. In other modes, it is also used as the tool name (overrides annotations.title if present).
      - `method` 'DELETE' | 'GET' | 'PATCH' | 'POST' | 'PUT' — For conversion-only and conversion-listener modes, the method of the exported API, which must match the route's methods.
      - `path` string — The path of the exported API, which must match the route's paths. Path not starting with '/' are treated as relative path and the route path will be added as the prefix. By default, Kong will extract the path from API configuration.
      - `query` AIGatewayMCPToolQuery — **Pre-release Feature** This feature is currently in beta and is subject to change. The query arguments of the exported API. If the generated query arguments are not exactly matched, this field is required.
      - `request_body` AIGatewayMCPToolRequestBody — **Pre-release Feature** This feature is currently in beta and is subject to change. The API requestBody specification defined in OpenAPI JSON format. For example, '{"content":{"application/x-www-form-urlencoded":{"schema":{"type":"object","properties":{"color":{"type":"array","items":{"type":"string"}}}}}}}'. See https://swagger.io/docs/specification/v3_0/describing-request-body/describing-request-body/ for more details. Note that `$ref` is not supported.
      - `responses` AIGatewayMCPToolResponses — **Pre-release Feature** This feature is currently in beta and is subject to change. The API responses specification defined in OpenAPI JSON format. This specification will be used to validate the upstream response and map it back to the structuredOutput. For example, '{"200":{"content":{"application/json":{"schema":{"type":"object","properties":{"result":{"type":"string"}}}}}}}}'. See https://swagger.io/docs/specification/v3_0/describing-responses/ for more details. Only one non-error (status code < 400) response is supported. Note that `$ref` is not supported.
      - `scheme` 'http' | 'https' — The scheme of the exported API. By default, Kong will extract the scheme from API configuration. If the configured scheme is not expected, this field can be used to override it.
      - `parameters` AIGatewayMCPToolParameter[] — **Pre-release Feature** This feature is currently in beta and is subject to change.
        - `name` string, required — The name of the parameter.
        - `in` 'query' | 'path' | 'header' | 'body', required — The location of the parameter in the request.
        - `description` string — A description of the parameter.
        - `required` boolean — Whether this parameter is required.
        - `schema` object — JSON Schema definition for the parameter value. See https://swagger.io/docs/specification/v3_0/describing-parameters/#schema-vs-content for more details.
    - `access` union — **Pre-release Feature** This feature is currently in beta and is subject to change.
      - AIGatewayMCPServerListenerConsumer — **Pre-release Feature** This feature is currently in beta and is subject to change. Identity provider and OAuth 2.0 Protected Resource Metadata configuration for granting access to an MCP server.
        - `acl_attribute_type` 'consumer', required — The type of attributes that ACL is evaluated with.
        - `acls` AIGatewayMCPACLs — **Pre-release Feature** This feature is currently in beta and is subject to change. Access control rules for MCP resources. Configure `allow`, `deny`, or both.
          - `allow` string[] — List of consumer groups that are permitted access.
          - `deny` string[] — List of consumer groups that are denied access.
        - `default_tool_acls` AIGatewayMCPACLs — **Pre-release Feature** This feature is currently in beta and is subject to change. Access control rules for MCP resources. Configure `allow`, `deny`, or both.
          - `allow` string[] — List of consumer groups that are permitted access.
          - `deny` string[] — List of consumer groups that are denied access.
        - `identity_providers` AIGatewayIdentityProviderReference[] — List of identity providers for granting access to the MCP server. At most 1 identity provider of each identity provider type can be referenced.
        - `metadata` AIGatewayMCPServerProtectedResourceMetadata — **Pre-release Feature** This feature is currently in beta and is subject to change. OAuth 2.0 Protected Resource Metadata (RFC 9728) advertised for this MCP server, allowing clients to discover the authorization servers that protect it.
          - `discovery_endpoint` string — The URL where the protected resource metadata is served.
          - `endpoint` string — The protected resource endpoint the metadata describes.
          - `authorization_servers` string[] — List of authorization server issuer URLs that can issue tokens for this resource.
          - `resource` string — The protected resource's identifier (resource URI).
          - `scopes_supported` string[] — List of OAuth scopes supported by the protected resource.
      - AIGatewayMCPServerListenerOauth — **Pre-release Feature** This feature is currently in beta and is subject to change. Identity provider and OAuth 2.0 Protected Resource Metadata configuration for granting access to an MCP server.
        - `acl_attribute_type` 'oauth_access_token', required — The type of attributes that ACL is evaluated with.
        - `access_token_claim_field` string, required — The claim in the OAuth2 access token to use as the subject for ACL evaluation when `acl_attribute_type` is set to `oauth_access_token`. Nested claim can be fetched by using a jq filter starts with dot, e.g., “.user.email”: https://jqlang.org/manual/#object-identifier-index
        - `acls` AIGatewayMCPACLs — **Pre-release Feature** This feature is currently in beta and is subject to change. Access control rules for MCP resources. Configure `allow`, `deny`, or both.
          - `allow` string[] — List of consumer groups that are permitted access.
          - `deny` string[] — List of consumer groups that are denied access.
        - `default_tool_acls` AIGatewayMCPACLs — **Pre-release Feature** This feature is currently in beta and is subject to change. Access control rules for MCP resources. Configure `allow`, `deny`, or both.
          - `allow` string[] — List of consumer groups that are permitted access.
          - `deny` string[] — List of consumer groups that are denied access.
        - `identity_providers` AIGatewayIdentityProviderReference[] — List of identity providers for granting access to the MCP server. At most 1 identity provider of each identity provider type can be referenced.
        - `metadata` AIGatewayMCPServerProtectedResourceMetadata — **Pre-release Feature** This feature is currently in beta and is subject to change. OAuth 2.0 Protected Resource Metadata (RFC 9728) advertised for this MCP server, allowing clients to discover the authorization servers that protect it.
          - `discovery_endpoint` string — The URL where the protected resource metadata is served.
          - `endpoint` string — The protected resource endpoint the metadata describes.
          - `authorization_servers` string[] — List of authorization server issuer URLs that can issue tokens for this resource.
          - `resource` string — The protected resource's identifier (resource URI).
          - `scopes_supported` string[] — List of OAuth scopes supported by the protected resource.
    - `display_name` string, required — The display name for the MCP Server.
    - `name` string, required — Identifier for an AI Gateway entity. In some cases, this may be the entity name or ID.
    - `enabled` boolean — Whether the MCP Server is enabled.
    - `policies` string[] — List of policy references.
    - `labels` PublicLabels — Public labels store information about an entity that can be used for filtering a list of objects. Public labels are intended to store **PUBLIC** metadata. Keys must be of length 1-63 characters, and cannot start with "kong", "konnect", "mesh", "kic", or "_".
    - `managed_by` ManagedBy — Stores information about what manages this entity, such as the tool or system responsible for its lifecycle (for example, `terraform`). Keys must be 1–63 characters long and start with an alphanumeric character.
  - object — **Pre-release Feature** This feature is currently in beta and is subject to change.
    - `id` string, uuid, required — Contains a unique identifier used for this resource.
    - `created_at` string, date-time, required — An ISO-8601 timestamp representation of entity creation date.
    - `updated_at` string, date-time, required — An ISO-8601 timestamp representation of entity update date.
    - `type` 'passthrough-listener', required
    - `config` AIGatewayMCPServerWithUpstreamConfig, required — **Pre-release Feature** This feature is currently in beta and is subject to change. Routing, logging, and server configuration for the MCP Server.
      - `route` AIGatewayRouteConfig — **Pre-release Feature** This feature is currently in beta and is subject to change. Configuration for an AI Gateway route.
        - `headers` object — One or more lists of values indexed by header name that will cause this route to match if present in the request. The `Host` header cannot be used with this attribute: hosts should be specified using the `hosts` attribute. When `headers` contains only one value and that value starts with the special prefix `~*`, the value is interpreted as a regular expression.
        - `hosts` string[] — A list of domain names that match this route. Note that the hosts value is case sensitive.
        - `https_redirect_status_code` integer — The status code Kong responds with when all properties of a route match except the protocol i.e. if the protocol of the request is `HTTP` instead of `HTTPS`. `Location` header is injected by Kong if the field is set to 301, 302, 307 or 308. Note: This config applies only if the route is configured to only accept the `https` protocol.
        - `methods` string[] — A list of HTTP methods that match this route.
        - `paths` string[] — A list of paths that match this route.
        - `preserve_host` boolean — When matching a route via one of the `hosts` domain names, use the request `Host` header in the upstream request headers. If set to `false`, the upstream `Host` header will be that of the service's `host`.
        - `protocols` string[] — An array of the protocols this route should allow. See the [route Object](#route-object) section for a list of accepted protocols. When set to only `https`, HTTP requests are answered with an upgrade error. When set to only `http`, HTTPS requests are answered with an error.
        - `regex_priority` integer — A number used to choose which route resolves a given request when several routes match it using regexes simultaneously. When two routes match the path and have the same `regex_priority`, the older one (lowest `created_at`) is used. Note that the priority for non-regex routes is different (longer non-regex routes are matched before shorter ones).
        - `request_buffering` boolean — Whether to enable request body buffering or not. With HTTP 1.1, it may make sense to turn this off on services that receive data with chunked transfer encoding.
        - `response_buffering` boolean — Whether to enable response body buffering or not. With HTTP 1.1, it may make sense to turn this off on services that send data with chunked transfer encoding.
        - `strip_path` boolean — When matching a route via one of the `paths`, strip the matching prefix from the upstream request URL.
        - `tags` string[] — An optional set of strings associated with the route for grouping and filtering.
      - `logging` object — **Pre-release Feature** This feature is currently in beta and is subject to change. Configuration for AI Gateway logging.
        - `payloads` boolean
        - `audits` boolean
      - `max_request_body_size` integer — Maximum size of request body to parse. Set to 0 for unlimited.
      - `server` AIGatewayMCPServerServerConfigBase — **Pre-release Feature** This feature is currently in beta and is subject to change. Server-side configuration for the MCP Server.
        - `forward_client_headers` boolean — Whether to forward the client request headers to the upstream server when calling the tools.
        - `session` object — Enable managed session when Kong responds as MCP server in listener, conversion-listener, or upstream-server modes. This doesn't affect the passthrough-listener mode as the state in that mode is maintained by the upstream MCP servers.
          - `client` object — The configuration for client-side session storage.
            - `secrets` string[] — The secrets that are used in session encryption. Required when the strategy is 'client'. The first secret is used for encryption, while all secrets are used for decryption to support key rotation.
          - `managed` boolean — If enabled, Kong will maintain managed sessions with the MCP server.
          - `redis` AIGatewayRedisCloudConfiguration — **Pre-release Feature** This feature is currently in beta and is subject to change. Config for connecting to a Cloud Provider's Redis instance.
            - `cloud_authentication` union — Auth related config for connecting to a Cloud Provider's Redis instance.
              - …
            - `cluster` object — Cluster configuration for the Redis connection.
              - …
            - `connect_timeout` integer — An integer representing a timeout in milliseconds. Must be between 0 and 2^31-2.
            - `connection_is_proxied` boolean — If the connection to Redis is proxied (e.g. Envoy), set it `true`. Set the `host` and `port` to point to the proxy address.
            - `database` integer — Database to use for the Redis connection when using the `redis` strategy
            - `host` string — A string representing a host name, such as example.com. This field is [referenceable](https://developer.konghq.com/gateway/entities/vault/#how-do-i-reference-secrets-stored-in-a-vault).
            - `keepalive` object — Keepalive configuration for the Redis connection.
              - …
            - `password` string — Password to use for Redis connections. If undefined, no AUTH commands are sent to Redis. This field is [referenceable](https://developer.konghq.com/gateway/entities/vault/#how-do-i-reference-secrets-stored-in-a-vault).
            - `port` union — An integer representing a port number between 0 and 65535, inclusive. This field is [referenceable](https://developer.konghq.com/gateway/entities/vault/#how-do-i-reference-secrets-stored-in-a-vault).
              - …
            - `read_timeout` integer — An integer representing a timeout in milliseconds. Must be between 0 and 2^31-2.
            - `send_timeout` integer — An integer representing a timeout in milliseconds. Must be between 0 and 2^31-2.
            - `sentinel` object — Configuration for Redis Sentinel.
              - …
            - `server_name` string — A string representing an SNI (server name indication) value for TLS. This field is [referenceable](https://developer.konghq.com/gateway/entities/vault/#how-do-i-reference-secrets-stored-in-a-vault).
            - `ssl` boolean — If set to true, uses SSL to connect to Redis.
            - `ssl_verify` boolean — If set to true, verifies the validity of the server SSL certificate. If setting this parameter, also configure `lua_ssl_trusted_certificate` in `kong.conf` to specify the CA (or server) certificate used by your Redis server. You may also need to configure `lua_ssl_verify_depth` accordingly.
            - `username` string — Username to use for Redis connections. If undefined, ACL authentication won't be performed. This requires Redis v6.0.0+. To be compatible with Redis v5.x.y, you can set it to `default`. This field is [referenceable](https://developer.konghq.com/gateway/entities/vault/#how-do-i-reference-secrets-stored-in-a-vault).
          - `session_ttl` integer — The time-to-live (TTL) for each session in seconds.
          - `strategy` 'client' | 'redis' — The strategy for the session. If the value is 'client', the session is encrypted into MCP session id assigned to the client. If the value is not 'client', the session is stored in the configured database.
        - `label` string — The label of the MCP server. This is used to filter the exported MCP tools.
        - `timeout` integer — The timeout for calling the tools in milliseconds.
      - `url` string, uri, required — Helper field to set protocol, host, port and path of the upstream service using a URL. This is the same as a Kong Gateway Service URL: ${scheme}://${host}:${port}/${path}
      - `proxy` AIGatewayProxyConfig — HTTP/HTTPS proxy configuration for outbound requests to the upstream AI provider.
        - `http_proxy` object — HTTP proxy server to route plaintext outbound requests through.
          - `host` string — A string representing a host name, such as example.com.
          - `port` integer — An integer representing a port number between 0 and 65535, inclusive.
        - `https_proxy` object — HTTPS proxy server to route TLS outbound requests through.
          - `host` string — A string representing a host name, such as example.com.
          - `port` integer — An integer representing a port number between 0 and 65535, inclusive.
        - `proxy_scheme` 'http' — The proxy scheme to use when connecting to the proxy server.
        - `auth` object — Credentials used to authenticate to the proxy server.
          - `username` string — The username to use for proxy authentication. This field is [referenceable](https://developer.konghq.com/gateway/entities/vault/#how-do-i-reference-secrets-stored-in-a-vault).
          - `password` string — The password to use for proxy authentication. This field is [referenceable](https://developer.konghq.com/gateway/entities/vault/#how-do-i-reference-secrets-stored-in-a-vault).
        - `no_proxy` string — Comma-separated list of hosts that should not be proxied.
    - `tools` AIGatewayMCPToolBase[] — List of tools exposed by this MCP Server.
      - `access` object
        - `acls` AIGatewayMCPACLs — **Pre-release Feature** This feature is currently in beta and is subject to change. Access control rules for MCP resources. Configure `allow`, `deny`, or both.
          - `allow` string[] — List of consumer groups that are permitted access.
          - `deny` string[] — List of consumer groups that are denied access.
      - `annotations` AIGatewayMCPToolAnnotations — **Pre-release Feature** This feature is currently in beta and is subject to change.
        - `destructive_hint` boolean — If true, the tool may perform destructive updates
        - `idempotent_hint` boolean — If true, repeated calls with same args have no additional effect
        - `open_world_hint` boolean — If true, tool interacts with external entities
        - `read_only_hint` boolean — If true, the tool does not modify its environment
        - `title` string — Human-readable title for the tool
      - `description` string, required — A description of what the tool does.
      - `headers` AIGatewayMCPToolHeaders — **Pre-release Feature** This feature is currently in beta and is subject to change. The headers of the exported API. By default, Kong will extract the headers from API configuration. If the configured headers are not exactly matched, this field is required.
      - `host` string — The host of the exported API, which must match the route's hosts. It should be the route's host. By default, Kong will extract the host from API configuration. If the configured host is wildcard, this field is required.
      - `name` string, required — Tool identifier. In passthrough-listener mode, used to match remote MCP Server tools for ACL enforcement. In other modes, it is also used as the tool name (overrides annotations.title if present).
      - `method` 'DELETE' | 'GET' | 'PATCH' | 'POST' | 'PUT' — For conversion-only and conversion-listener modes, the method of the exported API, which must match the route's methods.
      - `path` string — The path of the exported API, which must match the route's paths. Path not starting with '/' are treated as relative path and the route path will be added as the prefix. By default, Kong will extract the path from API configuration.
      - `query` AIGatewayMCPToolQuery — **Pre-release Feature** This feature is currently in beta and is subject to change. The query arguments of the exported API. If the generated query arguments are not exactly matched, this field is required.
      - `request_body` AIGatewayMCPToolRequestBody — **Pre-release Feature** This feature is currently in beta and is subject to change. The API requestBody specification defined in OpenAPI JSON format. For example, '{"content":{"application/x-www-form-urlencoded":{"schema":{"type":"object","properties":{"color":{"type":"array","items":{"type":"string"}}}}}}}'. See https://swagger.io/docs/specification/v3_0/describing-request-body/describing-request-body/ for more details. Note that `$ref` is not supported.
      - `responses` AIGatewayMCPToolResponses — **Pre-release Feature** This feature is currently in beta and is subject to change. The API responses specification defined in OpenAPI JSON format. This specification will be used to validate the upstream response and map it back to the structuredOutput. For example, '{"200":{"content":{"application/json":{"schema":{"type":"object","properties":{"result":{"type":"string"}}}}}}}}'. See https://swagger.io/docs/specification/v3_0/describing-responses/ for more details. Only one non-error (status code < 400) response is supported. Note that `$ref` is not supported.
      - `scheme` 'http' | 'https' — The scheme of the exported API. By default, Kong will extract the scheme from API configuration. If the configured scheme is not expected, this field can be used to override it.
      - `parameters` AIGatewayMCPToolParameter[] — **Pre-release Feature** This feature is currently in beta and is subject to change.
        - `name` string, required — The name of the parameter.
        - `in` 'query' | 'path' | 'header' | 'body', required — The location of the parameter in the request.
        - `description` string — A description of the parameter.
        - `required` boolean — Whether this parameter is required.
        - `schema` object — JSON Schema definition for the parameter value. See https://swagger.io/docs/specification/v3_0/describing-parameters/#schema-vs-content for more details.
    - `access` union — **Pre-release Feature** This feature is currently in beta and is subject to change.
      - AIGatewayMCPServerListenerConsumer — **Pre-release Feature** This feature is currently in beta and is subject to change. Identity provider and OAuth 2.0 Protected Resource Metadata configuration for granting access to an MCP server.
        - `acl_attribute_type` 'consumer', required — The type of attributes that ACL is evaluated with.
        - `acls` AIGatewayMCPACLs — **Pre-release Feature** This feature is currently in beta and is subject to change. Access control rules for MCP resources. Configure `allow`, `deny`, or both.
          - `allow` string[] — List of consumer groups that are permitted access.
          - `deny` string[] — List of consumer groups that are denied access.
        - `default_tool_acls` AIGatewayMCPACLs — **Pre-release Feature** This feature is currently in beta and is subject to change. Access control rules for MCP resources. Configure `allow`, `deny`, or both.
          - `allow` string[] — List of consumer groups that are permitted access.
          - `deny` string[] — List of consumer groups that are denied access.
        - `identity_providers` AIGatewayIdentityProviderReference[] — List of identity providers for granting access to the MCP server. At most 1 identity provider of each identity provider type can be referenced.
        - `metadata` AIGatewayMCPServerProtectedResourceMetadata — **Pre-release Feature** This feature is currently in beta and is subject to change. OAuth 2.0 Protected Resource Metadata (RFC 9728) advertised for this MCP server, allowing clients to discover the authorization servers that protect it.
          - `discovery_endpoint` string — The URL where the protected resource metadata is served.
          - `endpoint` string — The protected resource endpoint the metadata describes.
          - `authorization_servers` string[] — List of authorization server issuer URLs that can issue tokens for this resource.
          - `resource` string — The protected resource's identifier (resource URI).
          - `scopes_supported` string[] — List of OAuth scopes supported by the protected resource.
      - AIGatewayMCPServerListenerOauth — **Pre-release Feature** This feature is currently in beta and is subject to change. Identity provider and OAuth 2.0 Protected Resource Metadata configuration for granting access to an MCP server.
        - `acl_attribute_type` 'oauth_access_token', required — The type of attributes that ACL is evaluated with.
        - `access_token_claim_field` string, required — The claim in the OAuth2 access token to use as the subject for ACL evaluation when `acl_attribute_type` is set to `oauth_access_token`. Nested claim can be fetched by using a jq filter starts with dot, e.g., “.user.email”: https://jqlang.org/manual/#object-identifier-index
        - `acls` AIGatewayMCPACLs — **Pre-release Feature** This feature is currently in beta and is subject to change. Access control rules for MCP resources. Configure `allow`, `deny`, or both.
          - `allow` string[] — List of consumer groups that are permitted access.
          - `deny` string[] — List of consumer groups that are denied access.
        - `default_tool_acls` AIGatewayMCPACLs — **Pre-release Feature** This feature is currently in beta and is subject to change. Access control rules for MCP resources. Configure `allow`, `deny`, or both.
          - `allow` string[] — List of consumer groups that are permitted access.
          - `deny` string[] — List of consumer groups that are denied access.
        - `identity_providers` AIGatewayIdentityProviderReference[] — List of identity providers for granting access to the MCP server. At most 1 identity provider of each identity provider type can be referenced.
        - `metadata` AIGatewayMCPServerProtectedResourceMetadata — **Pre-release Feature** This feature is currently in beta and is subject to change. OAuth 2.0 Protected Resource Metadata (RFC 9728) advertised for this MCP server, allowing clients to discover the authorization servers that protect it.
          - `discovery_endpoint` string — The URL where the protected resource metadata is served.
          - `endpoint` string — The protected resource endpoint the metadata describes.
          - `authorization_servers` string[] — List of authorization server issuer URLs that can issue tokens for this resource.
          - `resource` string — The protected resource's identifier (resource URI).
          - `scopes_supported` string[] — List of OAuth scopes supported by the protected resource.
    - `display_name` string, required — The display name for the MCP Server.
    - `name` string, required — Identifier for an AI Gateway entity. In some cases, this may be the entity name or ID.
    - `enabled` boolean — Whether the MCP Server is enabled.
    - `policies` string[] — List of policy references.
    - `labels` PublicLabels — Public labels store information about an entity that can be used for filtering a list of objects. Public labels are intended to store **PUBLIC** metadata. Keys must be of length 1-63 characters, and cannot start with "kong", "konnect", "mesh", "kic", or "_".
    - `managed_by` ManagedBy — Stores information about what manages this entity, such as the tool or system responsible for its lifecycle (for example, `terraform`). Keys must be 1–63 characters long and start with an alphanumeric character.
  - object — **Pre-release Feature** This feature is currently in beta and is subject to change.
    - `id` string, uuid, required — Contains a unique identifier used for this resource.
    - `created_at` string, date-time, required — An ISO-8601 timestamp representation of entity creation date.
    - `updated_at` string, date-time, required — An ISO-8601 timestamp representation of entity update date.
    - `type` 'upstream-server', required
    - `config` AIGatewayMCPServerUpstreamServerConfig, required — **Pre-release Feature** This feature is currently in beta and is subject to change. Routing, logging, and server configuration for the MCP Server.
      - `route` AIGatewayRouteConfig — **Pre-release Feature** This feature is currently in beta and is subject to change. Configuration for an AI Gateway route.
        - `headers` object — One or more lists of values indexed by header name that will cause this route to match if present in the request. The `Host` header cannot be used with this attribute: hosts should be specified using the `hosts` attribute. When `headers` contains only one value and that value starts with the special prefix `~*`, the value is interpreted as a regular expression.
        - `hosts` string[] — A list of domain names that match this route. Note that the hosts value is case sensitive.
        - `https_redirect_status_code` integer — The status code Kong responds with when all properties of a route match except the protocol i.e. if the protocol of the request is `HTTP` instead of `HTTPS`. `Location` header is injected by Kong if the field is set to 301, 302, 307 or 308. Note: This config applies only if the route is configured to only accept the `https` protocol.
        - `methods` string[] — A list of HTTP methods that match this route.
        - `paths` string[] — A list of paths that match this route.
        - `preserve_host` boolean — When matching a route via one of the `hosts` domain names, use the request `Host` header in the upstream request headers. If set to `false`, the upstream `Host` header will be that of the service's `host`.
        - `protocols` string[] — An array of the protocols this route should allow. See the [route Object](#route-object) section for a list of accepted protocols. When set to only `https`, HTTP requests are answered with an upgrade error. When set to only `http`, HTTPS requests are answered with an error.
        - `regex_priority` integer — A number used to choose which route resolves a given request when several routes match it using regexes simultaneously. When two routes match the path and have the same `regex_priority`, the older one (lowest `created_at`) is used. Note that the priority for non-regex routes is different (longer non-regex routes are matched before shorter ones).
        - `request_buffering` boolean — Whether to enable request body buffering or not. With HTTP 1.1, it may make sense to turn this off on services that receive data with chunked transfer encoding.
        - `response_buffering` boolean — Whether to enable response body buffering or not. With HTTP 1.1, it may make sense to turn this off on services that send data with chunked transfer encoding.
        - `strip_path` boolean — When matching a route via one of the `paths`, strip the matching prefix from the upstream request URL.
        - `tags` string[] — An optional set of strings associated with the route for grouping and filtering.
      - `logging` object — **Pre-release Feature** This feature is currently in beta and is subject to change. Configuration for AI Gateway logging.
        - `payloads` boolean
        - `audits` boolean
      - `max_request_body_size` integer — Maximum size of request body to parse. Set to 0 for unlimited.
      - `server` AIGatewayMCPServerUpstreamServerServerConfig — Server-side configuration specific to `upstream-server` mode.
        - `forward_client_headers` boolean — Whether to forward the client request headers to the upstream server when calling the tools.
        - `session` object — Enable managed session when Kong responds as MCP server in listener, conversion-listener, or upstream-server modes. This doesn't affect the passthrough-listener mode as the state in that mode is maintained by the upstream MCP servers.
          - `client` object — The configuration for client-side session storage.
            - `secrets` string[] — The secrets that are used in session encryption. Required when the strategy is 'client'. The first secret is used for encryption, while all secrets are used for decryption to support key rotation.
          - `managed` boolean — If enabled, Kong will maintain managed sessions with the MCP server.
          - `redis` AIGatewayRedisCloudConfiguration — **Pre-release Feature** This feature is currently in beta and is subject to change. Config for connecting to a Cloud Provider's Redis instance.
            - `cloud_authentication` union — Auth related config for connecting to a Cloud Provider's Redis instance.
              - …
            - `cluster` object — Cluster configuration for the Redis connection.
              - …
            - `connect_timeout` integer — An integer representing a timeout in milliseconds. Must be between 0 and 2^31-2.
            - `connection_is_proxied` boolean — If the connection to Redis is proxied (e.g. Envoy), set it `true`. Set the `host` and `port` to point to the proxy address.
            - `database` integer — Database to use for the Redis connection when using the `redis` strategy
            - `host` string — A string representing a host name, such as example.com. This field is [referenceable](https://developer.konghq.com/gateway/entities/vault/#how-do-i-reference-secrets-stored-in-a-vault).
            - `keepalive` object — Keepalive configuration for the Redis connection.
              - …
            - `password` string — Password to use for Redis connections. If undefined, no AUTH commands are sent to Redis. This field is [referenceable](https://developer.konghq.com/gateway/entities/vault/#how-do-i-reference-secrets-stored-in-a-vault).
            - `port` union — An integer representing a port number between 0 and 65535, inclusive. This field is [referenceable](https://developer.konghq.com/gateway/entities/vault/#how-do-i-reference-secrets-stored-in-a-vault).
              - …
            - `read_timeout` integer — An integer representing a timeout in milliseconds. Must be between 0 and 2^31-2.
            - `send_timeout` integer — An integer representing a timeout in milliseconds. Must be between 0 and 2^31-2.
            - `sentinel` object — Configuration for Redis Sentinel.
              - …
            - `server_name` string — A string representing an SNI (server name indication) value for TLS. This field is [referenceable](https://developer.konghq.com/gateway/entities/vault/#how-do-i-reference-secrets-stored-in-a-vault).
            - `ssl` boolean — If set to true, uses SSL to connect to Redis.
            - `ssl_verify` boolean — If set to true, verifies the validity of the server SSL certificate. If setting this parameter, also configure `lua_ssl_trusted_certificate` in `kong.conf` to specify the CA (or server) certificate used by your Redis server. You may also need to configure `lua_ssl_verify_depth` accordingly.
            - `username` string — Username to use for Redis connections. If undefined, ACL authentication won't be performed. This requires Redis v6.0.0+. To be compatible with Redis v5.x.y, you can set it to `default`. This field is [referenceable](https://developer.konghq.com/gateway/entities/vault/#how-do-i-reference-secrets-stored-in-a-vault).
          - `session_ttl` integer — The time-to-live (TTL) for each session in seconds.
          - `strategy` 'client' | 'redis' — The strategy for the session. If the value is 'client', the session is encrypted into MCP session id assigned to the client. If the value is not 'client', the session is stored in the configured database.
        - `label` string — The label of the MCP server. This is used to filter the exported MCP tools.
        - `timeout` integer — The timeout for calling the tools in milliseconds.
        - `preserve_upstream_tool_names` boolean — If enabled, the original upstream tool names are preserved as-is when Kong acts as an MCP server. If disabled (`false`), the service name will be prepended to the MCP tool names to avoid name collisions when multiple services are used.
        - `tools_list_auth` union — **Pre-release Feature** This feature is currently in beta and is subject to change. Configuration for an Upstream Server's MCP Server Tools' Authentication.
          - AIGatewayMCPServerUpstreamServerToolOauth2ConfigJwt — **Pre-release Feature** This feature is currently in beta and is subject to change.
            - `scope` string — The scopes for the OAuth 2.0 client-credentials. This field is [referenceable](https://developer.konghq.com/gateway/entities/vault/#how-do-i-reference-secrets-stored-in-a-vault).
            - `access_token_header` string — Header name used to send the fetched access token to the upstream MCP server. The value should include the header name and the token prefix if needed.
            - `id_token_header` string — Header name used to send the fetched ID token to the upstream MCP server. The value should include the header name and the token prefix if needed. Leave empty to omit the ID token when fetching the tools list.
            - `type` 'jwt', required
          - AIGatewayMCPServerUpstreamServerToolOauth2ConfigCredentials — **Pre-release Feature** This feature is currently in beta and is subject to change.
            - `scope` string — The scopes for the OAuth 2.0 client-credentials. This field is [referenceable](https://developer.konghq.com/gateway/entities/vault/#how-do-i-reference-secrets-stored-in-a-vault).
            - `access_token_header` string — Header name used to send the fetched access token to the upstream MCP server. The value should include the header name and the token prefix if needed.
            - `id_token_header` string — Header name used to send the fetched ID token to the upstream MCP server. The value should include the header name and the token prefix if needed. Leave empty to omit the ID token when fetching the tools list.
            - `type` 'credentials', required
            - `token_endpoint` string, uri, required — The token endpoint URL for fetching the OAuth 2.0 access token using client-credentials. This field is [referenceable](https://developer.konghq.com/gateway/entities/vault/#how-do-i-reference-secrets-stored-in-a-vault).
            - `client_id` string, required — The client ID for the OAuth 2.0 client-credentials. This field is [referenceable](https://developer.konghq.com/gateway/entities/vault/#how-do-i-reference-secrets-stored-in-a-vault).
            - `client_secret` string — The client secret for the OAuth 2.0 client-credentials. This field is [referenceable](https://developer.konghq.com/gateway/entities/vault/#how-do-i-reference-secrets-stored-in-a-vault).
      - `url` string, uri, required — Helper field to set protocol, host, port and path of the upstream service using a URL. This is the same as a Kong Gateway Service URL: ${scheme}://${host}:${port}/${path}
      - `tools_cache_ttl_seconds` integer, required — The time-to-live (TTL) for the upstream tools cache in seconds. Set to `0` to refresh on every client call.
    - `tools` AIGatewayMCPUpstreamTool[] — List of tools exposed by this MCP Server.
      - `access` object
        - `acls` AIGatewayMCPACLs — **Pre-release Feature** This feature is currently in beta and is subject to change. Access control rules for MCP resources. Configure `allow`, `deny`, or both.
          - `allow` string[] — List of consumer groups that are permitted access.
          - `deny` string[] — List of consumer groups that are denied access.
      - `annotations` AIGatewayMCPToolAnnotations — **Pre-release Feature** This feature is currently in beta and is subject to change.
        - `destructive_hint` boolean — If true, the tool may perform destructive updates
        - `idempotent_hint` boolean — If true, repeated calls with same args have no additional effect
        - `open_world_hint` boolean — If true, tool interacts with external entities
        - `read_only_hint` boolean — If true, the tool does not modify its environment
        - `title` string — Human-readable title for the tool
      - `description` string, required — A description of what the tool does.
      - `headers` AIGatewayMCPToolHeaders — **Pre-release Feature** This feature is currently in beta and is subject to change. The headers of the exported API. By default, Kong will extract the headers from API configuration. If the configured headers are not exactly matched, this field is required.
      - `host` string — The host of the exported API, which must match the route's hosts. It should be the route's host. By default, Kong will extract the host from API configuration. If the configured host is wildcard, this field is required.
      - `name` string, required — Tool identifier. In passthrough-listener mode, used to match remote MCP Server tools for ACL enforcement. In other modes, it is also used as the tool name (overrides annotations.title if present).
      - `method` 'DELETE' | 'GET' | 'PATCH' | 'POST' | 'PUT' — When provided, the method of the exported API, which must match the route's methods.
      - `path` string — The path of the exported API, which must match the route's paths. Path not starting with '/' are treated as relative path and the route path will be added as the prefix. By default, Kong will extract the path from API configuration.
      - `query` AIGatewayMCPToolQuery — **Pre-release Feature** This feature is currently in beta and is subject to change. The query arguments of the exported API. If the generated query arguments are not exactly matched, this field is required.
      - `request_body` AIGatewayMCPToolRequestBody — **Pre-release Feature** This feature is currently in beta and is subject to change. The API requestBody specification defined in OpenAPI JSON format. For example, '{"content":{"application/x-www-form-urlencoded":{"schema":{"type":"object","properties":{"color":{"type":"array","items":{"type":"string"}}}}}}}'. See https://swagger.io/docs/specification/v3_0/describing-request-body/describing-request-body/ for more details. Note that `$ref` is not supported.
      - `responses` AIGatewayMCPToolResponses — **Pre-release Feature** This feature is currently in beta and is subject to change. The API responses specification defined in OpenAPI JSON format. This specification will be used to validate the upstream response and map it back to the structuredOutput. For example, '{"200":{"content":{"application/json":{"schema":{"type":"object","properties":{"result":{"type":"string"}}}}}}}}'. See https://swagger.io/docs/specification/v3_0/describing-responses/ for more details. Only one non-error (status code < 400) response is supported. Note that `$ref` is not supported.
      - `scheme` 'http' | 'https' — The scheme of the exported API. By default, Kong will extract the scheme from API configuration. If the configured scheme is not expected, this field can be used to override it.
      - `parameters` AIGatewayMCPToolParameter[] — **Pre-release Feature** This feature is currently in beta and is subject to change.
        - `name` string, required — The name of the parameter.
        - `in` 'query' | 'path' | 'header' | 'body', required — The location of the parameter in the request.
        - `description` string — A description of the parameter.
        - `required` boolean — Whether this parameter is required.
        - `schema` object — JSON Schema definition for the parameter value. See https://swagger.io/docs/specification/v3_0/describing-parameters/#schema-vs-content for more details.
      - `input_schema` object, nullable — The entire `inputSchema` section for the tool. Overrides the upstream server's `inputSchema` for the same tool name, if present.
      - `output_schema` object, nullable — The entire `outputSchema` section for the tool. Overrides the upstream server's `outputSchema` for the same tool name, if present.
    - `access` union — **Pre-release Feature** This feature is currently in beta and is subject to change.
      - AIGatewayMCPServerBaseACLPropertiesConsumer — **Pre-release Feature** This feature is currently in beta and is subject to change.
        - `acl_attribute_type` 'consumer', required — The type of attributes that ACL is evaluated with.
        - `acls` AIGatewayMCPACLs — **Pre-release Feature** This feature is currently in beta and is subject to change. Access control rules for MCP resources. Configure `allow`, `deny`, or both.
          - `allow` string[] — List of consumer groups that are permitted access.
          - `deny` string[] — List of consumer groups that are denied access.
        - `default_tool_acls` AIGatewayMCPACLs — **Pre-release Feature** This feature is currently in beta and is subject to change. Access control rules for MCP resources. Configure `allow`, `deny`, or both.
          - `allow` string[] — List of consumer groups that are permitted access.
          - `deny` string[] — List of consumer groups that are denied access.
      - AIGatewayMCPServerBaseACLPropertiesOauth — **Pre-release Feature** This feature is currently in beta and is subject to change.
        - `acl_attribute_type` 'oauth_access_token', required — The type of attributes that ACL is evaluated with.
        - `access_token_claim_field` string, required — The claim in the OAuth2 access token to use as the subject for ACL evaluation when `acl_attribute_type` is set to `oauth_access_token`. Nested claim can be fetched by using a jq filter starts with dot, e.g., “.user.email”: https://jqlang.org/manual/#object-identifier-index
        - `acls` AIGatewayMCPACLs — **Pre-release Feature** This feature is currently in beta and is subject to change. Access control rules for MCP resources. Configure `allow`, `deny`, or both.
          - `allow` string[] — List of consumer groups that are permitted access.
          - `deny` string[] — List of consumer groups that are denied access.
        - `default_tool_acls` AIGatewayMCPACLs — **Pre-release Feature** This feature is currently in beta and is subject to change. Access control rules for MCP resources. Configure `allow`, `deny`, or both.
          - `allow` string[] — List of consumer groups that are permitted access.
          - `deny` string[] — List of consumer groups that are denied access.
    - `display_name` string, required — The display name for the MCP Server.
    - `name` string, required — Identifier for an AI Gateway entity. In some cases, this may be the entity name or ID.
    - `enabled` boolean — Whether the MCP Server is enabled.
    - `policies` string[] — List of policy references.
    - `labels` PublicLabels — Public labels store information about an entity that can be used for filtering a list of objects. Public labels are intended to store **PUBLIC** metadata. Keys must be of length 1-63 characters, and cannot start with "kong", "konnect", "mesh", "kic", or "_".
    - `managed_by` ManagedBy — Stores information about what manages this entity, such as the tool or system responsible for its lifecycle (for example, `terraform`). Keys must be 1–63 characters long and start with an alphanumeric character.

## Other responses

- `401` — Unauthorized
- `403` — Forbidden
- `404` — Not Found
- `429` — Too Many Requests

---

[API](https://skmtc.net/kong/apis/konnect-api-go-sdk.md) · [All operations](https://skmtc.net/kong/apis/konnect-api-go-sdk/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/kong/konnect-api-go-sdk/revisions/f920f418f552/schema)
