Skip to main content
Glama

Kong Konnect MCP Server

Official
by Kong
README.md8.04 kB
# Kong Konnect MCP Server ![Static Badge](https://img.shields.io/badge/Release-Tech%20Preview-FFA500?style=plastic) 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. https://github.com/user-attachments/assets/19c2f716-49b5-46c3-9457-65b3784e2111 ## Table of Contents - [Overview](#overview) - [Project Structure](#project-structure) - [Installation](#installation) - [Configuration](#configuration) - [Available Tools](#available-tools) - [Analytics Tools](#analytics-tools) - [Configuration Tools](#configuration-tools) - [Control Planes Tools](#control-planes-tools) - [Usage with Claude](#usage-with-claude) - [Example Workflows](#example-workflows) - [Development](#development) - [Troubleshooting](#troubleshooting) ## Overview This project provides a Model Context Protocol (MCP) server that enables AI assistants like Claude to interact with Kong Konnect's API Gateway. It offers a set of tools to query analytics data, inspect configuration details, and manage control planes through natural language conversation. Key features: - Query API request analytics with customizable filters - List and inspect gateway services, routes, consumers, and plugins - Manage control planes and control plane groups - Integration with Claude and other MCP-compatible AI assistants Konnect MCP is a **work in progress** and we will be adding additional functionality and improvements with each release. ## Project Structure ``` src/ ├── index.ts # Main entry point ├── api.ts # Kong API client ├── tools.ts # Tool definitions ├── parameters.ts # Zod schemas for tool parameters ├── prompts.ts # Detailed tool documentation ├── operations/ │ ├── analytics.ts # API request analytics operations │ ├── configuration.ts # Services, routes, consumers, plugins │ └── controlPlanes.ts # Control plane management └── types.ts # Common type definitions ``` ## Installation ### Prerequisites - Node.js 20 or higher - A Kong Konnect account with API access - A client with MCP capabilities (e.g. Claude Desktop, Cursor, etc...) ### Setup ```bash # Clone the repository git clone https://github.com/Kong/mcp-konnect.git cd mcp-konnect # Install dependencies npm install # Build the project npm run build ``` ## Configuration Set the following environment variables to configure the MCP server: ```bash # Required: Your Kong Konnect API key export KONNECT_ACCESS_TOKEN=kpat_api_key_here # Optional: The API region to use (defaults to US) # Possible values: US, EU, AU, ME, IN export KONNECT_REGION=us ``` ## Available Tools The server provides tools organized in three categories: ### Analytics Tools #### Query API Requests Query and analyze Kong API Gateway requests with customizable filters. ``` Inputs: - timeRange: Time range for data retrieval (15M, 1H, 6H, 12H, 24H, 7D) - statusCodes: Filter by specific HTTP status codes - excludeStatusCodes: Exclude specific HTTP status codes - httpMethods: Filter by HTTP methods - consumerIds: Filter by consumer IDs - serviceIds: Filter by service IDs - routeIds: Filter by route IDs - maxResults: Maximum number of results to return ``` #### Get Consumer Requests Analyze API requests made by a specific consumer. ``` Inputs: - consumerId: ID of the consumer to analyze - timeRange: Time range for data retrieval - successOnly: Show only successful (2xx) requests - failureOnly: Show only failed (non-2xx) requests - maxResults: Maximum number of results to return ``` ### Configuration Tools #### List Services List all services associated with a control plane. ``` Inputs: - controlPlaneId: ID of the control plane - size: Number of services to return - offset: Pagination offset token ``` #### List Routes List all routes associated with a control plane. ``` Inputs: - controlPlaneId: ID of the control plane - size: Number of routes to return - offset: Pagination offset token ``` #### List Consumers List all consumers associated with a control plane. ``` Inputs: - controlPlaneId: ID of the control plane - size: Number of consumers to return - offset: Pagination offset token ``` #### List Plugins List all plugins associated with a control plane. ``` Inputs: - controlPlaneId: ID of the control plane - size: Number of plugins to return - offset: Pagination offset token ``` ### Control Planes Tools #### List Control Planes List all control planes in your organization. ``` Inputs: - pageSize: Number of control planes per page - pageNumber: Page number to retrieve - filterName: Filter control planes by name - filterClusterType: Filter by cluster type - filterCloudGateway: Filter by cloud gateway capability - labels: Filter by labels - sort: Sort field and direction ``` #### Get Control Plane Get detailed information about a specific control plane. ``` Inputs: - controlPlaneId: ID of the control plane to retrieve ``` #### List Control Plane Group Memberships List all control planes that are members of a specific group. ``` Inputs: - groupId: Control plane group ID - pageSize: Number of members to return per page - pageAfter: Cursor for pagination ``` #### Check Control Plane Group Membership Check if a control plane is a member of any group. ``` Inputs: - controlPlaneId: Control plane ID to check ``` ## Usage with Claude To use this MCP server with Claude for Desktop: 1. Install [Claude for Desktop](https://claude.ai/download) 2. Create or edit the Claude Desktop configuration file: - MacOS: `~/Library/Application Support/Claude/claude_desktop_config.json` - Windows: `%APPDATA%\Claude\claude_desktop_config.json` 3. Add the following configuration: ```json { "mcpServers": { "kong-konnect": { "command": "node", "args": [ "/absolute/path/to/mcp-konnect/build/index.js" ], "env": { "KONNECT_ACCESS_TOKEN": "kpat_api_key_here", "KONNECT_REGION": "us" } } } } ``` 4. Restart Claude for Desktop 5. The Kong Konnect tools will now be available for Claude to use ## Example Workflows ### Analyzing API Traffic 1. First, list all control planes: ``` Please list all control planes in my Kong Konnect organization. ``` 2. Then, list services for a specific control plane: ``` List all services for control plane [CONTROL_PLANE_NAME/ID]. ``` 3. Query API requests for a specific service: ``` Show me all API requests for service [SERVICE_NAME/ID] in the last hour that had 5xx status codes. ``` ### Troubleshooting Consumer Issues 1. List consumers for a control plane: ``` List all consumers for control plane [CONTROL_PLANE_NAME/ID]. ``` 2. Analyze requests for a specific consumer: ``` Show me all requests made by consumer [CONSUMER_NAME/ID] in the last 24 hours. ``` 3. Check for common errors or patterns: ``` What are the most common errors experienced by this consumer? ``` ## Development ### Adding New Tools 1. Define the parameters in `parameters.ts` 2. Add documentation in `prompts.ts` 3. Create the operation logic in the appropriate file in `operations/` 4. Register the tool in `tools.ts` 5. Handle the tool execution in `index.ts` ## Troubleshooting ### Common Issues **Connection Errors** - Verify your API key is valid and has the necessary permissions - Check that the API region is correctly specified - Ensure your network can connect to the Kong Konnect API **Authentication Errors** - Regenerate your API key in the Kong Konnect portal - Check that environment variables are correctly set **Data Not Found** - Verify the IDs used in requests are correct - Check that the resources exist in the specified control plane - Ensure time ranges are valid for analytics queries ## Credits Built by Kong. Inspired by Stripe's [Agent Toolkit](https://github.com/stripe/agent-toolkit).

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/Kong/mcp-konnect'

If you have feedback or need assistance with the MCP directory API, please join our Discord server