Skip to content

[feature] Custom icons for installed apps and MCP integrations via UI/API #2289

Open

Description

@jaypopat

The problem

Custom MCP/OpenAPI integrations do not always have recognizable icons in the installed-apps dashboard. Inferring an icon from a provider URL or catalog name can produce a generic icon or identify the hosting domain rather than the integration itself. Multiple apps sharing a provider may also need different icons.

It would be useful to configure an app's icon as persistent metadata while running official Executor images, without a custom frontend build.

Proposed shape

Add an optional custom icon for each installed app:

  • An app settings control to set an icon URL and/or upload an image, preview it, and remove/reset it.
  • A supported API operation to set or clear the same metadata, so agents and setup scripts can configure it.
  • Store the selection against the stable app ID, scoped to the owning user/organization, rather than matching its display name.
  • Use the custom icon on app cards and app headers. When it is unset or cannot load, retain the existing automatic icon/fallback behavior.
  • Preserve the metadata across app renames, redeployments, container restarts and Executor upgrades.

A persisted icon URL with UI/API support would already be a useful first step; image uploads could follow if they require additional storage work.

Alternatives

Bundling logos in a custom image and mapping app/provider names to assets can provide icons, but adding a logo requires another build, name matching is fragile, and the customization needs maintenance through upgrades.

Hosting an image externally alone does not solve the problem unless the dashboard has app metadata it can use. A reverse-proxy JavaScript rewrite would still leave a frontend patch to maintain.

Where it belongs

Self-host (Docker), with the same app metadata usable by other Executor dashboard hosts.

Before you submit

  • I searched the open issues for a duplicate.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions