Same Sume MCP URL, different tools: what your credential can see

Two clients on one Sume MCP URL can list different tools. Credential scope sets the surface, so compare mcp_health tools[] before blaming the client.

5 min readSume
All posts

Two clients pointed at the same Sume MCP URL can show different tool lists, because the visible surface depends on the credential. An OAuth session with only mcp:read lists read tools; a session with mcp:write or an API key lists the paid and write tools as well. Before blaming a client, call mcp_health in each and compare the tools array and the credential scopes.

The mcp_health shape is from the Sume MCP server code, and the scope rules are from MCP OAuth and API keys, read on 2026-10-03.

What decides the surface

The tools field in the mcp_health response lists the names visible to this request. It is computed per request from the credential, not from the URL, so two sessions on one endpoint can legitimately differ. The response also shows whether the surface is progressive: when it is, a tool_surface block lists tool families and the number of catalog tools.

Why two sessions on one URL differ (read 2026-10-03)
DifferenceWhere it shows in mcp_healthEffect
OAuth with Write offscopes list only mcp:readRead tools only
OAuth with Write onscopes include mcp:writeWrite and paid tools visible
API keycredential type api_key, with prefixFull hosted tool set
Progressive surfacetool_surface with familiesDiscover more via tools_list and tools_schema

A comparison routine

Run mcp_health in the working client and the broken one. Compare three things: authenticated.auth_source, the scopes in the credential block, and the tools array. Differences in the first two explain differences in the third. If all three match but the client still hides a tool, the problem is in the client's own tool filtering or a stale tool cache, and reconnecting is the next step.

The build block in the same response carries a commit and branch for the server. Include it when you report a problem to Sume so the report names the exact deployment.

What to change

If a tool is hidden because Write was never granted, sign in again and turn Write on, or switch the session to an API key. A mutating call without the scope returns insufficient_scope rather than doing anything, so the failure is safe and informative.

Do not widen scope just to make a list longer. A reporting agent that only reads should stay on mcp:read; the missing paid tools there are the feature.

Put it in CI

If an automated job depends on certain tools, add a start-up check: call mcp_health, then assert that each required tool name appears in tools. Fail early with a message that names the missing tool and the scopes found. A job that discovers a missing tool halfway through a batch has already done part of its work.

Keep the check read-only. It needs only mcp:read, so it works on every credential the job might run under.

Sources

Related posts

More in Developers

All Developers posts

Written by Sume