APISIX 模型上下文协议(APISIX-MCP)
APISIX-MCP 是一个模型上下文协议(MCP)服务器,旨在连接大语言模型(LLM)和 APISIX Admin API。通过此集成,你可以使用兼容 MCP 的 AI 客户端进行自然语言交互,以管理和查看 APISIX 中的资源,而不受 APISIX 部署方式的影响。
通过利用 APISIX-MCP,用户可以执行诸如创建、检索、更新、删除资源以及发送请求等操作。这种方法通过允 许对话式命令来处理传统上需要手动配置的任务,从而简化了 API 管理。
APISIX-MCP 是开源的,可在 npm 和 GitHub 上找到。它可以配置为通过任何兼容 MCP 的 AI 客户端(如 Claude Desktop、Cursor 或 VS Code 中的 Cline 扩展)使用。
安装和配置 APISIX-MCP
以下是不同的安装方式。
npm
如果你通过 npm 安装,请使用以下详细信息配置 MCP 服务器,并在 AI 客户端中根据你的环境更新 APISIX 服务器地址、端口、Admin API 端口、前缀和身份认证密钥:
{
"mcpServers": {
"apisix-mcp": {
"command": "npx",
"args": ["-y","apisix-mcp"],
"env": {
"APISIX_SERVER_HOST": "http://127.0.0.1",
"APISIX_SERVER_PORT": "9080",
"APISIX_ADMIN_API_PORT": "9180",
"APISIX_ADMIN_API_PREFIX": "/apisix/admin",
"APISIX_ADMIN_KEY": "edd1c9f034335f136f87ad84b625c8f1"
}
}
}
}
Smithery
要为 Claude Desktop 安装 APISIX-MCP,请运行:
npx -y @smithery/cli install @api7/apisix-mcp --client claude
源代码
要从源代码安 装,首先克隆 apisix-mcp 仓库:
git clone https://github.com/api7/apisix-mcp.git
cd apisix-mcp
安装依赖项并构建项目:
pnpm install
pnpm build
最后,使用以下详细信息配置 MCP 服务器,并在 AI 客户端中根据你的环境更新 APISIX 服务器地址、端口、Admin API 端口、前缀和身份认证密钥:
{
"mcpServers": {
"apisix-mcp": {
"command": "node",
"args": [
"/absolute/path/to/apisix-mcp/dist/index.js"
],
"env": {
"APISIX_SERVER_HOST": "http://127.0.0.1",
"APISIX_SERVER_PORT": "9080",
"APISIX_ADMIN_API_PORT": "9180",
"APISIX_ADMIN_API_PREFIX": "/apisix/admin",
"APISIX_ADMIN_KEY": "edd1c9f034335f136f87ad84b625c8f1"
}
}
}
}
上面的 APISIX_SERVER_HOST、APISIX_SERVER_PORT、APISIX_ADMIN_API_PORT、APISIX_ADMIN_API_PREFIX 和 APISIX_ADMIN_KEY 配置为其默认值。如果你的 APISIX 安装使用这些默认值,你可以选择省略 env 配置。
保存配置后,你应该会看到 MCP 服务器已成功安装在你的 AI 客户端中。
支持的操作
APISIX-MCP 支持以下操作。当你将 AI 客户端与 APISIX-MCP 一起使用时,你的自然语言输入将被转换为这些操作。
常见操作
get_resource:按类型检索资源,例如路由、服务和上游。delete_resource:按 ID 删除资源。send_request_to_gateway:向网关发送请求。
API 资源操作
create_route/update_route:管理路由。create_service/update_service:管理服务。create_upstream/update_upstream:管理上游。create_or_update_proto:管理 protobuf 定义。create_or_update_stream_route:管理流路由。
插件操作
get_all_plugin_names:获取所有可用的插件名称。get_plugin_schema:按插件名称或类型检索插件 Schema。create_plugin_config/update_plugin_config:管理插件配置。create_global_rule/update_global_rule:管理全局插件。get_plugin_metadata/create_or_update_plugin_metadata/delete_plugin_metadata:管理插件元数据。
安全配置
get_secret_by_id/create_secret/update_secret/delete_secret:管理密钥。create_or_update_consumer:管理消费者。get_credential/create_or_update_credential/delete_credential:管理消费者凭证。create_consumer_group/update_consumer_group:管理消费者组。create_ssl/update_ssl:管理 SSL 证书。
示例
要创建路由,你可以在 AI 客户端中输入此提示:
创建一个名为 httpbin-get-route 的路由,路由 URI 为 /get,上游为 https://httpbin.org,并将请求限制为每 30 秒 2 个。配置完成后打印路由详情。
你应该看到路由已由你的 AI 客户端成功创建:
已成功创建路由“httpbin-get-route”,配置如下:
URI: /get
上游:https://httpbin.org(roundrobin 负载均衡)
限流:每个 IP 地址每 30 秒 2 个请求
路由 ID:httpbin-get-route
状态:已启用(1)
该路由现在可以接收发往 /get 路径的请求。请求将转发 到 httpbin.org,并应用限流。
你还可以从 AI 客户端向路由发送请求进行验证:
向该路由发送请求。
你应该在 AI 客户端中看到类似以下的响应:
已成功测试路由“httpbin-get-route”:
已收到来自 httpbin.org 的 HTTP 200 响应
限流响应头如下:
限制:每 30 秒 2 个请求(x-ratelimit-limit: 2)
剩余:可用 1 个请求(x-ratelimit-remaining: 1)
重置时间:30 秒后(x-ratelimit-reset: 30)
路由配置正 确,正在将请求转发到 httpbin.org
限流插件按预期工作
有关更多示例,请遵循 快速入门教程。