Back to MCP directory
publicPublicdnsLocal runtime

higress-ops-mcp-server

Higress OPS MCP Server是一个基于Model Context Protocol(MCP)的服务实现,用于配置和管理Higress网关。该项目还提供了一个基于LangGraph和LangChain MCP Adapters的MCP客户端,通过代理流架构与Higress MCP Server交互。

article

README

🚀 Higress OPS MCP 服务器

Higress OPS MCP 服务器是一个实现模型上下文协议(MCP)的服务器,可用于对 Higress 进行全面配置和管理。此仓库还提供了一个基于 LangGraphLangChain MCP 适配器 构建的 MCP 客户端,通过一个设计良好的代理流程架构实现与 Higress MCP 服务器的交互。

🚀 快速开始

配置环境变量

.env.example 文件复制到 .env 并填写相应的值。

启动 MCP 客户端和 MCP 服务器

在标准输入输出模式下,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]:
            """
            你的工具描述。
            
            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 中添加新方法

  • 将方法添加到 utils/higress_client.py,以封装 API 调用
  • 使用现有的 HTTP 方法(get、put、post)进行实际的 API 通信
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:在服务器中注册你的工具类

  • 将你的工具类添加到 server.py 中的 tool_classes 列表
  • 此列表用于 ToolsRegister 来实例化并注册所有工具
  • ToolsRegister 会自动设置 logger 和 higress_client 属性
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

help

Runtime guide

cloud

Hosted runtime

Hosted servers run from a provider-managed environment. You usually connect the MCP client to the hosted endpoint or follow the provider's authorization flow, without keeping a local process alive

  1. Open provider connection page
  2. Authorize or copy endpoint
  3. Connect from your MCP client
terminal

Local runtime / other methods

Local servers run on your own machine or infrastructure. You normally copy the server_config into your MCP client, install the required package, and provide env variables from env_schema when needed

  1. Copy server_config
  2. Install required package
  3. Fill env variables and restart client