Higress OPS MCP サーバー
Higressの包括的な設定と管理を可能にするモデルコンテキストプロトコル(MCP)サーバー実装。このリポジトリは、 LangGraphおよびLangChain MCP アダプター上に構築された MCP クライアントも提供し、適切に設計されたエージェントフローアーキテクチャを通じて Higress MCP サーバーとのやり取りを容易にします。
デモ
https://github.com/user-attachments/assets/bae66b77-a158-452e-9196-98060bac0df7
Related MCP server: MCP-Server-TESS
環境変数の設定
.env.exampleファイルを.envにコピーし、対応する値を入力します。
MCPクライアントとMCPサーバーを起動する
stdioモードでは、MCPサーバープロセスはMCPクライアントプログラムによって起動されます。MCPクライアントとMCPサーバーを起動するには、以下のコマンドを実行します。
新しいツールを追加する
ステップ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]:
"""
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に新しいメソッドを追加します。
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: 人間による確認が必要な場合は、ツールを
# 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
]