musistudio/claude-code-router · error

tools/call params must include a tool name.

Error message

tools/call params must include a tool name.

What it means

Error "tools/call params must include a tool name." thrown in musistudio/claude-code-router.

Source

Thrown at packages/electron/src/main/electron-web-search-mcp.ts:352

        includeDomains: { description: "Domains to restrict with site:domain.", items: { type: "string" }, type: "array" },
        includeRaw: { description: "Include the engine search URL in the text response.", type: "boolean" },
        keywords: { description: "Additional required keywords. A comma-separated string is also accepted.", items: { type: "string" }, type: "array" },
        language: { description: "Language hint such as en, zh-CN, ja.", type: "string" },
        prompt: { description: "Natural-language query. Search engine operators already present here are preserved.", type: "string" },
        query: { description: "Alias for prompt.", type: "string" },
        safeSearch: { enum: ["off", "moderate", "strict"], type: "string" },
        site: { description: "Single domain alias for includeDomains.", type: "string" },
        timeRange: { description: "Alias for freshness.", enum: ["day", "week", "month", "year"], type: "string" },
        timeoutMs: { minimum: 100, type: "number" }
      }, ["prompt"]),
      name: this.toolName,
      title: "In-app Browser Web Search"
    };
  }

  private async callTool(params: unknown): Promise<ToolCallResult> {
    if (!isRecord(params) || typeof params.name !== "string") {
      throw new Error("tools/call params must include a tool name.");
    }
    if (params.name !== this.toolName) {
      throw new Error(`Unknown in-app browser web search tool: ${params.name}`);
    }

    const args = isRecord(params.arguments) ? params.arguments : {};
    try {
      const input = this.readSearchInput(args);
      const record = await this.search(input);
      return textResult(formatSearchResponse(record, input.includeRaw));
    } catch (error) {
      return {
        ...textResult(formatError(error)),
        isError: true
      };
    }
  }

View on GitHub (pinned to 99f24806c6)

When it happens

Trigger: Thrown at packages/electron/src/main/electron-web-search-mcp.ts:352 when the library encounters an invalid state.

Common situations: See trigger scenarios.


AI-assisted analysis of musistudio/claude-code-router@99f24806c6 (2026-08-27). Data as JSON: /api/errors/4746196dba9e0e1e. Report an issue: GitHub.