README
🚀 MCP Nutanix中国区开源项目介绍
本项目是中国区实验性质的开源项目,旨在探索Model Context Protocol框架在Go语言中的应用能力。它能让大语言模型(LLMs)与Nutanix Prism Central交互,实现资源的列出和详细信息获取等功能。
⚠️ 注意事项
⚠️ 重要提示
此项目为中国区实验性质的开源项目,具有以下特点:
- 非官方产品:不是Nutanix公司的官方产品或工具。
- 无支持保证:未得到Nutanix的支持、认可或维护。
- 不适合生产环境:不适合用于正式的生产场景。
- 按现状提供:没有任何担保或保证。
风险自担:作者不对使用此代码可能产生的任何问题、损害或故障负责。
✨ 主要特性
此MCP服务器允许大语言模型(LLMs)通过与Nutanix Prism Central的交互实现以下功能:
- 使用用户凭证连接到Prism Central实例。
- 列出各种资源(虚拟机、集群、主机等)。
- 通过基于URI的访问获取特定资源的详细信息。
该实现使用了Prism Go客户端与Prism Central通信,并使用MCP Go库实现了Model Context Protocol。
🚀 快速开始
📦 安装指南
先决条件
- Go语言版本1.23或更高。
- 访问Nutanix Prism Central实例的权限。
- 建议使用
make和go fmt等工具进行构建。
构建项目
# 克隆仓库
git clone https://github.com/thunderboltsid/mcp-nutanix.git
cd mcp-nutanix
# 构建MCP服务器
make build
运行服务器
./bin/mcp-nutanix
运行后,系统将提示输入Prism Central的凭证信息。
💻 使用示例
基础用法
一旦MCP服务器连接到您的Prism Central实例并正常运行,大语言模型可以通过MCP协议与其交互。
资源列表
要列出资源,请使用以下命令:
vms
clusters
hosts
images
subnets
大语言模型将接收到JSON格式的资源列表,并可对其进行解析和分析。
资源访问
要访问特定资源,请使用基于URI的语法:
vm://{uuid}
cluster://{uuid}
host://{uuid}
大语言模型将接收到指定资源的详细JSON信息。
📚 详细文档
开发指南
项目结构
mcp-nutanix/
├── bin/ # 编译后的二进制文件存放位置
├── internal/ # 内部组件包
│ ├── client/ # Prism Central客户端处理逻辑
│ ├── codegen/ # 代码生成工具
│ └── json/ # JSON数据处理辅助函数
├── pkg/ # 核心功能组件
│ ├── prompts/ # MCP协议提示语实现
│ ├── resources/ # 资源处理逻辑
│ └── tools/ # 工具集处理逻辑
└── Makefile # 构建和命令工具文件
代码生成
项目使用代码生成技术来创建资源和工具处理模块。要更新这些内容:
make generate
局限性说明
- 响应大小受MCP协议限制。
- 对于返回数据量较大的资源可能引发错误。
- 当前版本不支持分页功能。
- 仅支持读取操作,暂未实现创建、更新或删除功能。
Scan to contact