Kali驱动程序MCP服务器
MCP(模型上下文协议)服务器,用于从主机调试Kali Linux虚拟机中的网卡(NIC)驱动程序。
🏗️ 建筑
重要提示:此MCP服务器在HOST计算机上运行,而不是在Kali VM中运行。
┌─────────────────────────────────────┐
│ Host Machine (宿主机) │
│ │
│ Claude Desktop / MCP Client │
│ ↕ │
│ Kali Driver MCP Server ←──────┐ │
│ │ │ │
│ │ SSH │ │
│ ↓ │ │
│ Shared Folder ←──────────────┘ │
└──────────────┬──────────────────────┘
│
│ Network + Shared Folder
↓
┌─────────────────────────────────────┐
│ Kali Linux VM (虚拟机) │
│ │
│ SSH Server (root access) │
│ airmon-ng, airodump-ng │
│ Kernel driver build environment │
│ Shared Folder Mount Point │
└─────────────────────────────────────┘为什么是这种架构?
- MCP客户端(Claude Desktop)在主机上运行
- 代码编辑器/IDE在主机上工作得更好
- 驱动程序编译和加载发生在隔离的VM中
- 通过SSH进行远程控制提供了灵活性
🚀 快速开始
想在其他项目中使用这个 MCP 服务?
查看详细的客户端连接和使用指南:
- 📖 MCP 客户端使用指南 - 三种连接方式详解:
- ✅ Claude Desktop 集成(最简单) - ✅ Python 客户端(自动化脚本) - ✅ 其他 MCP 工具集成
- 💻 Python 客户端示例 - 可直接运行的完整示例代码
快速连接(Claude Desktop):
- 安装并配置本服务(见下方 安装)
- 编辑 Claude Desktop 配置:
{
"mcpServers": {
"kali-driver": {
"command": "uv",
"args": ["run", "python", "-m", "kali_driver_mcp.server"],
"cwd": "/path/to/kali-driver-mcp"
}
}
}- 重启 Claude Desktop,即可使用!
详细步骤请参考 MCP_CLIENT_GUIDE.md。
特性
此MCP服务器提供9个网络驱动程序开发和调试工具:
- kernel_info -检索内核版本和配置
- file_ops -列出/浏览VM共享文件夹中的文件
- code_sync -验证共享文件夹是否已装载且可访问
- 驾驶员堆 -使用make构建驱动程序
- driver_load -加载/卸载内核模块(insmod/rmmod)
- 日志查看器 -访问内核日志(dmesg)和系统日志
- 网络信息 -查询网络接口信息
- 网络监视器 -启动/停止无线监控模式(airmon ng)
- 包捕获 -捕获无线数据包(airodump ng)
建筑
- 异步/等待:使用asyncssh的高性能异步SSH操作
- 根SSH:直接root访问Kali VM(无需sudo)
- 共享文件夹:代码位于VM共享文件夹(VirtualBox/Vware/KVM)中
- Kali工具:使用airmon ng和airodump ng进行无线操作
先决条件
Kali虚拟机设置
- Kali虚拟机正在运行 具有网络访问权限
- 已启用根SSH 在
/etc/ssh/sshd_config:
PermitRootLogin yes
# or for key-only:
PermitRootLogin prohibit-password然后重新启动SSH: systemctl restart ssh
- SSH密钥认证 (推荐):
# On host machine
ssh-keygen -t ed25519 -f ~/.ssh/kali_vm
ssh-copy-id -i ~/.ssh/kali_vm.pub root@- 已装载共享文件夹 在VM中:
- 在VirtualBox/Vware/KVM设置中配置 - VirtualBox示例:共享文件夹→ 添加文件夹→ 自动安装 - 在VM中验证: mount | grep kali-share
- 已安装无线工具:
apt update && apt install aircrack-ng- 无线适配器 在VM中可用(USB直通或虚拟适配器)
主机设置
- Python 3.10+ 安装
- UV包管理器 安装:
curl -LsSf https://astral.sh/uv/install.sh | sh安装
Part 1: Setup on Host Machine (宿主机)
MCP服务器将在此处运行。
- 克隆仓库:
git clone
cd kali-driver-mcp- 安装UV(如果未安装):
curl -LsSf https://astral.sh/uv/install.sh | sh- 安装依赖项:
uv sync- 为VM访问生成SSH密钥:
ssh-keygen -t ed25519 -f ~/.ssh/kali_vm- 配置服务器:
cp config.yaml.example config.yaml
nano config.yaml # Edit with your VM details要配置的关键设置:
vm:
host: "192.168.56.101" # Your Kali VM IP
key_file: "~/.ssh/kali_vm"
shared_folder:
host_path: "/Users/your-username/kali-share/driver" # Host path
vm_path: "/mnt/kali-share/driver" # VM mount point
network:
wireless_interface: "wlan0" # Your wireless interface in VMPart 2: Setup on Kali VM (虚拟机)
这是编译和加载驱动程序的地方。
- 启用root SSH访问:
sudo nano /etc/ssh/sshd_config
# Add or modify: PermitRootLogin yes
sudo systemctl restart ssh- 从主机复制SSH密钥:
# Run this FROM THE HOST MACHINE:
ssh-copy-id -i ~/.ssh/kali_vm.pub root@- 安装无线工具:
sudo apt update
sudo apt install aircrack-ng build-essential linux-headers-$(uname -r)- 设置共享文件夹:
对于VirtualBox:
- 在VirtualBox中:设置→ 共享文件夹→ 添加文件夹 - 姓名: kali-share - 路径:您的主机文件夹(例如。, /Users/username/kali-share) - 自动安装:✓
然后在VM中:
sudo mkdir -p /mnt/kali-share
sudo mount -t vboxsf kali-share /mnt/kali-share
# Make persistent (add to /etc/fstab):
echo "kali-share /mnt/kali-share vboxsf defaults 0 0" | sudo tee -a /etc/fstab对于VMware:
sudo mkdir -p /mnt/kali-share
sudo mount -t vmhgfs .host:/kali-share /mnt/kali-share- 验证共享文件夹:
ls /mnt/kali-share
mount | grep kali-share- 创建驱动程序目录:
mkdir -p /mnt/kali-share/driver
# Put your driver source code here第3部分:测试设置
从主机:
- 测试SSH连接:
ssh -i ~/.ssh/kali_vm root@- 测试MCP服务器:
cd kali-driver-mcp
uv run python test_client.py- 如果成功,你应该看看:
=== Available Tools ===
kernel_info: Get kernel version...
...用法
运行MCP服务器
方法1:直接执行
uv run python -m kali_driver_mcp.server方法2:使用已安装的脚本
uv run kali-driver-mcp方法3:使用自定义配置
uv run python -m kali_driver_mcp.server --config /path/to/config.yaml与Claude Desktop一起使用
添加到Claude桌面配置(~/Library/Application Support/Claude/claude_desktop_config.json 在macOS上):
{
"mcpServers": {
"kali-driver": {
"command": "uv",
"args": [
"run",
"python",
"-m",
"kali_driver_mcp.server"
],
"cwd": "/path/to/kali-driver-mcp"
}
}
}测试服务器
运行附带的测试客户端:
uv run python test_client.py这将:
- 连接到MCP服务器
- 列出可用工具
- 执行示例工具调用
- 显示结果
工作流示例
- 检查内核版本:
Tool: kernel_info
Args: {"detail_level": "basic"}- 验证共享文件夹:
Tool: code_sync
Args: {}- 编译驱动程序:
Tool: driver_compile
Args: {"clean": true, "verbose": true}- 加载驱动程序:
Tool: driver_load
Args: {
"operation": "load",
"module_name": "mydriver",
"parameters": {"debug": "1"}
}- 查看内核日志:
Tool: log_viewer
Args: {
"source": "dmesg",
"lines": 50,
"filter_pattern": "mydriver"
}- 启动监控模式:
Tool: network_monitor
Args: {"operation": "start", "channel": 6}- 捕获数据包:
Tool: packet_capture
Args: {
"channel": 6,
"duration": 60,
"output_prefix": "test_capture"
}- 停止监控模式:
Tool: network_monitor
Args: {"operation": "stop"}配置参考
看 config.yaml.example 获取完整的配置模板。
关键部分:
- 虚拟机:VM连接详细信息(主机、端口、身份验证)
- 共享文件夹:共享文件夹路径
- 构建:编译设置
- 网络:无线接口名称和默认值
- 捕捉:数据包捕获设置
- 日志记录:日志查看默认值
发展
项目结构
kali-driver-mcp/
├── pyproject.toml # UV project configuration
├── config.yaml.example # Configuration template
├── CLAUDE.md # Development guide
├── TOOLS_REFERENCE.md # Detailed command reference
├── src/
│ └── kali_driver_mcp/
│ ├── server.py # MCP server entry point
│ ├── config.py # Configuration loading
│ ├── ssh_manager.py # SSH connection pool
│ └── tools/ # Tool implementations
└── test_client.py # Test client添加新工具
- 在中创建工具实现
src/kali_driver_mcp/tools/ - 导入
server.py - 在中添加工具定义
list_tools() - 在中添加处理程序
call_tool()
故障排除
SSH连接问题
# Test SSH connection manually
ssh -i ~/.ssh/kali_vm root@
# Check SSH key permissions
chmod 600 ~/.ssh/kali_vm共享文件夹未装载
# In VM, check mount
mount | grep kali-share
# VirtualBox: install Guest Additions
# VMware: install VMware Tools监视器模式问题
# In VM, check if airmon-ng is installed
which airmon-ng
# Check wireless interface
iw dev
# Kill interfering processes manually
airmon-ng check kill权限错误
确保您以root身份连接:
vm:
username: "root" # Must be root安全说明
- 永不承诺
config.yaml持有真实证件 - 使用SSH密钥身份验证而不是密码
- 仅在开发/测试环境中使用
- 为了方便起见,服务器禁用SSH主机密钥检查
许可证
\[您的许可证在这里\]
贡献
\[贡献指南\]
