Skip to main content

HERE MCP app and supertab tools

These tools let an AI agent find, launch, and work with content in a user's Enterprise Browser (EB). Your agent can set up a workspace for the user (for example, a markets dashboard with a specific instrument already loaded) so the user doesn't have to locate it manually.

New to the MCP server? Start with the overview.

ToolCategoryPurpose
list-appsDiscoverList the apps the user can access
list-supertabsDiscoverList the user's local and published supertabs
launch-appLaunchOpen an app, with optional FDC3 context
open-supertabLaunchOpen a local or published supertab, with optional FDC3 context
create-supertabLaunchCombine two or more apps in a new supertab with a row, column, or grid layout
get-channel-contextsChannelsRead the current context on every color channel
get-channel-membershipsChannelsSee which supertabs are on which color channel
broadcast-contextChannelsBroadcast an FDC3 context to a color channel
list-open-supertabsDesktop stateList open windows, their supertabs, and the views in each
get-focused-contentDesktop stateFind the window, supertab, and view the user is focused on

To raise an FDC3 intent, including one aimed at a specific app, use raise-intent.

How the tools work​

There are two kinds of tools:

  • Server-side tools. list-apps and list-supertabs read from the HERE content directory. They work even if Enterprise Browser isn't running.
  • Desktop tools. All other tools act on the user's live Enterprise Browser session. The MCP server sends the request to the user's desktop and waits for a response, so you receive the result (or an error) before the call completes.

Security model​

  • Entitlements still apply. An agent can only see and open apps and supertabs the user has access to.
  • The token decides the user. Tools always act for the subject (sub) of the bearer token. They can't act for anyone else.
  • MCP launches behave like user launches. Content opened through the MCP server works the same as content the user opens directly.
  • Usage is metered. Every tool call is recorded for your organization.

Prerequisites​

  1. You can connect to the MCP server. See Connecting for the endpoint and authentication. Then call tools/list to check which of these tools your organization has enabled.
  2. Content is set up in the Admin Console. Apps and published supertabs need to be configured and assigned to users. See Manage apps and Manage supertabs.
  3. Apps have clear names and context types. Agents pick apps based on what list-apps returns: the app name and the context types it accepts. Vague names make it hard for an agent to choose the right app.
  4. Enterprise Browser is running (for desktop tools). If it isn't, desktop tool calls time out. Requests aren't queued or retried.

Discover content​

list-apps​

Lists the apps in the content directory that the user can access.

Input​

FieldTypeRequiredDescription
querystringNoSearch string to filter the results

Output​

Each app includes:

FieldDescription
appIdID to pass to launch-app or create-supertab
nameApp name
descriptionApp description. Admins can't currently set app descriptions in the Admin Console, so this field might be empty
manifestTypeKind of app, such as a web app or a native desktop app
Context typesFDC3 context types the app accepts

Example​

const apps = await mcp.call("list-apps", { query: "chart" });

list-supertabs​

Lists the user's supertabs from two sources:

  • Saved: the user's local supertabs
  • Published: supertabs that admins have published and assigned to the user

For more on the difference, see Local and published supertabs.

Input​

FieldTypeRequiredDescription
source"saved" | "published"NoOnly return supertabs from this source. Omit this field to return both

Output​

Each supertab includes:

FieldDescription
idID to pass to open-supertab
titleSupertab title
sourcesaved or published. Pass it to open-supertab along with id

Example​

const supertabs = await mcp.call("list-supertabs", { source: "published" });

Launch content​

All three launch tools take an optional FDC3 context object. If you include one, Enterprise Browser broadcasts it after the content opens, so the apps load with that context already applied. The context needs a type field. See Context objects for examples.

launch-app​

Opens a web app or a native desktop app.

Input​

FieldTypeRequiredDescription
appIdstringYesID of the app, from list-apps
contextobjectNoFDC3 context to broadcast to the app's channel after it opens

Output​

FieldDescription
successtrue if the app opened
windowIdID of the window the app is in
viewIdID of the view the app opened in

If the app fails to open, you receive an error.

Example​

const result = await mcp.call("launch-app", {
appId: "chart-app",
context: { type: "fdc3.instrument", id: { ticker: "AAPL" } }
});
// → { success: true, windowId: "...", viewId: "..." }

open-supertab​

Opens a saved (local) or published supertab.

Input​

FieldTypeRequiredDescription
idstringYesID of the supertab, from list-supertabs
source"saved" | "published"YesWhere the supertab comes from, from list-supertabs
contextobjectNoFDC3 context to broadcast to the supertab's color channel after it opens

Output​

FieldDescription
successtrue if the supertab opened
pageIdID of the supertab
windowIdID of the window the supertab is in
contextGroupColor channel the supertab is on

If the supertab fails to open, you receive an error.

Example​

const result = await mcp.call("open-supertab", {
id: "markets-dashboard",
source: "published",
context: { type: "fdc3.instrument", id: { ticker: "AAPL" } }
});

create-supertab​

Creates a new supertab containing two or more apps, arranged in the layout you specify.

Input​

FieldTypeRequiredDescription
appIdsstring[]YesIDs of the apps to include, from list-apps. Requires at least two
layout"row" | "column" | "grid"YesHow to arrange the apps
titlestringNoTitle for the new supertab
contextobjectNoFDC3 context to broadcast to the new supertab's color channel, so every app in it gets the context

Output​

FieldDescription
successtrue if the supertab was created and opened
pageIdID of the new supertab
windowIdID of the window the supertab is in
contextGroupColor channel the supertab is on

If the supertab can't be created, you receive an error.

Example​

const result = await mcp.call("create-supertab", {
appIds: ["chart-app", "news-app", "research-app"],
layout: "grid",
title: "AAPL overview",
context: { type: "fdc3.instrument", id: { ticker: "AAPL" } }
});

Work with color channels​

Color channels link top-level tabs so they share context. See Signals for how users work with color channels, and Add signals with context sharing for how apps receive context.

get-channel-contexts​

Reads the current FDC3 context on each color channel. Takes no input.

Output​

{
"channels": [
{
"id": "green",
"displayName": "Green",
"currentContext": { "type": "fdc3.instrument", "id": { "ticker": "AAPL" } }
}
]
}

get-channel-memberships​

Shows which open supertabs are on each color channel. Takes no input.

Output​

{
"memberships": [
{
"channelId": "green",
"pages": [
{ "pageId": "...", "title": "AAPL overview", "windowId": "..." }
]
}
]
}

To determine which channel a supertab is on, look for its pageId in the response. list-open-supertabs also returns each supertab's channel as contextGroup.

broadcast-context​

Broadcasts an FDC3 context to a color channel. Every app on that channel receives it.

Input​

FieldTypeRequiredDescription
channelstringYesID of the color channel, from get-channel-contexts
contextobjectYesFDC3 context object. Must include a type field

Output​

{ success: true } if the broadcast succeeds. If the channel doesn't exist, you receive an error.

Example​

const result = await mcp.call("broadcast-context", {
channel: "green",
context: { type: "fdc3.instrument", id: { ticker: "MSFT" } }
});

Read desktop state​

list-open-supertabs​

Lists every open Enterprise Browser window, the supertabs in each one, and the views in each supertab. Takes no input.

Output​

{
"windows": [
{
"windowId": "...",
"pages": [
{
"pageId": "...",
"title": "AAPL overview",
"isActive": true,
"contextGroup": "green",
"views": []
}
]
}
]
}

isActive marks the active supertab in each window. views lists the view tabs in the supertab.

get-focused-content​

Returns what the user is focused on: the last focused window, the active supertab in it, and the focused view in that supertab. Takes no input.

Output​

{
"windowId": "...",
"page": { "pageId": "...", "title": "AAPL overview", "contextGroup": "green" },
"view": { "viewId": "...", "title": "Chart", "url": "https://..." }
}

To read the text content of the user's views, use get-browser-context.

Common workflows​

Open a dashboard with context. Call list-supertabs to find the dashboard. Then call open-supertab with its id, its source, and a context for the instrument the user asked about.

Build a custom workspace. Call list-apps and pick apps based on their names and context types. Then call create-supertab with those appIds, a layout, and a context.

Track the user's current activity. Call get-focused-content to get the focused supertab and its contextGroup. Then call get-channel-contexts to see what's on that channel, or broadcast-context to change it.

Limits​

  • No changes to existing content. You can't use these tools to modify or close supertabs or views that are already open.
  • Live session required. Desktop tools act on the user's current Enterprise Browser session. If no session is active, the call times out.
  • Current user only. Tools only act for the authenticated user.

Reference​