nix-mcp调试工具包
 
Nix包装 主控程序 用于Android、浏览器和iOS的调试服务器。每个包都将上游MCP服务器与其本机依赖关系封装在一起,因此它可以在NixOS和启用Nix的系统上开箱即用。
这些服务器允许AI代理(Claude Code、Cursor等)截取屏幕截图、点击UI元素、读取可访问性树,并通过MCP协议与正在运行的应用程序进行交互。
快速开始
无需安装即可直接运行任何服务器:
# Browser debugging (Linux & macOS)
nix run github:mmmaxwwwell/nix-mcp-debugkit#mcp-browser
# Android debugging (Linux)
nix run github:mmmaxwwwell/nix-mcp-debugkit#mcp-android
# iOS debugging (macOS only)
nix run github:mmmaxwwwell/nix-mcp-debugkit#mcp-ios先决条件
| 目标 | 平台 | 要求 |
|---|---|---|
mcp-browser | Linux、macOS | 无(Chromium通过nixpkgs捆绑) |
mcp-android | Linux | KVM已启用,Android模拟器或通过ADB连接的设备 |
mcp-ios | 仅限macOS | Xcode xcrun simctl,启动iOS模拟器 |
薄片使用
作为薄片输入(单个包装)
{
inputs = {
nixpkgs.url = "github:NixOS/nixpkgs/nixpkgs-unstable";
mcp-debugkit.url = "github:mmmaxwwwell/nix-mcp-debugkit";
};
outputs = { nixpkgs, mcp-debugkit, ... }:
let
system = "x86_64-linux";
pkgs = nixpkgs.legacyPackages.${system};
in {
devShells.${system}.default = pkgs.mkShell {
packages = [
mcp-debugkit.packages.${system}.mcp-browser
mcp-debugkit.packages.${system}.mcp-android
];
};
};
}默认包(所有适用于平台的服务器)
# Includes mcp-android + mcp-browser on Linux
# Includes mcp-browser + mcp-ios on macOS
mcp-debugkit.packages.${system}.default叠加层
{
inputs.mcp-debugkit.url = "github:mmmaxwwwell/nix-mcp-debugkit";
outputs = { nixpkgs, mcp-debugkit, ... }:
let
pkgs = import nixpkgs {
system = "x86_64-linux";
overlays = [ mcp-debugkit.overlays.default ];
};
in {
# Now available as pkgs.mcp-android, pkgs.mcp-browser, etc.
devShells.x86_64-linux.default = pkgs.mkShell {
packages = [ pkgs.mcp-browser pkgs.mcp-android ];
};
};
}克劳德代码MCP配置
将这些添加到您的Claude Code MCP配置中(~/.claude/claude_desktop_config.json 或项目级别 .mcp.json):
浏览器
{
"mcpServers": {
"browser": {
"command": "nix",
"args": ["run", "github:mmmaxwwwell/nix-mcp-debugkit#mcp-browser"]
}
}
}安卓
{
"mcpServers": {
"android": {
"command": "nix",
"args": ["run", "github:mmmaxwwwell/nix-mcp-debugkit#mcp-android"]
}
}
}iOS
{
"mcpServers": {
"ios": {
"command": "nix",
"args": ["run", "github:mmmaxwwwell/nix-mcp-debugkit#mcp-ios"]
}
}
}飞行前检查(--check)
每台服务器支持 --check 启动前验证先决条件的标志。这对于代理以编程方式诊断问题非常有用。
mcp-browser --check # Verifies PLAYWRIGHT_BROWSERS_PATH and Chromium launch
mcp-android --check # Verifies adb on PATH and connected devices
mcp-ios --check # Verifies xcrun simctl and available simulators退出码 0 表示所有检查均已通过。非零表示缺少先决条件,可操作的补救提示打印到stdout。
故障排除
KVM不可用(Android)
Android模拟器需要KVM。如果您看到“KVM不可用”:
# Check KVM support
ls -la /dev/kvm
# On NixOS, ensure KVM is enabled:
# virtualisation.libvirtd.enable = true; (or boot.kernelModules = [ "kvm-intel" ] / "kvm-amd")未连接Android设备
# Start an emulator
emulator -avd -no-window
# Or connect a physical device and verify
adb devices浏览器版本不匹配
剧作家版本被固定为与nixpkgs相匹配 playwright-driver 浏览器二进制文件。如果您看到版本不匹配错误,请确保您使用的是Nix包装 mcp-browser (设置 PLAYWRIGHT_BROWSERS_PATH 自动)而不是全局安装的版本。
Xcode/iOS模拟器不可用
# Install Xcode CLI tools
xcode-select --install
# List available simulators
xcrun simctl list devices
# Boot a simulator
xcrun simctl boot "iPhone 15"Chromium无法启动
如果Chromium在启动时崩溃,请确保您的系统支持无头模式。Nix软件包运行Chromium --headless 默认情况下。在没有显示服务器的系统上,这应该可以在不进行额外配置的情况下工作。
贡献者CI设置
CI管道在GitHub Actions上运行,包括lint、build、E2E测试和安全扫描。
必需的GitHub机密
SNYK_TOKEN
- 注册地址: snyk.io (免费开源)
- 首选 账户设置 > API代币
- 复制令牌
- 添加为存储库机密: 设置 > 秘密与变量 > 行动 > 新存储库密钥 >姓名:
SNYK_TOKEN
SONAR_TOKEN
- 注册地址: sonarcloud.io (免费公开转载)
- 导入您的GitHub存储库
- 首选 我的账户 > 安全 > 生成令牌
- 复制令牌
- 添加为存储库机密: 设置 > 秘密与变量 > 行动 > 新存储库密钥 >姓名:
SONAR_TOKEN
可选秘密
GITLEAKS_LICENSE--使用Gitleaks操作的组织仓库需要。个人repo不需要。SEMGREP_APP_TOKEN--可选;启用Semgrep CI与Semgrep仪表板的集成。
贡献
- 分叉存储库
- 输入开发shell:
nix develop - 进行更改
- 运行棉绒检查:
nix develop --command statix check . && nix develop --command deadnix . && nix develop --command shellcheck --severity=warning tests/*.sh - 运行烟雾测试:
nix flake check - 运行本地安全扫描:
security-scan.sh - 打开拉取请求
