这是使用 Backstage 与 MCP 的一个示例,通过 Quarkus Backstage 实现。 该服务器已使用 Goose 进行了测试。详情如下。
需要安装 Backstage。
安装需要启用 服务到服务 通信。
用户需要访问用于此类通信的令牌。以下 yaml 片段显示了设置的位置和方式。
app:
# ...
backend:
# ...
auth:
# ...
externalAccess:
- type: static
options:
token: <在此处放置您的令牌>
subject: curl-requests
该项目使用:
<dependency>
<groupId>io.quarkiverse.mcp</groupId>
<artifactId>quarkus-mcp-server-stdio</artifactId>
<version>1.0.0.Alpha5</version>
</dependency>
来实现一个读取标准输入并写入标准输出的 mcp 服务器。
还使用:
<dependency>
<groupId>io.quarkiverse.backstage</groupId>
<artifactId>quarkus-backstage</artifactId>
<version>0.4.1</version>
</dependency>
来与 Backstage API 通信。
实现非常简单,只需要一个小文件: [[src/main/java/org/acme/Backstage.java]]
Goose 是一个本地 AI 代理,作为交互式 shell 运行,并支持插件(包括 mcp 服务器)。
要设置 Goose 以使用此 mcp 服务器,请在您的 config.yaml 中添加以下扩展:
quarkus-backstage-mcp:
args:
- --quiet
- /home/iocanel/demo/backstage-mcp/target/quarkus-app/quarkus-run.jar
cmd: jbang
enabled: true
envs: {}
name: quarkus-backstage-mcp
type: stdio
列出所有可用的 Backstage 模板
要实例化模板,您需要一个包含模板参数的 values.yaml 文件。 默认值可以从模板中使用 Backstage CLI 提取:
quarkus backstage template info --show-default-values <模板名称>
输出可以保存到文件中,例如 values.yaml,然后在 Goose 会话中使用它来实例化模板:
使用 values.yaml 中的值从模板 <模板名称> 创建新项目