forcedotcom / forcedotcom/mcp-hosted

[Bug]: headless-360 Setup lists 5 tools, tools/list returns 4; display_widget never advertised

Open
#50 1 comment 0 reactions 0 assignees View on GitHub
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

Open the contributing 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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.