本项目是一个运用 Backstage 和 MCP 的示例,借助 Quarkus Backstage 得以实现。同时,服务器已采用 Goose 完成测试。以下将为您详细介绍该项目。
您需要安装 Backstage,并且此安装要启用 服务到服务 通信。同时,用户需拥有用于此类通信的令牌的访问权限。以下 yaml 代码片段展示了设置的位置与方式:
app:
# ...
backend:
# ...
auth:
# ...
externalAccess:
- type: static
options:
token: <在此处输入您的令牌>
subject: curl-requests
该项目使用了以下依赖项:
<dependency>
<groupId>io.quarkiverse.mcpgroupId>
<artifactId>quarkus-mcp-server-stdioartifactId>
<version>1.0.0.Alpha5version>
dependency>
此依赖项实现了一个 mcp 服务器,该服务器会从标准输入读取数据并写入标准输出。
它还使用了以下依赖项:
<dependency>
<groupId>io.quarkiverse.backstagegroupId>
<artifactId>quarkus-backstageartifactId>
<version>0.4.1version>
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 中的值