mcpField
L
Linkerd2 MCP

Linkerd2 MCP

本地服务
github.com/eli-nomasec云与基础设施272 周前更新

关于 Linkerd2 MCP

Linkerd2 MCP 是一个仍在开发中的服务,用于检查和修改 Linkerd 服务网格。它为管理 Linkerd 环境的运维人员提供聚合网格数据和授权策略更新能力。

主要功能

  1. 01访问聚合服务网格数据
  2. 02获取网格图
  3. 03更新授权策略
  4. 04gRPC API

适用场景

  1. 01检查 Linkerd 网格状态
  2. 02获取聚合网格图
  3. 03应用授权策略变更

MCP 相关

该项目通过 gRPC MCP API 提供 Linkerd 网格检查和策略修改能力,并基于 Linkerd 与 Linkerd-viz 构建。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

暂未收录安装方式

我们还没有获取到这个服务的安装包或远程地址,请按项目 README 中的说明安装。

代码仓库

工具

还没有获取到工具列表

本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。

详细介绍

Linkerd2 MCP

⚠️ 此项目仍在开发中(WIP),目前处于积极开发阶段。功能和 API 可能随时变更。

ℹ️ 此项目绝大部分内容是在 AI Agent 的帮助下构建的。

此项目旨在提供一个模型上下文协议(MCP)服务,让你能够与 Linkerd2 服务网格“对话”。通过构建在 Linkerd 和 Linkerd-viz 之上,它提供了一个 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 集群)
  1. 启动 kind 集群并安装 Linkerd 和 Prometheus:

    kind create cluster --name mcp-dev
    linkerd install | kubectl apply -f -
    linkerd viz install | kubectl apply -f -
    linkerd check
    
  2. 部署 Redis(Valkey)和 MCP 堆栈(图表见 helm/):

    helm install mcp ./helm --namespace mcp --create-namespace --set redis.enabled=true
    
  3. 转发 MCP 服务端口并测试 gRPC API:

    kubectl -n mcp port-forward svc/mcp 10900:10900
    grpcurl -plaintext localhost:10900 mcp.v1.MeshContext/GetMeshGraph
    
  4. 通过 gRPC 应用策略变更:

    grpcurl -plaintext -d '{"namespace":"default","name":"allow-foo","json_spec":"{\"foo\": \"bar\"}"}' localhost:10900 mcp.v1.MeshContext/ApplyAuthorizationPolicy
    
  5. 验证集群中的 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

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。