XenServer MCP服务器草案
用于XenServer/XCP ng管理的模型上下文协议(MCP)服务器。该服务器使AI助手能够通过自然语言与XenServer基础设施进行交互。
特性
- 多集群支持:从单个服务器管理多个XenServer群集
- 全面的虚拟机管理:列出、控制、快照和监视虚拟机
- 主机管理:监视和管理XenServer主机
- 存储操作:列出和管理存储库和虚拟磁盘
- 网络管理:查看和管理网络配置
- 游泳池管理:获取池信息和统计数据
- 模板管理:列出并使用VM模板
安装
使用紫外线(推荐)
# Clone the repository
git clone https://github.com/acefei/xenserver-mcp.git
cd xenserver-mcp
# Install with uv
uv sync
# Or install in editable mode
uv pip install -e .使用uvx(无需安装)
# Run directly from the repository
uvx --from /path/to/xenserver-mcp xenserver-mcp配置
服务器从JSON文件加载配置。默认情况下,它会查找 config/clusters.json 在项目目录中。您可以使用指定自定义位置 XENSERVER_CONFIG 环境变量。
创建配置文件:
# Copy the example configuration
cp config/clusters.json.example config/clusters.json
# Edit with your credentials
nano config/clusters.json配置示例:
{
"production": {
"host": "xenserver1.example.com",
"username": "root",
"password": "your-secure-password"
},
"development": {
"host": "xenserver2.example.com",
"username": "root",
"password": "another-password"
}
}安全说明:确保此文件具有受限权限并且未提交到版本控制:
chmod 600 config/clusters.json用法
本地运行
# Run with default configuration (uses config/clusters.json)
xenserver-mcp
# Or run directly with uv
uv run xenserver-mcp
# Run with Python module
python -m xenserver_mcp.server
# Use custom config file via environment variable
XENSERVER_CONFIG=/path/to/custom/clusters.json xenserver-mcp与uvx一起使用(建议用于克劳德桌面/VS代码)
# Run from local repository (uses default config/clusters.json)
uvx --from /path/to/xenserver-mcp xenserver-mcp
# With custom config via environment variable
XENSERVER_CONFIG=/path/to/clusters.json uvx --from /path/to/xenserver-mcp xenserver-mcp与Claude Desktop一起使用
添加到您的Claude Desktop配置(~/Library/Application Support/Claude/claude_desktop_config.json 在macOS或 %APPDATA%\Claude\claude_desktop_config.json 在Windows上):
使用uvx(推荐):
{
"mcpServers": {
"xenserver": {
"command": "uvx",
"args": [
"--from",
"/home/feis/repos/xenserver-mcp",
"xenserver-mcp"
],
"env": {
"XENSERVER_CONFIG": "/path/to/your/config/clusters.json"
}
}
}
}故障排除
连接问题
如果您看到“未连接到任何群集”:
- 验证
config/clusters.json存在并且是有效的JSON - 检查群集凭据是否正确
- 确保XenServer主机可访问
- 验证防火墙是否允许HTTPS(443)连接
会话超时
服务器在会话超时时自动重新连接。如果持续存在:
- 检查XenServer日志以了解身份验证问题
- 验证用户帐户是否具有适当的权限
- 检查网络是否不稳定
权限错误
确保XenServer用户具有适当的权限:
- 池管理员角色用于全面管理
- 仅用于VM操作的VM管理员角色
- 监视的只读角色
安全注意事项
- 凭据存储:配置文件包含明文密码
- 使用受限文件权限(600) - 永不承诺 config/clusters.json 到版本控制 - 考虑对CI/CD使用环境变量 - 将config/目录保存在.gitignore中
- 网络安全:所有通信都通过HTTPS进行
- 在生产环境中验证SSL证书 - 使用VPN进行远程访问
- 审计日志:记录所有操作
- 定期审查日志 - 监控意外操作
贡献
欢迎投稿!拜托:
- 遵循现有的代码样式(ruff格式)
- 为新功能添加测试
- 更新文档
- 提交拉取请求
