fix(mcp): connect tools into the default catalog: Claude.ai cannot call search-only tools (#1936)

First real onboarding run (SilverPark, 2026-08-26): the flow worked
through signup, preview, confirm and company creation, then dead-ended
when the onboarding skill pointed at gnubok_connect_bank and
gnubok_connect_skatteverket. Both were catalogVisibility 'search', and
Claude.ai can only invoke tools present in tools/list, so the client
refused the calls itself: event_log shows the server never received
them. Search-only stays valid for reference tools, but anything a skill
tells the agent to CALL must be in the default catalog. tools/list
ceiling bumped 60.7K -> 61.2K, documented in the guard.


Claude-Session: https://claude.ai/code/session_018wCdzRTatKiDByKB8hCNT6

Co-authored-by: Jakob Wennberg <311770904+jakobwennberg-oss@users.noreply.github.com>
Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
Jakob Wennberg
2026-08-26 10:41:38 +02:00
committed by GitHub
co-authored by Jakob Wennberg Claude Fable 5
parent b1a03de34e
commit a97943d00d
3 changed files with 9 additions and 3 deletions
@@ -216,9 +216,14 @@ describe('tools/list payload size guard', () => {
// trimmed to bare property names first (the two connect-link tools
// are search-only); headroom before the change was ~0 after the skatteverket_connection bump, so even the
// bare contract crossed by ~420.
// * 60.7K to 61.2K with the two connect-link tools moved into the default
// catalog (issue #1814): Claude.ai can only CALL tools present in
// tools/list, so catalogVisibility 'search' means discover-only there;
// the onboarding flow dead-ended on client-side tool-not-found when
// the skill pointed at them (SilverPark session, 2026-08-26).
// Long-term answer to growth is leaning harder on gnubok_search_tools: if this
// fires again, prefer trimming descriptions or making a tool opt-in via search
// before bumping further.
expect(approxTokens).toBeLessThan(60_700)
expect(approxTokens).toBeLessThan(61_200)
})
})
+2 -2
View File
@@ -3121,7 +3121,7 @@ export const tools: McpTool[] = [
},
required: ['connected', 'connections', 'connect_url', 'instructions'],
},
catalogVisibility: 'search',
annotations: {
readOnlyHint: true,
destructiveHint: false,
@@ -3177,7 +3177,7 @@ export const tools: McpTool[] = [
},
required: ['available', 'connected', 'token_expires_at', 'connect_url', 'instructions'],
},
catalogVisibility: 'search',
annotations: {
readOnlyHint: true,
destructiveHint: false,