Navigation
Backstage MCP: Deploy Fast, Scale Securely - MCP Implementation

Backstage MCP: Deploy Fast, Scale Securely

Backstage MCP: A lightweight, Quarkus-powered enterprise-grade MCP server for streamlined backstage operations—deploy fast, scale effortlessly, and secure your cloud-native workflows.

Developer Tools
4.9(94 reviews)
141 saves
65 comments

50% of users reported increased productivity after just one week

About Backstage MCP

What is Backstage MCP: Deploy Fast, Scale Securely?

Backstage MCP (Meta-Controller Protocol) streamlines infrastructure workflows by enabling rapid template-based deployments while maintaining secure API communication. This integration combines Backstage's catalog management with Quarkus-driven MCP servers, allowing developers to provision resources via command-line interactions. The architecture ensures secure service-to-service authentication, leveraging Goose as an AI-driven execution layer for real-time template handling.

How to use Backstage MCP: Deploy Fast, Scale Securely?

Start by configuring your Backstage instance with service-to-service tokens in auth settings. Add MCP dependencies to your Quarkus project, then register the server in Goose's config.yaml with the correct JVM execution parameters. Use CLI commands to list available templates and trigger deployments by referencing pre-configured YAML parameter files. Authentication is handled via static tokens, requiring minimal manual intervention.

Backstage MCP Features

Key Features of Backstage MCP: Deploy Fast, Scale Securely?

  • Instant Template Inventory: Retrieve real-time listings of registered Backstage templates directly from the command line
  • Parameterized Deployments: Dynamically populate infrastructure configurations using auto-generated default values from template metadata
  • Secure Execution Channels: End-to-end encryption via MCP's stdin/stdout communication protocol integrated with Backstage's auth framework
  • AI-Enhanced Workflows: Native Goose plugin support enables conversational interface for deployment orchestration

Use cases of Backstage MCP: Deploy Fast, Scale Securely?

Backstage MCP FAQ

FAQ from Backstage MCP: Deploy Fast, Scale Securely?

Do I need an existing Backstage instance?
Yes - the MCP server acts as an extension rather than a standalone solution
How is security maintained during deployments?
Service tokens are scoped to specific API endpoints, with Goose enforcing least-privilege access through its plugin architecture
Can I customize template parameters programmatically?
Absolutely - the values.yaml files can be generated/modified via scripting before execution
What happens if the MCP server crashes?
Goose's plugin system supports automatic retries and logging for failed deployments, with error outputs mapped to Backstage's audit trails

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

Related MCP Servers & Clients