项目简介

AzBae是一个用于管理Azure资源的工具,包含命令行界面 (CLI)、图形用户界面 (GUI) 和 Model Context Protocol (MCP) 服务器三个组件。MCP服务器专门用于集成大型语言模型 (LLM),允许通过自然语言调用工具与Azure资源进行交互。

主要功能点

该MCP服务器目前主要通过暴露的工具实现对Azure资源的特定操作。根据提供的代码,核心功能包括:

  • 创建 Azure Cosmos DB 数据库及容器。
  • 未来可扩展更多Azure管理工具。

安装步骤

  1. 先决条件:
    • 安装 .NET 9.0 SDK。
    • 拥有Azure订阅和有效的Azure凭据。
  2. 克隆仓库:
    git clone https://github.com/mrcunninghamz/AzBae.git
    cd AzBae
  3. 构建项目:
    dotnet build AzBae.sln
    这将在 'src/MCP/bin/Debug/net9.0/' (或 'Release') 目录下生成 'AzBae.MCP.dll' 和相应的可执行文件。
  4. 配置Azure凭据: 在 'src/MCP' 目录下创建或修改 'appsettings.local.json' 文件,配置Azure Cosmos DB的连接信息(至少需要AccountEndpoint和AccountKey)。示例结构如下:
    {
      "CosmosDb": {
        "AccountEndpoint": "YOUR_ACCOUNT_ENDPOINT",
        "AccountKey": "YOUR_ACCOUNT_KEY",
        "DatabaseName": "YOUR_DEFAULT_DATABASE_NAME", // 可选,工具调用时可覆盖
        "ContainerName": "YOUR_DEFAULT_CONTAINER_NAME", // 可选,工具调用时可覆盖
        "PartitionKey": "YOUR_DEFAULT_PARTITION_KEY" // 可选,工具调用时可覆盖
      }
    }

服务器配置

AzBae MCP服务器设计用于与MCP客户端(如支持MCP的VS Code扩展或Agent应用)通信。客户端需要知道如何启动该服务器进程并与其通过标准输入输出(Stdio)进行通信。

在MCP客户端的配置中,您通常需要指定服务器的名称、启动命令及其参数。例如,对于VS Code的MCP扩展,您可能需要在 'settings.json' 中添加如下配置(这是一个概念性示例,具体键名可能因客户端而异):

"modelContextProtocol.servers": [
  {
    "name": "AzBae Azure Management", // 给服务器取一个易于识别的名称
    "command": "dotnet", // 启动命令,使用 dotnet 运行 AzBae.MCP.dll
    "args": [
      "run",
      "--project",
      "path/to/your/AzBae/src/MCP/AzBae.MCP.csproj" // 或者指向编译好的DLL路径
      // 可以根据需要添加其他启动参数
    ],
    "transport": "stdio" // 指定通信协议,这里使用标准输入输出
  }
]

请将 'path/to/your/AzBae/src/MCP/AzBae.MCP.csproj' 替换为您实际克隆AzBae仓库后 'src/MCP' 项目文件的路径。配置完成后,您的MCP客户端应能检测到并连接到AzBae MCP服务器。

基本使用方法

连接成功后,使用支持MCP协议的LLM客户端(如集成有Agent功能的IDE或应用),LLM将能够发现AzBae MCP服务器暴露的工具(例如 'azb_create_cosmos_container')。

您可以通过向LLM提出自然语言请求来使用这些工具,例如:

  • "帮我在Azure Cosmos DB里创建一个名为 'my-data' 的容器,数据库名字是 'app-db',分区键是 '/id'。" LLM客户端会解析您的请求,识别需要调用的AzBae工具及其参数,然后通过MCP协议向AzBae MCP服务器发送相应的JSON-RPC请求。服务器执行操作后,会将结果或状态通过MCP响应返回给客户端,LLM再将结果呈现给您。

信息

分类

数据库与文件