项目简介

本项目基于 Model Context Protocol (MCP) 实现,旨在将 BeePF 项目中与系统可观测性相关的接口暴露为标准的 MCP 工具。通过此工具,大型语言模型 (LLM) 客户端(如支持 MCP 的 AI 编辑器、Agent 平台等)能够通过结构化的请求调用这些接口,获取实时的系统数据、程序信息和性能指标,从而增强 LLM 理解和交互复杂系统的能力。

主要功能点

本项目提供了以下核心功能,均通过 MCP 工具的方式对外提供:

  • 获取系统拓扑信息 ('topo'): 提供当前系统的程序和网络拓扑概览。
  • 获取节点程序列表 ('prog'): 列出当前节点上运行的所有 eBPF 程序。
  • 获取特定节点程序详情 ('prog_detail'): 根据程序 ID 获取某个 eBPF 程序的详细信息(如类型、标签、关联的 Map 等)。需要提供程序 ID 参数。
  • 获取特定节点程序数据转储 ('prog_dump'): 获取某个 eBPF 程序的字节码转储(支持 xlated 或 jited 格式)。需要提供程序 ID 参数。
  • 获取节点性能指标数据 ('node_metrics'): 提供当前节点的关键性能指标,如 CPU 使用率、事件数等。

安装步骤

  1. 克隆项目仓库: 使用 Git 命令将项目代码下载到本地。

  2. 安装依赖: 进入项目目录,运行 Go Mod 命令下载所需的依赖库。

  3. 构建项目: 运行 Go Build 命令编译生成可执行文件。

具体的命令如下:

# 克隆项目
git clone https://github.com/cen-ngc5139/beepf-mcp.git
cd beepf-mcp

# 安装依赖
go mod tidy

# 构建项目
go build -o beepf-mcp .

服务器配置(供 MCP 客户端参考)

MCP 服务器通常通过 启动命令 (command)参数 (args) 的方式由 MCP 客户端(如 Cursor, MCPHost 等)启动和管理。

对于本项目,您可以配置客户端通过 StdIO 方式启动该服务器:

  • 服务器名称 (serverName): 例如 "BeePF MCP Server"
  • 启动命令 (command): 指向您构建生成的可执行文件路径,例如 './beepf-mcp'
  • 参数 (args): 本项目当前版本无需额外的启动参数。

配置示例(概念描述,非直接可粘贴的代码块,具体格式请参考您的 MCP 客户端文档):

  • 服务器的逻辑名称设置为 "BeePF MCP Server"。
  • 当客户端需要连接时,执行您在安装步骤中构建出的 './beepf-mcp' 可执行文件。

此外,本项目默认也启动了 SSE (Server-Sent Events) 服务,客户端也可以通过配置 URL 直接连接到运行中的服务器,例如 'http://192.168.200.200:8080/sse' (请将 IP 和端口替换为实际部署地址)。

基本使用方法

一旦 MCP 服务器在客户端配置并成功启动(或连接),您即可通过客户端提供的交互界面使用其暴露的功能。

例如,在支持 MCP 工具调用的 LLM 客户端中:

  1. 查找并选择 "BeePF MCP Server"。
  2. 浏览或搜索可用的工具列表(如 'topo', 'prog', 'node_metrics' 等)。
  3. 选择一个工具,根据提示输入必要的参数(如 'prog_detail' 需要 'progId')。
  4. 执行工具,LLM 客户端将显示工具返回的结果(如拓扑信息、程序列表或性能数据)。

这使得 LLM 能够直接获取实时的系统可观测性数据,用于分析、诊断或生成报告。

信息

分类

开发者工具