MCP ExplorerExplorer

Backstage Mcp

@iocanelon 10 months ago
7 MIT
FreeCommunity
AI Systems
# A Simple Backend MCP Server Using Quarkus-Backstage

Overview

What is Backstage Mcp

Backstage MCP is a simple server that integrates Backstage with MCP using Quarkus Backstage, allowing users to manage and instantiate Backstage templates.

Use cases

Use cases for Backstage MCP include automating the creation of new services from templates, managing microservice architectures, and enhancing developer productivity through streamlined template instantiation.

How to use

To use Backstage MCP, ensure you have a Backstage installation with Service to Service communication enabled. Configure the required token in your Backstage YAML configuration, and then you can list and instantiate templates from the command line.

Key features

Key features include listing available Backstage templates and instantiating a template directly from the command line interface.

Where to use

Backstage MCP can be used in software development environments where Backstage is utilized for managing microservices and templates.

Content

Backstage MCP

This is an example of using Backstage with MCP via Quarkus Backstage.
The server has been tested with Goose. See below for details.

Features

  • List available Backstage templates
  • Instantiate a template from the command line

Requirements

A Backstage installation is required.
The installation needs to have enabled Service to Service communication.
Users need to have access of the token used for such communication. The yaml snippet below shows where and how it’s setup.

app:
# ...
backend:
  # ... 
  auth:
    # ...
    externalAccess:
      - type: static
        options:
          token: <put your token here>
          subject: curl-requests

Anatomy

Dependencies

The project is using:

        <dependency>
            <groupId>io.quarkiverse.mcp</groupId>
            <artifactId>quarkus-mcp-server-stdio</artifactId>
            <version>1.0.0.Alpha5</version>
        </dependency>

for implementing an mcp server that reads from stdin and writes to stdout.

It also uses:

        <dependency>
            <groupId>io.quarkiverse.backstage</groupId>
            <artifactId>quarkus-backstage</artifactId>
            <version>0.4.1</version>
        </dependency>

For talking to the Backstage API.

The implementation

The implementation is pretty straight forward, as there is a tiny file needed:
[[src/main/java/org/acme/Backstage.java]]

Setting up goose

Goose is an local AI agent that runs as an interactive shell and is supports plugins (including mcp servers).

To setup goose so that it uses this mcp server add the followng extension to your 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

Sample prompts

Listing the templates

list all the available backstage templates

Instantiating a template

To instantiate a template one needs values.yaml file containing the template parameters to use.
The default values can be extracted from the template using the backstage CLI:

quarkus backstage template info --show-default-values <template name>

The output can be saved to a file, say values.yaml and then used to instantiate the template from a goose session:

create a new project from template <template name> using values from values.yaml

Tools

No tools

Comments

Recommend MCP Servers

View All MCP Servers