PhotonOS MCP服务器
用于通过VMware VIVa平台进行PhotonOS诊断和网络适配器认证调试的模型上下文协议(MCP)服务器。
特性
- 远程SSH执行:所有命令都通过SSH在远程PhotonOS系统上执行
- 只读操作:为了安全诊断,所有工具都是严格只读的
- 全面诊断:系统信息、服务、进程、日志、网络和存储
- 网络适配器焦点:专为调试网络适配器认证而设计
- PhotonOS优化:专为VMware的最小容器主机操作系统量身定制
安装
来自PyPI
pip install photon-mcp-server或者使用紫外线:
uv add photon-mcp-server来自GitHub
直接从存储库克隆和安装:
# Clone the repository
git clone https://github.com/anvanster/photon-mcp-server.git
cd photon-mcp-server
# Install with pip
pip install .
# Or install in development mode
pip install -e .紫外线:
# Clone and install
git clone https://github.com/anvanster/photon-mcp-server.git
cd photon-mcp-server
uv sync
# Run directly
uv run photon-mcp-server或者直接从GitHub安装,无需克隆:
pip install git+https://github.com/anvanster/photon-mcp-server.git配置
设置以下环境变量:
| 变量 | 必填 | 描述 |
|---|---|---|
PHOTON_MCP_HOST | 是 | 目标PhotonOS主机地址 |
PHOTON_MCP_USER | 否 | SSH用户名(默认值: root) |
PHOTON_MCP_SSH_CREDENTIAL | 无 | 用于密码验证的SSH密码 |
PHOTON_MCP_SSH_KEY_PATH | 否 | SSH私钥路径 |
PHOTON_MCP_KEY_PASSPHRASE | 否 | SSH密钥密码 |
PHOTON_MCP_SEARCH_FOR_SSH_KEY | 否 | 在~/.SSH中自动发现SSH密钥(默认值: false) |
PHOTON_MCP_VERIFY_HOST_KEYS | 否 | 验证SSH主机密钥(默认值: false) |
PHOTON_MCP_KNOWN_HOSTS_PATH | 否 | known_hosts文件的自定义路径 |
PHOTON_MCP_COMMAND_TIMEOUT | 否 | 命令超时(秒)(默认值: 30) |
PHOTON_MCP_ALLOWED_LOG_PATHS | 否 | 允许的日志文件路径的逗号分隔列表 |
PHOTON_MCP_LOG_DIR | 否 | 服务器日志目录 |
PHOTON_MCP_LOG_LEVEL | 否 | 日志详细程度:调试、信息、警告(默认值: INFO) |
PHOTON_MCP_LOG_RETENTION_DAYS | 无 | 保留日志文件的天数(默认值: 7) |
配置也可以通过以下方式设置 .env 项目目录中的文件。
用法
VS代码配置
添加到您的VS代码设置(~/.config/Code/User/settings.json 在Linux上, ~/Library/Application Support/Code/User/settings.json 在macOS上):
{
"mcp.servers": {
"photon-mcp-server": {
"command": "uv",
"args": [
"--directory",
"/path/to/photon-mcp-server",
"run",
"photon-mcp-server"
],
"env": {
"PHOTON_MCP_HOST": "your-photonos-host",
"PHOTON_MCP_USER": "root",
"PHOTON_MCP_SSH_KEY_PATH": "/home/user/.ssh/id_rsa",
"PHOTON_MCP_LOG_LEVEL": "INFO"
}
}
}
}或使用工作区设置(.vscode/settings.json):
{
"mcp.servers": {
"photon-mcp-server": {
"command": "uv",
"args": [
"--directory",
"${workspaceFolder}",
"run",
"photon-mcp-server"
],
"env": {
"PHOTON_MCP_HOST": "your-photonos-host",
"PHOTON_MCP_USER": "root",
"PHOTON_MCP_SSH_KEY_PATH": "${userHome}/.ssh/id_rsa"
}
}
}
}Claude桌面配置
添加到您的Claude桌面配置(~/.config/claude/claude_desktop_config.json):
{
"mcpServers": {
"photon-diagnostics": {
"command": "photon-mcp-server",
"env": {
"PHOTON_MCP_HOST": "your-photonos-host",
"PHOTON_MCP_USER": "root",
"PHOTON_MCP_SSH_KEY_PATH": "/path/to/your/ssh/key"
}
}
}
}如果使用uv从GitHub安装,请使用完整路径:
{
"mcpServers": {
"photon-diagnostics": {
"command": "/path/to/photon-mcp-server/.venv/bin/photon-mcp-server",
"env": {
"PHOTON_MCP_HOST": "your-photonos-host",
"PHOTON_MCP_USER": "root",
"PHOTON_MCP_SSH_KEY_PATH": "/path/to/your/ssh/key"
}
}
}
}可用工具
系统信息
get_system_information-操作系统、内核、主机名、正常运行时间get_cpu_information-CPU型号、内核、频率、负载get_memory_information-RAM和交换使用情况get_disk_usage-文件系统使用情况get_hardware_information-CPU架构、PCI/USB设备
服务(systemd)
list_services-列出所有systemd服务get_running_services-仅列出正在运行的服务get_service_status-详细的服务状态get_service_logs-服务的最近日记条目
网络
get_network_interfaces-接口信息和流量统计get_network_connections-活动连接get_listening_ports-监听服务和端口
过程
list_processes-按CPU使用率排序的所有正在运行的进程get_process_info-特定PID的详细信息
存储和文件
list_block_devices-阻止设备和装载信息list_directories-按大小/日期排序的目录列表list_files-带有大小/日期排序的文件列表read_file-读取文件内容
日志
get_journal_logs-带过滤的系统日志(单位、优先级、时间、传输)read_log_file-读取特定日志文件(必须位于允许的路径中)
VIVa测试发现
get_agent_status-当前VIVa代理执行状态和最近的活动list_test_sessions-在/results中列出所有测试会话UUIDlist_test_runs-列出会话中具有通过/失败状态的测试get_test_result-特定测试的详细结果,包括错误get_test_logs-检索测试日志(run.log、debug.log、内核、vm)
VIVa测试发现
VIVa工具可以发现和分析VMware VIVa网络适配器认证测试结果:
# Check current agent status
get_agent_status(host="172.101.102.92")
# List available test sessions
list_test_sessions(host="172.101.102.92")
# List tests in a session
list_test_runs(host="172.101.102.92", session_id="7497fcc0-1234-5678-90ab-cdef01234567")
# Get detailed test result
get_test_result(
host="172.101.102.92",
session_id="7497fcc0-1234-5678-90ab-cdef01234567",
test_name="iSER::Storage::Functional::Setup"
)
# Get test logs for debugging
get_test_logs(
host="172.101.102.92",
session_id="7497fcc0-1234-5678-90ab-cdef01234567",
test_name="iSER::Storage::Functional::Setup",
log_type="run", # or "debug", "kernel", "vm"
lines=200
)测试名称使用 :: 作为路径组件之间的分隔器(例如。, iSER::Storage::Functional::Setup).
发展
# Clone the repository
git clone https://github.com/anvanster/photon-mcp-server.git
cd photon-mcp-server
# Install with uv (recommended)
uv sync
# Or install with pip in development mode
pip install -e ".[dev]"
# Run tests
uv run pytest
# or
pytest
# Run linting
uv run ruff check src/ tests/
# or
ruff check src/ tests/
# Run type checking
uv run pyright src/
# or
pyright src/许可证
Apache许可证2.0
