-
Story
-
Resolution: Done
-
Undefined
-
None
-
False
-
-
False
-
-
Story (Required)
As a platform engineer interacting with RHDH via an MCP client, I should be able to register new software templates with RHDH that I have created. I should also be able to unregister software templates that are no longer needed.
This story enables AI clients to manage software template registration lifecycle through MCP tools, providing the ability to add new templates from Git repositories to the Backstage catalog and remove templates when they are no longer needed. The goal is to allow platform engineers to programmatically manage template availability through natural language interactions while maintaining proper authentication and permission controls for template management operations.
Background (Required)
Backstage Software Templates can be registered from Git repositories containing template.yaml definitions, enabling teams to share standardized project scaffolding across the organization. Platform engineers need the ability to add new templates as they are developed and remove outdated or deprecated templates to maintain a clean and relevant template catalog. Currently, this is done through the Backstage UI or direct API calls. By providing MCP tools for template registration and unregistration, we enable AI assistants to help platform engineers manage template lifecycle operations while ensuring proper authentication through static tokens with catalog write permissions.
Out of scope
Creation or deletion of actual template files, modification of existing template definitions, bulk template operations, automatic discovery of templates in repositories, template validation beyond registration checks, integration with CI/CD pipelines for automated registration
Approach (Required)
1. Create MCP tool as an Action registered in the ActionRegistry, as outlined in https://github.com/backstage/backstage/tree/master/plugins/mcp-actions-backend
2. Implement template registration using Backstage Templates API with Git repository sources
3. Implement template unregistration functionality for removing templates from catalog
4. Configure authentication using static token with catalog write permissions
5. Support registration from Git repository URLs containing template.yaml files
6. Handle registration conflicts and provide meaningful error messages
7. Support unregistration by template name, ID, or repository reference
8. Provide clear feedback on registration/unregistration success or failure status
Dependencies
Backstage Software Templates API write access, MCP server implementation, ActionRegistry integration, static token configuration with catalog write permissions, understanding of template registration workflows and Git repository integration
Acceptance Criteria (Required)
1. MCP tool successfully registers software templates from Git repository URLs
2. Tool validates template.yaml format and structure before attempting registration
3. Registration operations properly authenticated using configured static token
4. MCP tool successfully unregisters templates by name, ID, or repository reference
5. Proper error handling for invalid URLs, malformed template.yaml, or permission issues
6. Tool registered in ActionRegistry and discoverable by AI clients
7. Evaluation data for known-good questions and responses from the MCP tool
(✓) documentation updates (design docs, release notes etc)
(✓) demo needed
SOP required
education module update (Filled by RHDHPAI team only)
R&D label required (Filled by RHDHPAI team only)
Done Checklist
Code is completed, reviewed, documented and checked in
Unit and integration test automation have been delivered and running cleanly in continuous integration/staging/canary environment
Continuous Delivery pipeline(s) is able to proceed with new code included
Customer facing documentation, API docs, design docs etc. are produced/updated, reviewed and published
Acceptance criteria are met
If the Grafana dashboard is updated, ensure the corresponding SOP is updated as well
- depends on
-
RHIDP-10039 MCP Tools to register/unregister catalog entities
-
- Closed
-