A Model Context Protocol (MCP) server for interacting with Kong Konnect APIs, allowing AI assistants to query and analyze Kong Gateway configurations, traffic, and analytics.
A Model Context Protocol (MCP) server for interacting with Kong Konnect APIs, allowing AI assistants to query and analyze Kong Gateway configurations, traffic, and analytics.
Check if a control plane is a member of any group.
get_consumer_requests
Retrieve and analyze API requests made by a specific consumer.
get_control_plane
Get detailed information about a specific control plane.
list_consumers
List all consumers associated with a control plane.
list_control_plane_group_memberships
List all control planes that are members of a specific control plane group.
list_control_planes
List all control planes in your organization.
list_plugins
List all plugins associated with a control plane.
list_routes
List all routes associated with a control plane.
list_services
List all services associated with a control plane.
query_api_requests
Query and analyze Kong API Gateway requests with customizable filters.
Tools Details
Tool: check_control_plane_group_membership
Check if a control plane is a member of any group.
INPUT:
controlPlaneId: String - ID of the control plane to check
OUTPUT:
controlPlaneId: String - ID of the control plane that was checked
groupMembership: Object - Membership information including:
isMember: Boolean - Whether the control plane is a member of any group
groupId: String - ID of the group this control plane belongs to (if any)
groupName: String - Name of the group this control plane belongs to
status: String - Membership status (OK, CONFLICT, etc.)
message: String - Status message
conflicts: Array - List of configuration conflicts if any
relatedTools: Array - List of related tools for group management
Parameters|Type|Description
-|-|-
controlPlaneId|string|Control plane ID to check (can be obtained from list-control-planes tool)
Tool: get_consumer_requests
Retrieve and analyze API requests made by a specific consumer.
INPUT:
consumerId: String - ID of the consumer to analyze. The format of this field must be "controlPlaneID:consumerId".
timeRange: String - Time range for data retrieval (15M, 1H, 6H, 12H, 24H, 7D)
successOnly: Boolean - Filter to only show successful (2xx) requests (default: false)
failureOnly: Boolean - Filter to only show failed (non-2xx) requests (default: false)
maxResults: Number - Maximum number of results to return (1-1000)
OUTPUT:
metadata: Object - Contains consumerId, totalRequests, timeRange, and filters
statistics: Object - Usage statistics including:
averageLatencyMs: Number - Average response time in milliseconds
successRate: Number - Percentage of successful requests
statusCodeDistribution: Array - Breakdown of requests by status code
serviceDistribution: Array - Breakdown of requests by service
requests: Array - List of requests with details for each request
Parameters|Type|Description
-|-|-
consumerId|string|Consumer ID to filter by (obtainable from analyze-failed-requests or query-api-requests tools)
failureOnly|booleanoptional|Show only failed (non-2xx) requests
maxResults|integeroptional|Number of items to return per page
successOnly|booleanoptional|Show only successful (2xx) requests
timeRange|stringoptional|Time range for data retrieval (15M = 15 minutes, 1H = 1 hour, etc.)
Tool: get_control_plane
Get detailed information about a specific control plane.
INPUT:
controlPlaneId: String - ID of the control plane to retrieve
OUTPUT:
controlPlaneDetails: Object - Detailed information including:
controlPlaneId: String - Unique identifier for the control plane
name: String - Display name of the control plane
description: String - Description of the control plane
type: String - Type of the control plane
clusterType: String - Underlying cluster type
controlPlaneEndpoint: String - URL endpoint for the control plane
telemetryEndpoint: String - URL endpoint for telemetry
hasCloudGateway: Boolean - Whether cloud gateway is enabled
labels: Object - Labels assigned to this control plane
metadata: Object - Creation and update timestamps
relatedTools: Array - List of related tools for further analysis
Parameters|Type|Description
-|-|-
controlPlaneId|string|Control Plane ID (obtainable from list-control-planes tool)
Tool: list_consumers
List all consumers associated with a control plane.
INPUT:
controlPlaneId: String - ID of the control plane
size: Number - Number of consumers to return (1-1000, default: 100)
offset: String (optional) - Pagination offset token from previous response
consumers: Array - List of consumers with details for each including:
consumerId: String - Unique identifier for the consumer
username: String - Username for this consumer
customId: String - Custom identifier for this consumer
tags: Array - Tags associated with the consumer
enabled: Boolean - Whether the consumer is enabled
metadata: Object - Creation and update timestamps
relatedTools: Array - List of related tools for consumer analysis
Parameters|Type|Description
-|-|-
controlPlaneId|string|Control Plane ID (obtainable from list-control-planes tool)
offset|stringoptional|Offset token for pagination (from previous response)
size|integeroptional|Number of consumers to return
Tool: list_control_plane_group_memberships
List all control planes that are members of a specific control plane group.
INPUT:
groupId: String - ID of the control plane group (control plane that acts as the group)
pageSize: Number - Number of members to return per page (1-1000, default: 10)
pageAfter: String (optional) - Cursor for pagination after a specific item
members: Array - List of member control planes with details for each including:
controlPlaneId: String - Unique identifier for the control plane
name: String - Display name of the control plane
description: String - Description of the control plane
type: String - Type of the control plane
clusterType: String - Underlying cluster type
membershipStatus: Object - Group membership status including:
status: String - Current status (OK, CONFLICT, etc.)
message: String - Status message
conflicts: Array - List of configuration conflicts if any
metadata: Object - Creation and update timestamps
relatedTools: Array - List of related tools for group management
Parameters|Type|Description
-|-|-
groupId|string|Control plane group ID (the ID of the control plane that acts as the group)
pageAfter|stringoptional|Cursor for pagination after a specific item
pageSize|integeroptional|Number of members to return per page
Tool: list_control_planes
List all control planes in your organization.
INPUT:
pageSize: Number - Number of control planes per page (1-1000, default: 10)
pageNumber: Number (optional) - Page number to retrieve
filterName: String (optional) - Filter control planes by name
filterClusterType: String (optional) - Filter by cluster type (kubernetes, docker, etc.)
filterCloudGateway: Boolean (optional) - Filter by cloud gateway capability
labels: String (optional) - Filter by labels (format: 'key:value,existCheck')
sort: String (optional) - Sort field and direction (e.g. 'name,created_at desc')
controlPlanes: Array - List of control planes with details for each including:
controlPlaneId: String - Unique identifier for the control plane
name: String - Display name of the control plane
description: String - Description of the control plane
type: String - Type of the control plane
clusterType: String - Underlying cluster type
controlPlaneEndpoint: String - URL endpoint for the control plane
telemetryEndpoint: String - URL endpoint for telemetry
hasCloudGateway: Boolean - Whether cloud gateway is enabled
labels: Object - Labels assigned to this control plane
metadata: Object - Creation and update timestamps
usage: Object - Information about how to use these results
Parameters|Type|Description
-|-|-
filterCloudGateway|booleanoptional|Filter by cloud gateway capability
filterClusterType|stringoptional|Filter by cluster type (e.g., 'kubernetes', 'docker')
filterName|stringoptional|Filter control planes by name (contains)
labels|stringoptional|Filter by labels (format: 'key:value,existCheck')
pageNumber|integeroptional|Page number to retrieve
pageSize|integeroptional|Number of control planes per page
sort|stringoptional|Sort field and direction (e.g. 'name,created_at desc')
Tool: list_plugins
List all plugins associated with a control plane.
INPUT:
controlPlaneId: String - ID of the control plane
size: Number - Number of plugins to return (1-1000, default: 100)
offset: String (optional) - Pagination offset token from previous response
plugins: Array - List of plugins with details for each including:
pluginId: String - Unique identifier for the plugin
name: String - Name of the plugin (e.g., rate-limiting, cors, etc.)
enabled: Boolean - Whether the plugin is enabled
config: Object - Plugin-specific configuration
protocols: Array - Protocols this plugin applies to
tags: Array - Tags associated with the plugin
scoping: Object - Defines plugin scope including:
consumerId: String - Consumer this plugin applies to (if any)
serviceId: String - Service this plugin applies to (if any)
routeId: String - Route this plugin applies to (if any)
global: Boolean - Whether this is a global plugin
metadata: Object - Creation and update timestamps
relatedTools: Array - List of related tools for plugin configuration
Parameters|Type|Description
-|-|-
controlPlaneId|string|Control Plane ID (obtainable from list-control-planes tool)
offset|stringoptional|Offset token for pagination (from previous response)
size|integeroptional|Number of plugins to return
Tool: list_routes
List all routes associated with a control plane.
INPUT:
controlPlaneId: String - ID of the control plane
size: Number - Number of routes to return (1-1000, default: 100)
offset: String (optional) - Pagination offset token from previous response
stripPath: Boolean - Whether to strip the matched path prefix
preserveHost: Boolean - Whether to preserve the host header
serviceId: String - ID of the service this route forwards to
enabled: Boolean - Whether the route is enabled
metadata: Object - Creation and update timestamps
relatedTools: Array - List of related tools for further analysis
Parameters|Type|Description
-|-|-
controlPlaneId|string|Control Plane ID (obtainable from list-control-planes tool)
offset|stringoptional|Offset token for pagination (from previous response)
size|integeroptional|Number of routes to return
Tool: list_services
List all services associated with a control plane.
INPUT:
controlPlaneId: String - ID of the control plane
size: Number - Number of services to return (1-1000, default: 100)
offset: String (optional) - Pagination offset token from previous response
services: Array - List of services with details for each including:
serviceId: String - Unique identifier for the service
name: String - Display name of the service
host: String - Target host for the service
port: Number - Target port for the service
protocol: String - Protocol used (http, https, grpc, etc.)
path: String - Path prefix for the service
retries: Number - Number of retries on failure
connectTimeout: Number - Connection timeout in milliseconds
writeTimeout: Number - Write timeout in milliseconds
readTimeout: Number - Read timeout in milliseconds
tags: Array - Tags associated with the service
enabled: Boolean - Whether the service is enabled
metadata: Object - Creation and update timestamps
relatedTools: Array - List of related tools for further analysis
Parameters|Type|Description
-|-|-
controlPlaneId|string|Control Plane ID (obtainable from list-control-planes tool)
offset|stringoptional|Offset token for pagination (from previous response)
size|integeroptional|Number of services to return
Tool: query_api_requests
Query and analyze Kong API Gateway requests with customizable filters.
Before calling this it's necessary to have a controlPlaneID and a serviceID or routeID.
These can be obtained using the list-control-planes, list-services, and list-routes tools.
INPUT:
timeRange: String - Time range for data retrieval (15M, 1H, 6H, 12H, 24H, 7D)
statusCodes: Number[] (optional) - Filter by specific HTTP status codes
excludeStatusCodes: Number[] (optional) - Exclude specific HTTP status codes
consumerIds: String[] (optional) - Filter by consumer IDs
serviceIds: String[] (optional) - Filter by service IDs. The format of this field must be ":".
routeIds: String[] (optional) - Filter by route IDs. The format of this field must be "controlPlaneID:routeID"
maxResults: Number - Maximum number of results to return (1-1000)
OUTPUT:
metadata: Object - Contains totalRequests, timeRange, and applied filters
requests: Array - List of request objects with details including:
requestId: String - Unique request identifier
timestamp: String - When the request occurred
httpMethod: String - HTTP method used (GET, POST, etc.)
uri: String - Request URI path
statusCode: Number - HTTP status code of the response
consumerId: String - ID of the consumer making the request
serviceId: String - ID of the service handling the request
routeId: String - ID of the matched route
latency: Object - Response time metrics
clientIp: String - IP address of the client
and many more detailed fields...
Parameters|Type|Description
-|-|-
consumerIds|arrayoptional|Filter by consumer IDs
excludeStatusCodes|arrayoptional|Exclude specific HTTP status codes (e.g. [400, 401, 500])
httpMethods|arrayoptional|Filter by HTTP methods (e.g. ['GET', 'POST', 'DELETE'])
maxResults|integeroptional|Number of items to return per page
routeIds|arrayoptional|Filter by route IDs (from list-routes tool)
serviceIds|arrayoptional|Filter by service IDs
statusCodes|arrayoptional|Filter by specific HTTP status codes (e.g. [200, 201, 404])
timeRange|stringoptional|Time range for data retrieval (15M = 15 minutes, 1H = 1 hour, etc.)