Higress OPS MCP 服务器是一个实现模型上下文协议(MCP)的服务器,可用于对 Higress 进行全面配置和管理。此仓库还提供了一个基于 LangGraph 和 LangChain MCP 适配器 构建的 MCP 客户端,通过一个设计良好的代理流程架构实现与 Higress MCP 服务器的交互。
将 .env.example 文件复制到 .env 并填写相应的值。
在标准输入输出模式下,MCP 服务器进程由 MCP 客户端程序启动。运行以下命令以启动 MCP 客户端和 MCP 服务器:
uv run client.py
步骤 1:创建一个新的工具类或扩展现有类
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]:
"""
你的工具描述。
Args:
arg1: arg1 的描述
arg2: arg2 的描述
Returns:
返回值的描述
Raises:
ValueError: 如果请求失败
"""
# 使用 self.higress_client 进行 API 调用的实现
return self.higress_client.your_api_method(arg1, arg2)
步骤 2:如果你的工具需要与 Higress 控制台 API 交互,则在 HigressClient 中添加新方法
def your_api_method(self, arg1: str, arg2: int) -> List[Dict]:
"""
此 API 方法的功能描述。
Args:
arg1: arg1 的描述
arg2: arg2 的描述
Returns:
响应数据
Raises:
ValueError: 如果请求失败
"""
path = "/v1/your/api/endpoint"
data = {"arg1": arg1, "arg2": arg2}
return self.put(path, data) # 或者 self.get(path) 或 self.post(path, data)
步骤 3:在服务器中注册你的工具类
tool_classes = [
CommonTools,
RequestBlockTools,
RouteTools,
ServiceSourceTools,
YourTools # 在这里添加你的工具类
]
步骤 4:如果你的工具需要人类确认,则将其添加到 SENSITIVE_TOOLS 中
# 定义需要人类确认的写操作
SENSITIVE_TOOLS = [
"add_route",
"add_service_source",
"update_route",
"update_request_block_plugin",
"update_service_source",
"your_tool_function" # 在这里添加你的工具函数
]
https://github.com/user-attachments/assets/bae66b77-a158-452e-9196-98060bac0df7