使用说明

项目简介

本项目是一个基于 Quarkus Backstage 构建的 MCP 服务器示例,旨在演示如何通过 MCP 协议与 LLM 客户端交互,利用 Backstage 的能力管理和实例化软件模板。该服务器通过标准输入/输出 (stdio) 与 MCP 客户端通信,并提供了列出 Backstage 模板和创建项目的功能。

主要功能点

  • 列出 Backstage 模板: 允许 LLM 客户端查询 Backstage 中可用的软件模板列表。
  • 创建 Backstage 项目: 允许 LLM 客户端基于 Backstage 模板创建新的软件项目,并支持通过参数文件自定义项目配置。

安装步骤

  1. 前提条件:

    • 确保已安装并运行 Backstage 服务,并已启用 Service to Service 通信。
    • 获取用于 Service to Service 通信的 'token',并配置到 Backstage 后端。
    • 确保已安装 jbang
  2. 下载代码: 从 GitHub 克隆 'backstage-mcp' 仓库到本地。

  3. 编译项目: 在仓库根目录下,使用 Maven 命令编译项目:

    ./mvnw package -Dnative -DskipTests

    编译成功后,会在 'target/quarkus-app/' 目录下生成 'quarkus-run.jar' 文件。

服务器配置

MCP 客户端需要配置以下信息以连接到此 MCP 服务器。以下是一个 JSON 格式的配置示例,适用于 Goose 等 MCP 客户端:

{
  "name": "backstage-mcp",  // 服务器名称,可自定义
  "type": "stdio",         // 连接类型为标准输入/输出
  "cmd": "jbang",          // 启动命令,使用 jbang 运行 jar 包
  "args": [                // 启动参数
    "--quiet",            // 静默模式,减少 jbang 输出
    "/path/to/backstage-mcp/target/quarkus-app/quarkus-run.jar" // 指向 quarkus-run.jar 的绝对路径,请替换为实际路径
  ],
  "enabled": true,         // 启用此服务器
  "envs": {}               // 环境变量,此处为空
}

请注意:

  • '/path/to/backstage-mcp/target/quarkus-app/quarkus-run.jar' 需要替换为 'quarkus-run.jar' 文件在您本地文件系统中的绝对路径
  • 确保 MCP 客户端能够执行 'jbang' 命令,并且 'quarkus-run.jar' 文件路径正确可访问。

基本使用方法

  1. 启动 MCP 客户端 (例如 Goose),并加载上述服务器配置。

  2. 列出 Backstage 模板: 在 MCP 客户端中,发送类似以下的指令:

    list all the available backstage templates

    服务器会返回 Backstage 中可用的模板列表。

  3. 创建 Backstage 项目:

    • 首先,使用 Backstage CLI 获取模板的默认参数值,并保存到 'values.yaml' 文件:
      quarkus backstage template info --show-default-values <template name> > values.yaml
      将 '<template name>' 替换为您要使用的模板名称。
    • 然后,在 MCP 客户端中,发送指令创建项目,并指定模板名称和 'values.yaml' 文件路径:
      create a new project from template <template name> using values from values.yaml
      将 '<template name>' 替换为模板名称,'values.yaml' 替换为实际的文件路径。

    服务器会根据提供的模板和参数创建 Backstage 项目,并返回项目创建结果。

注意:

  • 本项目仅为示例,可能需要根据实际 Backstage 环境和需求进行调整。
  • 确保 Backstage 服务正常运行,并且 MCP 服务器配置中的 'token' 有效。

信息

分类

开发者工具