APISIX 模型上下文协议(APISIX-MCP)
APISIX-MCP 是一 个模型上下文协议(Model Context Protocol,MCP)服务器,可将 APISIX 操作作为工具公开给兼容 MCP 的 AI 客户端和 Agent。配置服务器后,客户端或 Agent 可以发现并调用这些工具,以检查或管理 APISIX 资源,并通过网关发送测试请求。
APISIX-MCP 通过 Admin API 执行资源操作,其网关请求工具则通过 APISIX 代理发送流量。
APISIX-MCP 不随 APISIX 一起提供。其源代码托管在 API7 GitHub 组织下,软件包发布在 npm 上。
如需比较 APISIX-MCP 与其他 APISIX 管理方式,请参阅管理方式。
安装和配置 APISIX-MCP
通过 npm 运行 APISIX-MCP 或从源代码构建,然后将服务器添加到 AI 客户端的 MCP 配置中。
通过 npm
将以下 MCP 服务器配置添加到 AI 客户端。根据你的环境更新 APISIX 服务器地址、端口、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"
}
}
}
}
从源代码构建
要从源代码安装,请先克隆 apisix-mcp 仓库:
git clone https://github.com/api7/apisix-mcp.git
cd apisix-mcp
安装依赖项并构建项目:
pnpm install
pnpm build
将以下 MCP 服务器配置添加到 AI 客户端。替换可执行文件路径,并根据你的环境更新 APISIX 连接设置:
{
"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 配置。
保存配置后,AI 客户端应启动 APISIX-MCP 并提供其工具。
可用的 MCP 工具
APISIX-MCP 将 APISIX 操作 作为 MCP 工具公开。AI 客户端或 Agent 可以根据你的指令选择和调用这些工具。运行中的服务器通过 MCP tools/list 请求公布的工具列表是权威依据。
常用工具
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 客户端可以调用 create_route 并报告生成的路由配置。响应措辞取决于 客户端。
你还可以从 AI 客户端向路由发送请求进行验证:
向该路由发送请求。
AI 客户端可以调用 send_request_to_gateway,并报告通过网关返回的响应状态、响应体和响应头。
有关更多示例,请参阅配置路由。