Token导航 LogoToken导航TokenDH.com
bpf MCP logo
运维云端stdio官方级别未说明来源级核验

bpf MCP

MCP Server

一个通过Model Context Protocol (MCP)服务器暴露Linux内核BPF功能的服务,提供对内核级BPF信息的结构化访问,包括跟踪点、内核函数、BTF类型数据和BPF程序/映射类型。

工具数

5

提示词数

0

GitHub Stars

0

资源数

0
Rust系统监控AI代理

安装说明

本站只整理中文说明和来源信息,不托管安装包,也不代用户安装。

作者 / 组织

Stringy

提供方

Stringy

最后核验

2026/5/17 20:20

运行时

Docker

快速接入

先看主来源和安装命令,再打开仓库或文档;下面只保留这个条目的关键接入事实。

命令预览

docker run --rm -i --privileged \

详细介绍

bpf mcp

A. 模型上下文协议(MCP) 该服务器向AI助手公开Linux内核BPF(Berkeley Packet Filter)功能。此服务器提供对内核级BPF信息的结构化访问,包括跟踪点、内核函数、BTF类型数据和BPF程序/映射类型。

特性

  • 内核跟踪点发现 -列出debugfs中的所有可用跟踪点
  • 内核函数枚举 -访问kprobe/kretprobe目标的kallsyms
  • BTF类型反思 -查询内核BTF数据以获取结构/联合/枚举定义
  • BPF参考数据 -BPF程序类型和映射类型的静态列表
  • 柔性运输 -支持stdio和HTTP传输
  • 集装箱准备就绪 -具有特权内核访问的Docker/Podman部署

MCP工具

list_tracepoints

列出所有可用的内核跟踪点 /sys/kernel/debug/tracing/events.

参数:

  • category (可选)-按类别名称筛选(子字符串匹配)
  • pattern (可选)-按跟踪点名称或类别筛选(子字符串匹配)
  • limit (可选)-返回的最大结果数(默认值:100)
  • offset (可选)-分页时要跳过的结果数

退货: 带有名称、类别和格式详细信息的跟踪点对象的JSON数组。

例子:

[
  {
    "name": "sched:sched_switch",
    "category": "sched",
    "format": "name: sched_switch\nID: 314\n..."
  }
]

list_kernel_functions

列出可用于kprobes/kretprobes的内核函数 /proc/kallsyms.

参数:

  • pattern (可选)-按函数名筛选(子字符串匹配)
  • limit (可选)-返回的最大结果数(默认值:100)
  • offset (可选)-分页时要跳过的结果数

退货: 包含名称、地址和模块的内核函数对象的JSON数组。

get_btf_types

在以下位置从内核检索BTF(BPF类型格式)类型信息 /sys/kernel/btf/vmlinux.

参数:

  • pattern (可选)-按类型名称筛选(子字符串匹配)
  • limit (可选)-返回的最大结果数(默认值:100)
  • offset (可选)-分页时要跳过的结果数

退货: BTF类型信息的JSON数组,包括结构、联合、枚举、typedef等。

例子:

[
  {
    "name": "file",
    "kind": "Struct",
    "size": 184,
    "members": ["f_lock", "f_mode", "f_op", "f_mapping", ...]
  }
]

list_bpf_program_types

列出所有支持的BPF程序类型及其说明。

退货: JSON对象将程序类型名称映射到描述(例如。, kprobe, tracepoint, xdp).

list_bpf_map_types

列出所有支持的BPF映射类型及其说明。

退货: JSON对象映射将类型名称映射到描述(例如。, hash, array, ringbuf).

需求

  • Linux x86_64 -目标平台
  • 内核功能:

- Debugs安装在 /sys/kernel/debug (用于追踪点) - 内核中的BTF支持(用于类型自检) - 可读的 /proc/kallsyms (用于内核函数)

  • 特权访问 -需要读取内核调试接口
  • Rust 2024版 -从源头进行建设

安装

从源代码构建

cargo build --release

二进制文件将在 target/release/bpf-mcp.

构建Docker镜像

make image
# or
docker build -t bpf-mcp -f Containerfile .

用法

标准传输(默认)

默认模式使用stdio进行MCP通信,适用于与MCP客户端直接集成:

cargo run

HTTP传输

构建与 http_service 在端口1337上启用HTTP传输的功能:

cargo build --features http_service
cargo run --features http_service

MCP服务器将在 http://localhost:1337/mcp.

Docker部署

使用所需的内核访问权限运行容器化服务器:

docker run --rm -i --privileged \
  -v /sys/kernel/debug:/sys/kernel/debug:ro \
  -v /proc:/proc:ro \
  bpf-mcp

或使用提供的MCP配置 .mcp.json:

{
  "mcpServers": {
    "bpf-mcp": {
      "command": "podman",
      "args": [
        "run", "--rm", "-i", "--privileged",
        "-v", "/sys/kernel/debug:/sys/kernel/debug:ro",
        "bpf-mcp"
      ]
    }
  }
}

发展

代码质量

# Run linter
cargo clippy

# Format code
cargo fmt

# Generate documentation
cargo doc

测试

单元测试:

cargo test

集成测试:

# Test stdio transport
./tests/test_server.sh

# Test Docker deployment
./tests/test_server_docker.sh

建筑

建立在 rmcp Rust MCP SDK包含以下关键组件:

  • src/main.rs -具有传输层设置的入口点(stdio/HTTP)
  • src/tools/mod.rs -MCP工具实现使用 #[tool]
  • 异步运行时 -Tokio用于并发操作
  • 传输层 -用于进程通信的标准,通过Axum的HTTP

依赖项

  • rmcp (0.8.5)-官方Rust MCP SDK
  • tokio (1.x)-异步运行时
  • btf-rs (1.1)-BTF解析库
  • libbpf-rs (0.24)-BPF库绑定
  • axum (0.8)-HTTP服务器框架
  • serde/serde_json -JSON序列化

用例

  • 人工智能辅助BPF开发 -发现BPF程序开发的可用跟踪点和内核函数
  • 内核探索 -通过BTF自省了解内核数据结构
  • BPF教育 -了解BPF程序类型、映射类型和内核接口
  • 安全性研究 -调查安全工具的内核接口
  • 系统可观测性 -识别内核中的监视和跟踪点

贡献

本项目使用Rust 2024版本。请确保:

  • 代码传递 cargo clippy 没有警告
  • 代码格式为 cargo fmt
  • 测试通过 cargo test
  • stdio和Docker部署的集成测试成功

许可证

有关详细信息,请参阅LICENSE文件。

目录标签

目录标签

Rust系统监控AI代理内核访问本地部署BPF工具安全研究AI辅助开发

接入字段

传输方式(transport,传输协议)

stdio

鉴权方式(authType,认证方式)

none

运行时(runtime,运行环境)

Docker

工具数量(toolCount,工具数)

5

资源数量(resourceCount,资源数)

0

提示词数量(promptCount,提示词数)

0

权限和风险

stdionone部署方式未说明

接入前请确认传输方式、认证方式和部署位置,并根据实际工具能力限制访问范围。

安装前确认

不要直接授予不必要的文件、网络或账号权限;先核对安装命令和配置内容。

来源信息

继续浏览同类 MCP