> [!WARNING] > ## ⚠️ This Repository is Deprecated > > **This project is no longer actively maintained and will be archived as read-only.** > > No further updates, bug fixes, or new features will be made. Issues and pull requests are no longer monitored. > > If you're looking for Kong Konnect MCP support, please check the [Konnect remote MCP server](https://developer.konghq.com/konnect-platform/konnect-mcp/). --- # Kong Konnect MCP Server ![Static Badge](https://img.shields.io/badge/Status-Deprecated-red?style=plastic) ![Static Badge](https://img.shields.io/badge/Maintenance-None-lightgrey?style=plastic) > **Note:** This repository is deprecated and will soon be archived as read-only. See the notice above for details. 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. ## 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 > **⚠️ Deprecated:** This project is no longer maintained. The information below is preserved for reference only. 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 ## Project Structure ``` build/ # Committed compiled JavaScript output used by the release/distribution flow 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 > **Note:** As this project is deprecated, no support is provided for installation issues. ### 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 # Run the test suite (also rebuilds compiled output) npm test # Rebuild the committed build artifacts after changing src/ npm run build ``` The repository includes committed files under `build/` as part of its distribution model. If you modify files in `src/`, regenerate `build/` before committing or publishing changes. ## 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: Control plane ID - size: Number of services to return - offset: Pagination offset token ``` #### List Routes List all routes associated with a control plane. ``` Inputs: - controlPlaneId: Control plane ID - size: Number of routes to return - offset: Pagination offset token ``` #### List Consumers List all consumers associated with a control plane. ``` Inputs: - controlPlaneId: Control plane ID - size: Number of consumers to return - offset: Pagination offset token ``` #### List Plugins List all plugins associated with a control plane. ``` Inputs: - controlPlaneId: Control plane ID - size: Number of plugins to return - offset: Pagination offset token - includeRawConfig: Set to true to include raw plugin configuration values (defaults to false) ``` ### 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: Control plane ID 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 > **Note:** This configuration is provided for historical reference. No support is available for setup issues. 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_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_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 > **⚠️ This project is no longer accepting contributions.** The repository will be archived as read-only. Pull requests and issues will not be reviewed or merged. Historical development notes: - `npm test` runs the TypeScript build and the repository test suite. - `build/` is a committed generated artifact in this repository and should be regenerated with `npm run build` after changes to `src/`. ## Troubleshooting > **Note:** No support is provided for this deprecated project. The information below is preserved for reference only. ### 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. Originally inspired by Stripe's [Agent Toolkit](https://github.com/stripe/agent-toolkit).