关于 Higress OPS MCP Server
Higress OPS MCP Server 是用于配置和管理 Higress 的 MCP 服务实现。仓库还提供基于 LangGraph 与 LangChain MCP Adapters 构建的 MCP 客户端,通过 Agent 流程与该服务交互。面向需要通过 MCP 管理 Higress 的开发者。
主要功能
- 01通过 MCP 配置和管理 Higress
- 02路由、服务来源等工具分类注册
- 03敏感写操作需人工确认
- 04基于 LangGraph 的示例客户端
适用场景
- 01通过 MCP 客户端管理 Higress 路由与服务来源
- 02在 Agent 流程中调用 Higress 配置工具
- 03扩展新的 Higress 管理工具
MCP 相关
该项目是 MCP 服务,向 MCP 客户端提供 Higress 配置和管理的工具。同时附带一个基于 LangGraph 与 LangChain MCP Adapters 的 MCP 客户端示例。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
我们还没有获取到这个服务的安装包或远程地址,请按项目 README 中的说明安装。
工具
本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。
详细介绍
Higress OPS MCP 服务
一种 Model Context Protocol(MCP)服务实现,可用于全面配置和管理 Higress。此仓库还提供了一个基于 LangGraph 和 LangChain MCP Adapters 构建的 MCP 客户端,通过设计完善的 Agent 流程架构与 Higress MCP 服务交互。
演示
https://github.com/user-attachments/assets/bae66b77-a158-452e-9196-98060bac0df7
配置环境变量
将 .env.example 文件复制为 .env,并填写对应的值。
启动 MCP 客户端和 MCP 服务
在 stdio 模式下,MCP 服务进程由 MCP 客户端程序启动。运行以下命令以启动 MCP 客户端和 MCP 服务:
uv run client.py
添加新工具
步骤 1:创建新的工具类或扩展现有工具类
- 如果要添加全新的工具类别,请在 tools 目录中创建新文件
- 如果工具属于现有类别,请将其添加到对应的现有类中
from typing import Dict, List, Any
from fastmcp import FastMCP
class YourTools:
def register_tools(self, mcp: FastMCP):
@mcp.tool()
async def your_tool_function(arg1: str, arg2: int) -> List[Dict]:
"""
Your tool description.
Args:
arg1: Description of arg1
arg2: Description of arg2
Returns:
Description of the return value
Raises:
ValueError: If the request fails
"""
# Implementation using self.higress_client to make API calls
return self.higress_client.your_api_method(arg1, arg2)
步骤 2:如果工具需要与 Higress Console API 交互,请在 HigressClient 中添加新方法
- 在 utils/higress_client.py 中添加封装 API 调用的方法
- 使用现有的 HTTP 方法(get、put、post)进行实际的 API 通信
def your_api_method(self, arg1: str, arg2: int) -> List[Dict]:
"""
Description of what this API method does.
Args:
arg1: Description of arg1
arg2: Description of arg2
Returns:
Response data
Raises:
ValueError: If the request fails
"""
path = "/v1/your/api/endpoint"
data = {"arg1": arg1, "arg2": arg2}
return self.put(path, data) # or self.get(path) or self.post(path, data)
步骤 3:在服务中注册工具类
- 将工具类添加到 server.py 中的 tool_classes 列表
- ToolsRegister 使用此列表实例化并注册所有工具
- ToolsRegister 会自动设置 logger 和 higress_client 属性
tool_classes = [
CommonTools,
RequestBlockTools,
RouteTools,
ServiceSourceTools,
YourTools # Add your tool class here
]
步骤 4:如果工具需要人工确认,请将其添加到 SENSITIVE_TOOLS
- 执行此列表中的工具前,需要人工确认
# Define write operations that require human confirmation
SENSITIVE_TOOLS = [
"add_route",
"add_service_source",
"update_route",
"update_request_block_plugin",
"update_service_source",
"your_tool_function" # Add your tool name here if it requires confirmation
]
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。