使用说明

项目简介

本项目 'agoncal-sample-azure-mcp' 是一组使用 Java 和 Quarkus MCP Server 扩展开发的 MCP 服务器示例,旨在演示如何通过自然语言与 Azure 云资源进行交互。这些服务器允许用户使用支持 MCP 客户端的工具(如 VS Code、Claude Desktop)和 LLM 模型,以更直观的方式管理 Azure 资源,而无需编写复杂的代码或 Azure CLI 命令。

主要功能点

本项目包含多个独立的 MCP 服务器,每个服务器专注于管理特定类型的 Azure 资源:

  • mcp-server-azure: 提供 Azure 区域列表和资源缩写建议等通用信息查询工具。
  • mcp-server-azure-resourcemanager-resources: 提供创建和删除 Azure 资源组的工具。
  • mcp-server-azure-resourcemanager-postgresqlflexibleserver: 提供创建和删除 Azure PostgreSQL 灵活服务器的工具。
  • mcp-server-azure-resourcemanager-storage: 提供创建和删除 Azure 存储账户的工具。
  • mcp-server-azure-storage-blob: 提供创建和删除 Blob 容器,以及创建和读取文本文件的工具。

所有服务器均通过定义带有 '@Tool' 注解的 Java 方法来暴露功能,这些方法可以被 MCP 客户端调用,从而实现通过自然语言驱动的 Azure 资源管理。

安装步骤

  1. 环境准备: 确保已安装 Java 和 Maven。建议使用 SDKMAN 管理 Java 版本。
  2. 克隆仓库: 将 'agoncal-sample-azure-mcp' 仓库克隆到本地。
    git clone https://github.com/agoncal/agoncal-sample-azure-mcp.git
    cd agoncal-sample-azure-mcp
  3. 编译打包: 进入你想要使用的 MCP 服务器目录(例如 'mcp-server-azure-resourcemanager-resources'),使用 Maven 打包生成 Fat-JAR 文件。
    cd mcp-server-azure-resourcemanager-resources
    mvn package -Dnative -DskipTests
    打包成功后,Fat-JAR 文件通常位于 'target/' 目录下,文件名为 'mcp-server-azure-resourcemanager-resources-1.0.0-SNAPSHOT-runner.jar'。

服务器配置

要让 MCP 客户端(如 VS Code 或 Claude Desktop)连接到 MCP 服务器,需要配置 'mcp.json' 文件。以下是一个针对 'mcp-server-azure-resourcemanager-resources' 服务器的配置示例,你需要根据实际情况修改 'command' 和 'args' 中的路径:

{
  "servers": {
    "azure-resource-manager": {  // 服务器名称,可自定义
      "type": "stdio",        // 连接类型,本项目使用 stdio
      "command": "~/.sdkman/candidates/java/23.0.1-tem/bin/java", // Java 运行命令,请替换为你的 Java 路径
      "args": [
        "-jar",
        "~/agoncal-sample-azure-mcp/mcp-server-azure-resourcemanager-resources/target/mcp-server-azure-resourcemanager-resources-1.0.0-SNAPSHOT-runner.jar" // Fat-JAR 文件路径,请替换为你的实际路径
      ]
    }
  }
}

配置参数说明:

  • 'servers': 定义可用的 MCP 服务器列表。
  • 'azure-resource-manager': 服务器名称,在客户端配置中引用。
  • 'type': 服务器连接类型,'stdio' 表示标准输入输出流。
  • 'command': 启动服务器进程的命令,这里是 Java 运行命令。
  • 'args': 传递给 'command' 的参数,包括 '-jar' 参数和 Fat-JAR 文件的路径。

请注意,你需要根据你 Java 的安装路径和 Fat-JAR 文件的实际位置修改 'command' 和 'args' 中的路径。

基本使用方法

  1. 启动 MCP 服务器: MCP 客户端会根据 'mcp.json' 中的配置自动启动 MCP 服务器。
  2. 配置 MCP 客户端: 在支持 MCP 客户端的工具中(如 VS Code 插件或 Claude Desktop),配置 'mcp.json' 文件,指定要连接的 MCP 服务器。
  3. 使用自然语言: 在客户端的聊天界面中使用自然语言指令,例如:
    • "Create a resource group named rg-test-mcp" (调用 'creates_a_resource_group' 工具创建资源组)
    • "Delete the resource group named rg-test-mcp" (调用 'deletes_a_resource_group' 工具删除资源组)
    • "List all Azure regions" (调用 'lists_all_the_regions' 工具列出 Azure 区域)

LLM 模型会解析你的自然语言指令,并根据 '@Tool' 注解的描述和参数,调用相应的 MCP 工具来执行 Azure 资源管理操作。

注意: 本项目示例需要配置 Azure 认证信息才能正常访问和管理 Azure 资源。具体认证方式请参考项目 'README.md' 中 “Authentication” 部分的说明。

信息

分类

数据库与文件