Backstage MCP Actions Backend
Backstage ships a first-party MCP server as the @backstage/plugin-mcp-actions-backend plugin. It exposes every action registered with the Backstage Actions Registry as an MCP tool over the Streamable HTTP transport, served by the adopter's own Backstage backend at /api/mcp-actions/v1. Because Backstage is self-hosted there is no vendor-operated production endpoint; the Backstage project does, however, run a public demo instance whose MCP endpoint answered an unauthenticated tools/list during this pass, so the tool set below is observed, not inferred.
One-click install for Cursor, VS Code, Claude, and 20+ other MCP clients, powered by API Commons MCP Install — visit install.apicommons.org for more information.
Endpoint
Hosted endpoint · transport streamable-http
Connect
This is a remote MCP server — point an MCP client at the endpoint URL. Clients with native remote support (Claude, Cursor, VS Code, …):
For stdio-only clients (older Claude Desktop, etc.), bridge with mcp-remote:
If the server requires authentication, add the provider's token/header (e.g. an X-API-Key) per its docs. A quick reachability check:
Tools
auth.who-am-i— Returns the catalog entity and user info for the currently authenticated user. This action requires user credentials and cannot be used with service or unauthenticated credentials.catalog.get-catalog-model-description— Returns a markdown formatted description of the current catalog model, including all registered entity kinds, annotations, labels, tags, and relations.catalog.get-catalog-entity— This allows you to get a single entity from the software catalog. Each entity in the software catalog has a unique name, kind, and namespace. The default namespace is "default". Each entity is identified by a unique entity reference, whichcatalog.validate-entity— This action can be used to validate catalog-info.yaml file contents meant to be used with the software catalog. It checks both that the YAML syntax is correct, and that the entity content is valid according to the catalog's rulcatalog.register-entity— Registers one or more entities in the Backstage catalog by creating a Location entity that points to a remote catalog-info.yaml file. This action is similar to the "Register existing component" flow in the Backstage UI, where you provide acatalog.unregister-entity— Unregisters a Location entity and all entities it owns from the Backstage catalog. This action is similar to the "Unregister location" function in the Backstage UI, where you provide the unique identifier (locationId) of a Location entity.catalog.query-catalog-entities— Query entities from the Backstage Software Catalog using predicate filters. ## Catalog Model The catalog contains entities of different kinds. Every entity has "kind", "apiVersion", "metadata", and optionally "spec" and "relations". Fielcatalog.refresh-catalog-entity— This allows you to trigger a refresh of a single entity in the software catalog, requeuing it for processing. This is useful immediately after creating or updating an entity (for example via a scaffolder template invoked by an MCP client)scaffolder.list-scaffolder-tasks— This allows you to list scaffolder tasks that have been created. Each task has a unique id, specification, and status (one of open, processing, completed, failed, cancelled, skipped). Each task includes a timestamp for when it was created,scaffolder.dry-run-template— Dry-runs a scaffolder template to validate it without making changes. Returns success with execution logs, or errors for validation failures.scaffolder.list-scaffolder-actions— Lists all installed Scaffolder actions. Each action includes: - id: The action identifier - description: What the action does - schema: Input and output JSON schemas - examples: Usage examples when availablescaffolder.execute-template— Executes a Scaffolder template with its template ref and input parameter values. The template is run using the credentials provided to this action, and respects any RBAC permissions associated with those credentials. Returns a taskId that cscaffolder.get-scaffolder-task-logs— Retrieve the log events for a scaffolder task. Each log event has a type (log, completion, cancelled, or recovered), a body containing a message and optional step ID and status. Use the after parameter to fetch only events after a specific
About MCP
The Model Context Protocol (MCP) is an open protocol Anthropic introduced for connecting LLM-based agents to external tools and data sources. Providers publish MCP servers that expose their API surface as structured, discoverable tools — an MCP-compatible client (Claude Desktop, Cursor, Cline, Continue, etc.) can connect to the server and call its tools without any per-provider integration code.
Browse every MCP server on the APIs.io network or compare with the broader Agent Skill surfaces of the same providers.
Work with this as data
Every MCP server here is available over the APIs.io API and to AI agents over MCP.