Linkerd2 MCP について
Linkerd2 MCPは、開発中のLinkerdサービスメッシュ向けサーバーです。Linkerd環境を管理する運用担当者向けに、集約メッシュデータの取得と認可ポリシーの更新を提供します。
主な機能
- 01集約されたメッシュデータの取得
- 02メッシュグラフの取得
- 03認可ポリシーの更新
- 04gRPC API
活用シーン
- 01Linkerdメッシュ状態の確認
- 02集約メッシュグラフの取得
- 03認可ポリシー変更の適用
MCP 対応
Linkerd2 MCPは、メッシュの調査とポリシー変更を行うgRPC MCP APIを提供します。LinkerdとLinkerd-vizを基盤としています。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
Linkerd2 MCP
⚠️ このプロジェクトは現在開発中(WIP)で、活発に開発が進められています。機能や API はいつでも変更される可能性があります。
ℹ️ このプロジェクトの大部分は、AI エージェントの支援を受けて構築されました。
このプロジェクトは、Linkerd2 サービスメッシュと「対話」できるようにする MCP サーバーの公開を目指しています。Linkerd と Linkerd-viz の上に構築することで、メッシュの高レベルな集約データを取得する API と、認可ポリシーの更新の適用など、メッシュに直接変更を加える API を提供します。
Linkerd を利用したサービスメッシュ向けの、軽量でフォールトトレラントなコントロールプレーンです。メッシュのインスペクションと安全なポリシー変更を行うための gRPC MCP API を公開します。
プロジェクト構成
cmd/
mcp-server/ → main.go (MCP API server)
collector/ → main.go (Collector)
proto/ → *.proto + buf.yaml (gRPC contracts)
internal/
graph/ → in-memory mesh model
redis/ → Redis helpers (snapshot, delta, election)
docs/ → project docs
helm/ → chart/
Makefile → convenience commands
はじめに
前提条件
- Go 1.22+
- Docker または Podman
- kubectl 1.30+
- kind(ローカル k8s 用)
- Linkerd CLI 2.15+
- Prometheus(Linkerd viz に含まれています)
- Buf CLI 1.29+
- Helm 3.14+
ビルド
go build -o bin/collector ./cmd/collector
go build -o bin/mcp-server ./cmd/mcp-server
エンドツーエンドの実行(ローカル kind クラスター)
-
kind クラスターを起動し、Linkerd と Prometheus をインストールします:
kind create cluster --name mcp-dev linkerd install | kubectl apply -f - linkerd viz install | kubectl apply -f - linkerd check -
Redis(Valkey)と MCP スタックをデプロイします(チャートについては helm/ を参照):
helm install mcp ./helm --namespace mcp --create-namespace --set redis.enabled=true -
MCP サーバーをポートフォワードし、gRPC API をテストします:
kubectl -n mcp port-forward svc/mcp 10900:10900 grpcurl -plaintext localhost:10900 mcp.v1.MeshContext/GetMeshGraph -
gRPC 経由でポリシー変更を適用します:
grpcurl -plaintext -d '{"namespace":"default","name":"allow-foo","json_spec":"{\"foo\": \"bar\"}"}' localhost:10900 mcp.v1.MeshContext/ApplyAuthorizationPolicy -
クラスター内の AuthorizationPolicy CR を確認します:
kubectl get authorizationpolicies.policy.linkerd.io -A
開発ワークフロー
proto/の proto コントラクトを編集し、buf lintを実行します- ビジネスロジックを
cmd/とinternal/に実装します - ローカルテストには
kindとhelmを使用します - 単体テストを実行します:
go test ./... - 現在のステータスと次のステップについては、docs/progress.md を参照してください
ロードマップ
- 統合テストとエラー処理
- Helm チャート、CI/CD、ドキュメント
- E2E テストとさらなる機能強化
ライセンス
Apache 2.0
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。