{"record":{"id":"f7950bc7a608684e","repo":"coleam00/Archon","slug":"mcp-haiku-tool-search","errorCode":"mcp_haiku_tool_search","errorMessage":"Using Haiku model with MCP servers — tool search (lazy loading for many tools) is not supported on Haiku. Consider using Sonnet or Opus.","messagePattern":"Using Haiku model with MCP servers — tool search \\(lazy loading for many tools\\) is not supported on Haiku\\. Consider using Sonnet or Opus\\.","errorType":"validation","errorClass":null,"httpStatus":null,"severity":"warning","filePath":"packages/providers/src/claude/provider.ts","lineNumber":631,"sourceCode":"    const mcpPath = nodeConfig.mcp;\n    const { servers, serverNames, missingVars } = await loadMcpConfig(mcpPath, cwd);\n    options.mcpServers = servers as Options['mcpServers'];\n    const mcpWildcards = serverNames.map(name => `mcp__${name}__*`);\n    options.allowedTools = [...(options.allowedTools ?? []), ...mcpWildcards];\n    getLog().info({ serverNames, mcpPath }, 'claude.mcp_config_loaded');\n    if (missingVars.length > 0) {\n      const uniqueVars = [...new Set(missingVars)];\n      getLog().warn({ missingVars: uniqueVars }, 'claude.mcp_env_vars_missing');\n      warnings.push({\n        code: 'mcp_env_vars_missing',\n        message: `MCP config references undefined env vars: ${uniqueVars.join(', ')}. These will be empty strings — MCP servers may fail to authenticate.`,\n      });\n    }\n    // Haiku models don't support tool search (lazy loading for many tools)\n    if (options.model?.toLowerCase().includes('haiku')) {\n      getLog().warn({ model: options.model }, 'claude.mcp_haiku_tool_search_unsupported');\n      warnings.push({\n        code: 'mcp_haiku_tool_search',\n        message:\n          'Using Haiku model with MCP servers — tool search (lazy loading for many tools) is not supported on Haiku. Consider using Sonnet or Opus.',\n      });\n    }\n  }\n\n  // Native skill selection. The SDK requires Skill to remain allowed when an\n  // explicit tool list is present; without a list, its normal tool set applies.\n  if (selectsSkills) {\n    if (!options.allowedTools?.includes('Skill')) {\n      options.allowedTools = [...(options.allowedTools ?? []), 'Skill'];\n    }\n    getLog().info({ skills: nodeConfig.skills }, 'claude.skills_selected');\n  }\n\n  // agents → inline AgentDefinition pass-through.\n  // Inline agents remain sub-agents invokable through the Agent tool; native\n  // skill selection does not replace the query's primary agent.","sourceCodeStart":613,"sourceCodeEnd":649,"githubUrl":"https://github.com/coleam00/Archon/blob/0773b9745896ef0612e709c80845a0f7db315b19/packages/providers/src/claude/provider.ts#L613-L649","documentation":"Tool search (lazy loading of large tool sets) is not supported on Haiku models. When MCP servers are configured and the selected model name contains 'haiku', the provider warns (code mcp_haiku_tool_search) that lazy loading won't work and suggests a larger model.","triggerScenarios":"Configuring a node with model like 'claude-haiku-...' together with one or more MCP servers in the node's MCP config.","commonSituations":"Choosing Haiku to cut costs while keeping a wide MCP tool surface; a workflow default model of Haiku combined with MCP-heavy nodes.","solutions":["Switch the node's model to Sonnet or Opus.","Keep Haiku but reduce/remove MCP servers, or inline only the needed tools.","Accept the limitation: tools will not be lazily loaded and may exceed context or fail."],"exampleFix":"// before (workflow YAML)\nmodel: claude-haiku-4-5\nmcp: github-mcp\n// warning: tool search unsupported on Haiku\n// after\nmodel: claude-sonnet-4-5\nmcp: github-mcp","handlingStrategy":"validation","validationCode":"if (/haiku/i.test(node.model ?? '') && (node.mcpServers?.length ?? 0) > 0) {\n  console.warn('Haiku + MCP: tool search unsupported; use Sonnet/Opus or drop MCP servers');\n}","typeGuard":null,"tryCatchPattern":null,"preventionTips":["Pair MCP-heavy nodes with Sonnet or Opus.","Centralize model choice so Haiku defaults don't silently combine with MCP configs.","Review warnings with code mcp_haiku_tool_search during workflow authoring."],"tags":["claude","mcp","model-capability","haiku"],"backgroundTag":"unsupported-model-capability","analyzedSha":"0773b9745896ef0612e709c80845a0f7db315b19","analyzedAt":"2026-09-01T02:28:07.064Z","contentChangedAt":null,"schemaVersion":2},"datasetVersion":"2026-09-08T05:18:18.240Z"}