返回市场
麦克佩康nect

麦克佩康nect

作者:Kong38 星标更新:2025-04-09

项目介绍

Kong Konnect MCP Server

静态徽章

这是一个用于与Kong Konnect API交互的模型上下文协议(MCP)服务器,允许AI助手查询和分析Kong网关配置、流量和分析数据。

https://github.com/user-attachments/assets/19c2f716-49b5-46c3-9457-65b3784e2111

目录

概述

该项目提供了一个模型上下文协议(MCP)服务器,使像Claude这样的AI助手能够与Kong Konnect的API网关进行交互。它提供了一组工具,通过自然语言对话来查询分析数据、检查配置细节和管理控制平面。

关键特性:

  • 使用可定制过滤器查询API请求分析
  • 列出并检查网关服务、路由、消费者和插件
  • 管理控制平面和控制平面组
  • 与Claude和其他兼容MCP的AI助手集成

Konnect MCP是一个正在进行的工作,我们将在每次发布中添加更多的功能和改进。

项目结构

src/
├── index.ts              # 主入口点
├── api.ts                # Kong API客户端
├── tools.ts              # 工具定义
├── parameters.ts         # 工具参数的Zod模式
├── prompts.ts            # 详细的工具文档
├── operations/
│   ├── analytics.ts      # API请求分析操作
│   ├── configuration.ts  # 服务、路由、消费者、插件
│   └── controlPlanes.ts  # 控制平面管理
└── types.ts              # 常用类型定义

安装

先决条件

  • Node.js 20或更高版本
  • 具有API访问权限的Kong Konnect账户
  • 具有MCP能力的客户端(例如Claude Desktop、Cursor等)

设置

# 克隆仓库
git clone https://github.com/Kong/mcp-konnect.git
cd mcp-konnect

# 安装依赖
npm install

# 构建项目
npm run build

配置

设置以下环境变量以配置MCP服务器:

# 必需:您的Kong Konnect API密钥
export KONNECT_ACCESS_TOKEN=kpat_api_key_here

# 可选:使用的API区域(默认为US)
# 可能值:US, EU, AU, ME, IN
export KONNECT_REGION=us

可用工具

服务器提供的工具分为三类:

分析工具

查询API请求

使用可定制过滤器查询和分析Kong API网关请求。

输入:
- timeRange: 数据检索的时间范围(15M, 1H, 6H, 12H, 24H, 7D)
- statusCodes: 根据特定HTTP状态码筛选
- excludeStatusCodes: 排除特定HTTP状态码
- httpMethods: 根据HTTP方法筛选
- consumerIds: 根据消费者ID筛选
- serviceIds: 根据服务ID筛选
- routeIds: 根据路由ID筛选
- maxResults: 返回的最大结果数

获取消费者请求

分析由特定消费者发起的API请求。

输入:
- consumerId: 要分析的消费者的ID
- timeRange: 数据检索的时间范围
- successOnly: 显示仅成功的(2xx)请求
- failureOnly: 显示仅失败的(非2xx)请求
- maxResults: 返回的最大结果数

配置工具

列出服务

列出与控制平面关联的所有服务。

输入:
- controlPlaneId: 控制平面的ID
- size: 要返回的服务数量
- offset: 分页偏移标记

列出路由

列出与控制平面关联的所有路由。

输入:
- controlPlaneId: 控制平面的ID
- size: 要返回的路由数量
- offset: 分页偏移标记

列出消费者

列出与控制平面关联的所有消费者。

输入:
- controlPlaneId: 控制平面的ID
- size: 要返回的消费者数量
- offset: 分页偏移标记

列出插件

列出与控制平面关联的所有插件。

输入:
- controlPlaneId: 控制平面的ID
- size: 要返回的插件数量
- offset: 分页偏移标记

控制平面工具

列出控制平面

列出组织中的所有控制平面。

输入:
- pageSize: 每页的控制平面数量
- pageNumber: 要检索的页面编号
- filterName: 根据名称筛选控制平面
- filterClusterType: 根据集群类型筛选
- filterCloudGateway: 根据云网关能力筛选
- labels: 根据标签筛选
- sort: 排序字段和方向

获取控制平面

获取特定控制平面的详细信息。

输入:
- controlPlaneId: 要检索的控制平面的ID

列出控制平面组成员

列出属于特定组的所有控制平面。

输入:
- groupId: 控制平面组的ID
- pageSize: 每页要返回的成员数量
- pageAfter: 分页游标

检查控制平面组成员资格

检查控制平面是否是任何组的成员。

输入:
- controlPlaneId: 要检查的控制平面的ID

与Claude的使用

要使用此MCP服务器与桌面版Claude:

  1. 安装Claude for Desktop

  2. 创建或编辑Claude Desktop配置文件:

    • MacOS: ~/Library/Application Support/Claude/claude_desktop_config.json
    • Windows: %APPDATA%\Claude\claude_desktop_config.json
  3. 添加以下配置:

{
  "mcpServers": {
    "kong-konnect": {
      "command": "node",
      "args": [
        "/绝对路径到/mcp-konnect/build/index.js"
      ],
      "env": {
        "KONNECT_ACCESS_TOKEN": "kpat_api_key_here",
        "KONNECT_REGION": "us"
      }
    }
  }
}
  1. 重启Claude for Desktop
  2. 现在Kong Konnect工具可供Claude使用

示例工作流程

分析API流量

  1. 首先,列出所有控制平面:

    请列出我Kong Konnect组织中的所有控制平面。
    
  2. 然后,列出特定控制平面的所有服务:

    列出控制平面[CONTROL_PLANE_NAME/ID]的所有服务。
    
  3. 查询特定服务在过去一小时内具有5xx状态码的所有API请求:

    显示过去一小时内具有5xx状态码的所有API请求。
    

故障排除消费者问题

  1. 列出控制平面的所有消费者:

    列出控制平面[CONTROL_PLANE_NAME/ID]的所有消费者。
    
  2. 分析特定消费者在过去24小时内的所有请求:

    显示消费者[CONSUMER_NAME/ID]在过去24小时内发起的所有请求。
    
  3. 检查常见的错误或模式:

    这个消费者遇到的最常见的错误是什么?
    

开发

添加新工具

  1. parameters.ts中定义参数
  2. prompts.ts中添加文档
  3. operations/中的适当文件中创建操作逻辑
  4. tools.ts中注册工具
  5. index.ts中处理工具执行

故障排除

常见问题

连接错误

  • 验证您的API密钥有效且具有必要的权限
  • 检查API区域是否正确指定
  • 确保您的网络可以连接到Kong Konnect API

认证错误

  • 在Kong Konnect门户中重新生成API密钥
  • 检查环境变量是否正确设置

未找到数据

  • 验证请求中使用的ID是否正确
  • 检查指定控制平面中是否存在资源
  • 确保分析查询的时间范围有效

致谢

由Kong构建。灵感来自Stripe的Agent Toolkit