MCP running-tool label lowercases internal capitalization (`ListSomething` → `Listsomething`)

Open 💬 2 comments Opened Apr 14, 2026 by cassxw

What version of the IDE extension are you using?

openai.chatgpt@26.409.20454

What subscription do you have?

Business

Which IDE are you using?

VS Code

What platform is your computer?

Microsoft Windows NT 10.0.26200.0 x64

What issue are you seeing?

In Codex VS Code, the in-progress running-tool label for MCP tools lowercases internal casing.

Example:

  • Intended tool display: ListSomething
  • Running label shown: Listsomething

This is a UI-label issue; tool invocation itself succeeds/fails independently as normal.

What steps can reproduce the bug?

  1. Register an MCP tool with internal capitalization and explicit display metadata:

``json
{
"name": "mcp__serverName__ListSomething",
"title": "ListSomething",
"annotations": { "title": "ListSomething" },
"inputSchema": {
"type": "object",
"properties": {
"query": { "type": "string" }
},
"required": ["query"]
}
}
``

  1. In Codex VS Code, ask the agent to invoke the tool:

``
mcp__serverName__ListSomething({ "query": "test" })
``

  1. While the call is running, observe the spinner/status label in the transcript. Observed label: Listsomething.

What is the expected behavior?

The running-tool label should preserve capitalization and show ListSomething, ideally using MCP display metadata (title or annotations.title) when present.

Additional information

Server-side MCP metadata for this tool is already emitted as:

  • name: mcp__serverName__ListSomething
  • title: ListSomething
  • annotations.title: ListSomething

Invocation identifier is exact-case and callable as mcp__serverName__ListSomething.
This appears limited to MCP tool label rendering in Codex VS Code.

View original on GitHub ↗

2 Comments

cassxw · 4 months ago

This is still being experienced on the latest version: openai.chatgpt@26.415.20818.

GlitterKill · 24 days ago

I can reproduce this in the Codex App, not only VS Code, and traced a likely shared root cause.

Environment

  • Codex App: 26.727.6591.0
  • Platform: Microsoft Windows NT 10.0.26200.0 x64
  • MCP server: SDL-MCP

Desktop reproduction

The MCP server advertises:

{
"name": "sdl_workflow",
"title": "SDL Workflow",
"annotations": {
"title": "SDL Workflow"
}
}

Codex Desktop nevertheless renders the tool-call label as:

Sdl workflow

Expected:

SDL Workflow

Tool execution itself succeeds.

Likely boundary

MCP defines title as the human-facing display name, with the effective precedence:

Tool.title → Tool.annotations.title → Tool.name

However, the documented Codex app-server mcpToolCall item exposes the raw tool identifier but no display title:

{id, server, tool, status, arguments, ...}

See:
MCP metadata definition
Codex app-server MCP tool-call item

The Desktop client therefore appears to tokenize/lowercase the raw normalized identifier and apply sentence casing:

sdl_workflow → sdl workflow → Sdl workflow

This is consistent with the original ListSomething → Listsomething report.

Recommended fix

During MCP discovery, resolve the display title as:

tool.title ?? tool.annotations?.title ?? tool.name

Preserve that value on the internal invocation and app-server item, for example as an optional toolTitle. Have Desktop/VS Code render toolTitle before applying the existing raw-name formatter.