Fire in da houseTop Tip:Paying $100+ per month for Perplexity, MidJourney, Runway, ChatGPT and other tools is crazy - get all your AI tools in one site starting at $15 per month with Galaxy AI Fire in da houseCheck it out free

backstage-mcp

MCP.Pizza Chef: iocanel

backstage-mcp is a lightweight MCP server integrating Backstage with MCP through Quarkus Backstage. It enables listing available Backstage software templates and instantiating them from the command line. Designed for environments with Backstage installations supporting service-to-service authentication, it facilitates automated template management workflows in developer portals.

Use This MCP server To

List available Backstage software templates programmatically Instantiate Backstage templates from command line interfaces Automate template deployment in Backstage developer portals Integrate Backstage template management into CI/CD pipelines Enable service-to-service authenticated template operations Simplify onboarding by automating template instantiation

README

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

backstage-mcp FAQ

How do I configure authentication for backstage-mcp?
You must enable service-to-service authentication in your Backstage backend and provide a static token with appropriate access in the configuration YAML.
Can backstage-mcp instantiate templates without a Backstage installation?
No, backstage-mcp requires a running Backstage instance with enabled service-to-service communication.
What dependencies does backstage-mcp have?
It depends on Quarkus Backstage and requires a Backstage backend configured for service-to-service auth.
How do I list available templates using backstage-mcp?
Use the server's API or CLI commands to query and retrieve the list of Backstage templates.
Is backstage-mcp compatible with all Backstage versions?
It is designed to work with Backstage versions supporting service-to-service authentication; verify compatibility with your Backstage version.
Can I use backstage-mcp with other MCP clients?
Yes, backstage-mcp exposes standard MCP server interfaces compatible with various MCP clients.
How is the token for authentication managed?
The token is statically configured in the Backstage backend YAML under externalAccess for secure service-to-service calls.