forcedotcom / forcedotcom/mcp-hosted
[Bug]: headless-360 Setup lists 5 tools, tools/list returns 4; display_widget never advertised
- Dominant language
- No language data
- Stars
- 135
- Forks
- 20
- PR merge metrics
- No merged PRs in 30d
Description
### Summary
Setup lists five tools for the Headless 360 server, but `tools/list` returns four. The fifth, `display_widget`, is never advertised to the client, so it cannot be called.
### Environment
Production org (Enterprise Edition), API v67. Client: Claude Code via a pre-registered External Client App (public client, PKCE, `mcp_api` scope). Server reports `headless-360 1.0.0`, title `Headless360 (H360) MCP Server`, URL `https://api.salesforce.com/platform/mcp/v1/platform/headless-360`. Observed 2026-08-22, re-verified by a full `tools/list` diff on 2026-08-28.
### Detail
Setup, Integrations, API Catalog, MCP Servers shows a tool count of 5 for this server and names `display_widget` among them. `tools/list` returns exactly four: `discover`, `describe`, `dispatch`, `dispatch_readonly`. The 2026-08-28 re-probe diffed the full tool list against the 2026-08-22 baseline: descriptions, schemas and annotations were byte-identical and the count was still four, so this is stable rather than transient.
The server does advertise one resource, `ui://widget/salesforce-widget-renderer`, which suggests `display_widget` is the intended client-side companion to it. `prompts/list` is empty.
### Why this matters
The Setup count is what an administrator uses to decide what activating a server exposes, so a discrepancy between Setup and the wire protocol undermines that review. If `display_widget` is deliberately client-gated (for example only offered to first-party clients, or only over a UI-capable transport), Setup should say so rather than counting it alongside callable tools.
### Suggested resolution
Either advertise `display_widget` through `tools/list`, or make the Setup listing reflect what the protocol actually exposes and document the gating condition.
Contributor guide
Research direction
Start by comparing the Setup tool count with the full tools/list response for the Headless 360 server, focusing on display_widget and the ui://widget/salesforce-widget-renderer resource. Determine whether display_widget should be exposed to this client or intentionally gated. Done means the advertised count and protocol response agree, or the gating condition is documented in Setup.
Written by the indexing model from the issue text.
Assessment
- Domain
- api
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Active
- Clarity
- Mostly clear
- Newbie friendliness
- 48/100