Higress OPS MCP Server について
Higress OPS MCP Server は、Higress の設定と管理を行う MCP サーバーの実装です。LangGraph と LangChain MCP Adapters で構築された MCP クライアントも含まれ、エージェントフローを通じてサーバーと対話できます。MCP 経由で Higress を管理する開発者を対象としています。
主な機能
- 01MCP による Higress の設定と管理
- 02ルートやサービスソースなどのツールクラス
- 03機密性の高い書き込み操作での人による確認
- 04LangGraph で構築されたクライアント例
活用シーン
- 01MCP クライアントからの Higress ルートとサービスソースの管理
- 02エージェントフローでの Higress 設定ツールの呼び出し
- 03新しい Higress 管理ツールによるサーバーの拡張
MCP 対応
本プロジェクトは、Higress の設定と管理のツールを MCP クライアントに提供する MCP サーバーです。LangGraph と LangChain MCP Adapters による MCP クライアントの例も含みます。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
Higress OPS MCP サーバー
Higress の包括的な設定と管理を可能にする、Model Context Protocol(MCP)サーバーの実装です。このリポジトリには、LangGraph と LangChain MCP Adapters をベースに構築された MCP クライアントも含まれており、適切に設計されたエージェントフローアーキテクチャを通じて Higress MCP サーバーとのやり取りを可能にします。
デモ
https://github.com/user-attachments/assets/bae66b77-a158-452e-9196-98060bac0df7
環境変数の設定
.env.example ファイルを .env にコピーし、対応する値を入力します。
MCP クライアントと MCP サーバーの起動
stdio モードでは、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]:
"""
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:人間による確認が必要な場合は、ツールを SENSITIVE_TOOLS に追加します
- このリストに含まれるツールを実行する前に、人間による確認が必要になります
# 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
]
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。