项目简介

MultiCloudInfraAI是一个开源项目,它将自然语言处理能力与Terraform结合,使用户能够通过简单的自然语言命令来创建、编辑和销毁跨不同云服务提供商(如Oracle Cloud和Google Cloud)的基础设施。项目包含一个MCP服务器和一个MCP客户端,服务器负责接收客户端请求,解析自然语言,生成并执行相应的Terraform代码。

主要功能点

  • 自然语言交互: 接受用户输入的自然语言指令(通过LLM模型)。
  • Terraform自动化: 根据自然语言指令生成Terraform配置文件,并自动执行'init', 'plan', 'apply', 'destroy'等命令。
  • 多云支持: 目前支持Oracle Cloud (OCI) 和 Google Cloud (GCP) 的计算实例管理,设计为可轻松扩展到其他云提供商和服务。
  • 资源管理: 支持创建、编辑和删除计算虚拟机实例。
  • 模块化架构: 便于添加新的云提供商、资源类型或扩展功能。

安装步骤

  1. 克隆仓库: 从GitHub克隆MultiCloudInfraAI仓库到本地。
  2. 准备环境: 确保已安装Java开发工具包、Maven、Terraform以及所需的云提供商CLI/SDK。
  3. 配置凭据: 根据所使用的云提供商(OCI, GCP等),配置相应的云服务访问凭据。
  4. 配置LLM: 项目依赖大型语言模型(LLM),需配置访问LLM服务的密钥(例如OpenAI API Key)。
  5. 遵循文档: 详细的设置和扩展指南请参考仓库中的 'docs/guide-setup-expandability.md' 文档。

服务器配置

MultiCloudInfraAI包含一个作为MCP服务器运行的后端应用。LLM客户端(如项目自带的CLI客户端)需要知道如何连接到这个服务器以获取工具能力。通常,客户端需要配置服务器的连接信息,这些信息以JSON格式声明。对于MultiCloudInfraAI服务器,其MCP接口通常通过TCP/IP暴露,客户端配置通常需要包含以下信息:

  • 'server_name': 一个描述服务器用途的名称(例如:"MultiCloudInfraAI Server")。
  • 'transport': 指定连接方式,对于TCP/IP通常是 '"tcp"'。
  • 'address': 服务器监听的网络地址和端口(例如:"localhost:8181",具体取决于服务器实际配置)。
  • 'capabilities': 客户端支持的能力声明,以便服务器调整其行为。

客户端会使用这些配置来建立与服务器的连接,并通过MCP协议获取服务器暴露的工具列表及其定义(例如'create_computevm_cloud', 'delete_computevm_cloud'等),然后根据LLM的需求调用这些工具。

基本使用方法

  1. 启动MCP服务器: 按照仓库文档指引,在'/mcp-server'目录下运行服务器应用。
  2. 启动MCP客户端: 按照仓库文档指引,在'/mcp-client'目录下运行客户端应用,并确保其配置指向运行中的服务器地址和端口。
  3. 输入自然语言命令: 在客户端的命令行界面中,输入以特定前缀(如'chat')开头的自然语言指令,描述想要执行的基础设施操作。
    • 例如:'chat create a VM named dev-instance, with VCN named dev-vcn, subnet named dev-subnet, using 2 OCPUs and 4 GB memory in Oracle Cloud under compartment oci-dev-compartment'
    • 例如:'chat create a VM named gcp-test, using 2 OCPUs and 8 GB memory in Google Cloud'
  4. 查看结果: 服务器将处理请求,调用LLM解析意图,执行相应的Terraform操作,并在客户端显示结果。

信息

分类

开发者工具