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サーバーを起動するには、以下のコマンドを実行します。
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]:
"""
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に新しいメソッドを追加します。
API呼び出しをカプセル化するメソッドをutils/higress_client.pyに追加する
実際のAPI通信には既存のHTTPメソッド(get、put、post)を使用する
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
]This server cannot be installed
Resources
Looking for Admin?
Admins can modify the Dockerfile, update the server description, and track usage metrics. If you are the server author, to access the admin panel.