Reference host renders tool.name in the app header; base spec display precedence is title → annotations.title → name
Nobody has claimed this yet.
Assessment
- Difficulty
- 2/5
- Estimated time
- 1-3 hours
- Newbie friendliness
- 84/100
- Issue type
- Bug
- Clarity
- Clearly specified
- Activity status
- Active
- Tech stack
- typescript
- Domain
- frontend
Research direction
Start in examples/basic-host/src/index.tsx at the tool-call header that renders toolCallInfo.tool.name, and compare the available title and annotations.title fields with the precedence described in schema/2025-11-25/schema.ts. Verify the header with a tool containing all three names; done means it displays the title-precedence value while preserving the existing server and tool header structure.
Written by the indexing model from the issue text.
Description
Describe the bug
The reference host renders the header above a rendered app from the raw tool
name, ignoring title and annotations.title. In
examples/basic-host/src/index.tsx
the tool-call header is:
<span className={styles.toolName}>{toolCallInfo.tool.name}</span>
with no fallback to either title field. Claude Desktop renders the same two
spans, server name then tool name, e.g. "Slidely list_design_systems" (also
observed on claude.ai), while the tool-call row in the same conversation shows
the tool's title. Screenshot attached shows both in one frame: "Checking
slides" in the task list, "Slidely get_presentation" on the card header.
The base spec defines the display precedence in
schema/2025-11-25/schema.ts:
- Tool.annotations: "Display name precedence order is: title,
annotations.title, then name." - BaseMetadata.title: "If not provided, the name should be used for display
(except for Tool, whereannotations.titleshould be given precedence over
usingname, if present)." - BaseMetadata.name: "Intended for programmatic or logical use, but used as a
display name in past specs or fallback (if title isn't present)."
The MCP Apps specification does not say how a host labels a rendered app, so
the reference host is the only guidance implementers have.
To Reproduce
- Register a tool with a
title, anannotations.title, and a
_meta.ui.resourceUripointing at atext/html;profile=mcp-appresource. - Call the tool from a host built on examples/basic-host, or from Claude Desktop.
- Read the header rendered above the app.
Observed: the header shows the raw tool name, "Slidely list_design_systems".
Expected behavior
The header shows the tool's display name per the base spec's precedence:
"Listing design systems". The raw name could remain available in a tooltip or a
verbose view for provenance.
Logs
tools/list response (protocol 2025-11-25) for the request that produced the
rendered card, captured from the server log:
{
"name": "list_design_systems",
"title": "Listing design systems",
"annotations": {
"title": "Listing design systems",
"readOnlyHint": false, "destructiveHint": false,
"idempotentHint": true, "openWorldHint": false
},
"_meta": { "ui": { "resourceUri": "ui://slidely/chat-artifact-v4.html",
"visibility": ["model", "app"] } }
}
Rendered header DOM (Claude Desktop):
<span class="[unicode-bidi:plaintext]">Slidely</span>
<span class="text-muted [unicode-bidi:plaintext]"> list_design_systems</span>
Additional context
Related: anthropics/claude-code#37542 requested title in Claude Code's tool
rows and headers; closed as not planned.
- Dominant language
- TypeScript
- Stars
- 2.9k
- Forks
- 387
- Avg merge
- 3h 21m
- Merged PRs (30d)
- 6
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
More from modelcontextprotocol/ext-apps
-
bug
Difficulty 2/5 1-3 hours Newbie friendliness 68/100
modelcontextprotocol/ext-apps#742 · 1 comment ·
-
Difficulty 1/5 Under an hour Newbie friendliness 72/100
modelcontextprotocol/ext-apps#711 ·
-
Difficulty 2/5 1-3 hours Newbie friendliness 65/100
modelcontextprotocol/ext-apps#706 ·
-
Difficulty 2/5 1-3 hours Newbie friendliness 72/100
modelcontextprotocol/ext-apps#703 · 1 reaction ·
-
bug
Difficulty 2/5 1-3 hours Newbie friendliness 78/100
modelcontextprotocol/ext-apps#687 ·
All issues in modelcontextprotocol/ext-apps
Similar issues
-
calcite-components needs triage refactor
Difficulty 2/5 1-3 hours Newbie friendliness 75/100
Esri/calcite-design-system#15203 ·
-
Difficulty 2/5 1-3 hours Newbie friendliness 91/100
-
community first-timers-only good first issue hacktoberfest help wanted low hanging fruit up-for-grabs
Difficulty 1/5 Under an hour Newbie friendliness 95/100
-
Difficulty 2/5 1-3 hours Newbie friendliness 78/100
Automattic/studio#4908 ·
-
Difficulty 2/5 1-3 hours Newbie friendliness 90/100