{"record":{"id":"abc2ad715e186b52","repo":"musistudio/claude-code-router","slug":"unknown-in-app-browser-web-search-tool-params-n","errorCode":null,"errorMessage":"Unknown in-app browser web search tool: ${params.name}","messagePattern":"Unknown in-app browser web search tool: (.+?)","errorType":"exception","errorClass":null,"httpStatus":null,"severity":"error","filePath":"packages/electron/src/main/electron-web-search-mcp.ts","lineNumber":355,"sourceCode":"        language: { description: \"Language hint such as en, zh-CN, ja.\", type: \"string\" },\n        prompt: { description: \"Natural-language query. Search engine operators already present here are preserved.\", type: \"string\" },\n        query: { description: \"Alias for prompt.\", type: \"string\" },\n        safeSearch: { enum: [\"off\", \"moderate\", \"strict\"], type: \"string\" },\n        site: { description: \"Single domain alias for includeDomains.\", type: \"string\" },\n        timeRange: { description: \"Alias for freshness.\", enum: [\"day\", \"week\", \"month\", \"year\"], type: \"string\" },\n        timeoutMs: { minimum: 100, type: \"number\" }\n      }, [\"prompt\"]),\n      name: this.toolName,\n      title: \"In-app Browser Web Search\"\n    };\n  }\n\n  private async callTool(params: unknown): Promise<ToolCallResult> {\n    if (!isRecord(params) || typeof params.name !== \"string\") {\n      throw new Error(\"tools/call params must include a tool name.\");\n    }\n    if (params.name !== this.toolName) {\n      throw new Error(`Unknown in-app browser web search tool: ${params.name}`);\n    }\n\n    const args = isRecord(params.arguments) ? params.arguments : {};\n    try {\n      const input = this.readSearchInput(args);\n      const record = await this.search(input);\n      return textResult(formatSearchResponse(record, input.includeRaw));\n    } catch (error) {\n      return {\n        ...textResult(formatError(error)),\n        isError: true\n      };\n    }\n  }\n\n  async searchForProtocolResult(options: { count?: number; prompt: string; timeoutMs?: number }): Promise<BrowserWebSearchProtocolRecord> {\n    return await this.search(this.readSearchInput({\n      count: options.count,","sourceCodeStart":337,"sourceCodeEnd":373,"githubUrl":"https://github.com/musistudio/claude-code-router/blob/99f24806c6a2c660b16e53e95211c517448a6c90/packages/electron/src/main/electron-web-search-mcp.ts#L337-L373","documentation":"Error \"Unknown in-app browser web search tool: ${params.name}\" thrown in musistudio/claude-code-router.","triggerScenarios":"Thrown at packages/electron/src/main/electron-web-search-mcp.ts:355 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":[],"exampleFix":null,"handlingStrategy":null,"validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":[],"tags":[],"backgroundTag":null,"analyzedSha":"99f24806c6a2c660b16e53e95211c517448a6c90","analyzedAt":"2026-08-27T04:11:01.184Z","schemaVersion":2},"datasetVersion":"2026-08-27T08:17:20.692Z"}