使用说明
Konnect MCP服务器
用于与Konnect API交互的模型上下文协议(MCP)服务器。该服务器允许像Claude这样的AI工具通过结构化函数调用与Konnect服务进行交互。
概述
Konnect MCP服务器实现了模型上下文协议,为AI助手和Konnect API之间提供了桥梁。它使AI助手能够:
- 列出并管理控制平面
- 列出、创建、更新和删除服务
- 列出、创建、更新和删除路线
- 搜索Konnect实体
- 列出可用的搜索类型
先决条件
- Node.js(v18或更高版本)
- Konnect帐户
- 具有适当权限的Konnect API令牌
安装
克隆存储库并安装依赖项:
git clone https://github.com/your-username/konnect-mcp-server.git
cd konnect-mcp-server
npm install
建筑
要构建项目,请执行以下操作:
npm run build
这将编译TypeScript代码并在 dist 目录。
用法
要启动MCP服务器,请执行以下操作:
npm start
或者,您可以直接提供您的Konnect API令牌:
npm start -- --token=your_konnect_api_token
或者,您可以设置 KONNECT_TOKEN 环境变量:
export KONNECT_TOKEN=your_konnect_api_token
npm start
可用工具
服务器向AI助手公开以下功能,按类别组织:
核心工具
ListControlPlans
列出Konnect帐户中的控制平面。
参数:
region(可选):Konnect地区(美国、欧盟、澳大利亚、加拿大、美国)。默认值:“我们”pageSize(可选):每页的最大项目数。默认值:10pageNumber(可选):要检索的页码。默认值:1
搜索连接
使用查询字符串在Konnect中搜索实体。
参数:
q(必填):定义搜索条件的查询(例如。,name:"API Gateway")region(可选):Konnect地区(美国、欧盟、澳大利亚、加拿大、美国)。默认值:“我们”pageSize(可选):每页的最大项目数。默认值:10pageAfter(可选):用于分页以请求下一页的标记
列表搜索类型
列出Konnect中所有可搜索的实体类型。
参数:
region(可选):Konnect地区(美国、欧盟、澳大利亚、加拿大、美国)。默认值:“我们”
维修工具
列表服务
列出特定控制平面中的服务。
参数:
controlPlaneId(必填):控制平面的IDregion(可选):Konnect地区(美国、欧盟、澳大利亚、加拿大、美国)。默认值:“我们”pageSize(可选):每页的最大项目数。默认值:10pageNumber(可选):要检索的页码。默认值:1tags(可选):用于筛选服务的标签。AND使用逗号(,),OR使用正斜杠(/)
创建服务
在控制平面中创建新服务。
参数:
controlPlaneId(必填):控制平面的IDservice(必填):服务配置对象name(可选):服务的名称protocol(可选):要使用的协议(http、https、grpc等)host(必填):上游服务器的主机port(可选):上游服务器的端口- 以及其他服务配置选项
GetService
获取特定服务的详细信息。
参数:
controlPlaneId(必填):控制平面的IDserviceId(必填):服务的ID或名称
更新服务
更新现有服务。
参数:
controlPlaneId(必填):控制平面的IDserviceId(必填):服务的ID或名称service(必需):更新了服务配置
删除服务
删除服务。
参数:
controlPlaneId(必填):控制平面的IDserviceId(必填):服务的ID或名称
路线工具
列表路线
列出特定控制平面中的路线。
参数:
controlPlaneId(必填):控制平面的IDregion(可选):Konnect地区(美国、欧盟、澳大利亚、加拿大、美国)。默认值:“我们”pageSize(可选):每页的最大项目数。默认值:10pageOffset(可选):分页偏移量tags(可选):用于筛选路由的标签。AND使用逗号(,),OR使用正斜杠(/)
创建路线
在控制平面中创建新管线。
参数:
controlPlaneId(必填):控制平面的IDroute(必填):路由配置对象name(可选):路线名称protocols(可选):此路由应匹配的协议数组methods(可选):此路由应匹配的HTTP方法数组hosts(可选):此路由应匹配的域名数组paths(可选):此路由应匹配的路径数组- 以及其他路由配置选项
GetRoute
获取特定路线的详细信息。
参数:
controlPlaneId(必填):控制平面的IDrouteId(必填):路线的ID或名称
更新路线
更新现有路线。
参数:
controlPlaneId(必填):控制平面的IDrouteId(必填):路线的ID或名称route(必填):更新了路线配置
删除路线
删除路线。
参数:
controlPlaneId(必填):控制平面的IDrouteId(必填):路线的ID或名称
发展
项目结构
该项目按功能分为模块:
src/
├── core/ # Core functionality (control planes, search)
│ ├── functions.ts
│ ├── parameters.ts
│ ├── prompts.ts
│ └── index.ts
├── services/ # Service-related functionality
│ ├── functions.ts
│ ├── parameters.ts
│ ├── prompts.ts
│ └── index.ts
├── routes/ # Route-related functionality
│ ├── functions.ts
│ ├── parameters.ts
│ ├── prompts.ts
│ └── index.ts
├── shared/ # Shared utilities
│ └── api.ts
├── index.ts # Application entry point
├── server.ts # MCP server implementation
└── tools.ts # Tool registration and configuration
测试
组织测试以匹配项目结构:
src/test/
├── core/ # Tests for core functionality
├── services/ # Tests for service-related functionality
├── routes/ # Tests for route-related functionality
├── shared/ # Tests for shared utilities
└── server.test.ts # Tests for the MCP server
可用脚本
npm run build:编译TypeScript代码npm run start:启动服务器npm run clean:删除dist目录npm run lint:抓取代码库npm run test:运行测试npm run test:watch:在监视模式下运行测试npm run prettier:格式化代码npm run prettier-check:检查代码是否已格式化
搜索查询示例
您可以使用 SearchKonnect 具有各种查询格式的工具:
- 按名称搜索:
name:"API Gateway" - 按类型搜索:
type:user - 按属性搜索:
attributes.email:*@example.com - 组合搜索:
type:team AND labels.env:prod
许可证
此项目根据MIT许可证获得许可-有关详细信息,请参阅许可证文件。
贡献
欢迎投稿!请随时提交拉取请求。
