返回市场
高渗运营MCP服务器

高渗运营MCP服务器

作者:higress-group22 星标更新:2025-03-29

项目介绍

Higress OPS MCP Server

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

演示

https://github.com/user-attachments/assets/bae66b77-a158-452e-9196-98060bac0df7

配置环境变量

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

启动MCP客户端和MCP服务器

在标准I/O模式下,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]:
            """
            您的工具描述。
            
            参数:
                arg1: arg1的描述
                arg2: arg2的描述

            返回值:
                返回值的描述
            
            异常:
                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方法的描述。
    
    参数:
        arg1: arg1的描述
        arg2: arg2的描述
        
    返回值:
        响应数据
        
    异常:
        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"  # 如果需要确认,请在这里添加您的工具名称
]