Skip to content

Github MCP Tools don't work with Gemini 2.5 models familly and langchain/deepagents javascript library #1385

@kotekpsotek

Description

@kotekpsotek

Github MCP Tools aren't working with Gemini 2.5 models familly and deepagents javascript library

Code defines the mcp tools 'retriver':

export async function getGithubMCPTools(userToken: string, config?: { beforeToolCall?: () => Promise<void> | void, afterToolCall: () => Promise<void> | void }, toolName: string = "mcpGithubTool") {
    const githubServerConfig: ClientConfig = {
        mcpServers: {
            github: {
                transport: "http" as const,
                url: "https://api.githubcopilot.com/mcp/",
                headers: {
                    "Authorization": `Bearer ${userToken}`
                }, 
            }
        },
        beforeToolCall: config?.beforeToolCall,
        afterToolCall: config?.afterToolCall,
        additionalToolNamePrefix: toolName
    };

    // Initialize the client
    const mcpClient = new MultiServerMCPClient(githubServerConfig);
    await mcpClient.initializeConnections();

    // Load the tools exposed by the GitHub server
    const githubMCPTools = await mcpClient.getTools();
    

    console.log('Tools', githubMCPTools)

    // Returns
    return githubMCPTools;
}

Error Trace:

Error occured while computing the Deep agents outcome GoogleGenerativeAIFetchError: Error in middleware "todoListMiddleware": Error in middleware "FilesystemMiddleware": Error in middleware "PromptCachingMiddleware": [GoogleGenerativeAI Error]: Error fetching from https://generativelanguage.googleapis.com/v1beta/models/gemini-2.5-flash:generateContent: [400 Bad Request] Invalid JSON payload received. Unknown name "lc" at 'tools[0]': Cannot find field.   
Invalid JSON payload received. Unknown name "type" at 'tools[0]': Cannot find field.
Invalid JSON payload received. Unknown name "id" at 'tools[0]': Cannot find field.
Invalid JSON payload received. Unknown name "lc" at 'tools[1]': Cannot find field.
Invalid JSON payload received. Unknown name "type" at 'tools[1]': Cannot find field.
Invalid JSON payload received. Unknown name "id" at 'tools[1]': Cannot find field.
Invalid JSON payload received. Unknown name "lc" at 'tools[2]': Cannot find field.
Invalid JSON payload received. Unknown name "type" at 'tools[2]': Cannot find field.
Invalid JSON payload received. Unknown name "id" at 'tools[2]': Cannot find field.
Invalid JSON payload received. Unknown name "lc" at 'tools[3]': Cannot find field.
Invalid JSON payload received. Unknown name "type" at 'tools[3]': Cannot find field.
Invalid JSON payload received. Unknown name "id" at 'tools[3]': Cannot find field.
Invalid JSON payload received. Unknown name "lc" at 'tools[4]': Cannot find field.
Invalid JSON payload received. Unknown name "type" at 'tools[4]': Cannot find field.
Invalid JSON payload received. Unknown name "id" at 'tools[4]': Cannot find field.
Invalid JSON payload received. Unknown name "lc" at 'tools[5]': Cannot find field.
Invalid JSON payload received. Unknown name "type" at 'tools[5]': Cannot find field.
Invalid JSON payload received. Unknown name "id" at 'tools[5]': Cannot find field.
Invalid JSON payload received. Unknown name "lc" at 'tools[6]': Cannot find field.
Invalid JSON payload received. Unknown name "type" at 'tools[6]': Cannot find field.
Invalid JSON payload received. Unknown name "id" at 'tools[6]': Cannot find field.
Invalid JSON payload received. Unknown name "lc" at 'tools[7]': Cannot find field.
Invalid JSON payload received. Unknown name "type" at 'tools[7]': Cannot find field.
Invalid JSON payload received. Unknown name "id" at 'tools[7]': Cannot find field.
Invalid JSON payload received. Unknown name "lc" at 'tools[8]': Cannot find field.
Invalid JSON payload received. Unknown name "type" at 'tools[8]': Cannot find field.
Invalid JSON payload received. Unknown name "id" at 'tools[8]': Cannot find field.
Invalid JSON payload received. Unknown name "lc" at 'tools[9]': Cannot find field.
Invalid JSON payload received. Unknown name "type" at 'tools[9]': Cannot find field.
Invalid JSON payload received. Unknown name "id" at 'tools[9]': Cannot find field.
Invalid JSON payload received. Unknown name "lc" at 'tools[10]': Cannot find field.
Invalid JSON payload received. Unknown name "type" at 'tools[10]': Cannot find field.
Invalid JSON payload received. Unknown name "id" at 'tools[10]': Cannot find field.
Invalid JSON payload received. Unknown name "lc" at 'tools[11]': Cannot find field.
Invalid JSON payload received. Unknown name "type" at 'tools[11]': Cannot find field.
Invalid JSON payload received. Unknown name "id" at 'tools[11]': Cannot find field.
Invalid JSON payload received. Unknown name "lc" at 'tools[12]': Cannot find field.
Invalid JSON payload received. Unknown name "type" at 'tools[12]': Cannot find field.
Invalid JSON payload received. Unknown name "id" at 'tools[12]': Cannot find field.
Invalid JSON payload received. Unknown name "lc" at 'tools[13]': Cannot find field.
Invalid JSON payload received. Unknown name "type" at 'tools[13]': Cannot find field.
Invalid JSON payload received. Unknown name "id" at 'tools[13]': Cannot find field.
Invalid JSON payload received. Unknown name "lc" at 'tools[14]': Cannot find field.
Invalid JSON payload received. Unknown name "type" at 'tools[14]': Cannot find field.
Invalid JSON payload received. Unknown name "id" at 'tools[14]': Cannot find field.
Invalid JSON payload received. Unknown name "lc" at 'tools[15]': Cannot find field.
Invalid JSON payload received. Unknown name "type" at 'tools[15]': Cannot find field.
Invalid JSON payload received. Unknown name "id" at 'tools[15]': Cannot find field.
Invalid JSON payload received. Unknown name "lc" at 'tools[16]': Cannot find field.
Invalid JSON payload received. Unknown name "type" at 'tools[16]': Cannot find field.
Invalid JSON payload received. Unknown name "id" at 'tools[16]': Cannot find field.
Invalid JSON payload received. Unknown name "lc" at 'tools[17]': Cannot find field.
Invalid JSON payload received. Unknown name "type" at 'tools[17]': Cannot find field.
Invalid JSON payload received. Unknown name "id" at 'tools[17]': Cannot find field.
Invalid JSON payload received. Unknown name "lc" at 'tools[18]': Cannot find field.
Invalid JSON payload received. Unknown name "type" at 'tools[18]': Cannot find field.
Invalid JSON payload received. Unknown name "id" at 'tools[18]': Cannot find field.
Invalid JSON payload received. Unknown name "lc" at 'tools[19]': Cannot find field.
Invalid JSON payload received. Unknown name "type" at 'tools[19]': Cannot find field.
Invalid JSON payload received. Unknown name "id" at 'tools[19]': Cannot find field.
Invalid JSON payload received. Unknown name "lc" at 'tools[20]': Cannot find field.
Invalid JSON payload received. Unknown name "type" at 'tools[20]': Cannot find field.
Invalid JSON payload received. Unknown name "id" at 'tools[20]': Cannot find field.
Invalid JSON payload received. Unknown name "lc" at 'tools[21]': Cannot find field.
Invalid JSON payload received. Unknown name "type" at 'tools[21]': Cannot find field.
Invalid JSON payload received. Unknown name "id" at 'tools[21]': Cannot find field.
Invalid JSON payload received. Unknown name "lc" at 'tools[22]': Cannot find field.
Invalid JSON payload received. Unknown name "type" at 'tools[22]': Cannot find field.
Invalid JSON payload received. Unknown name "id" at 'tools[22]': Cannot find field.
Invalid JSON payload received. Unknown name "lc" at 'tools[23]': Cannot find field.
Invalid JSON payload received. Unknown name "type" at 'tools[23]': Cannot find field.
Invalid JSON payload received. Unknown name "id" at 'tools[23]': Cannot find field.
Invalid JSON payload received. Unknown name "lc" at 'tools[24]': Cannot find field.
Invalid JSON payload received. Unknown name "type" at 'tools[24]': Cannot find field.
Invalid JSON payload received. Unknown name "id" at 'tools[24]': Cannot find field.
Invalid JSON payload received. Unknown name "lc" at 'tools[25]': Cannot find field.
Invalid JSON payload received. Unknown name "type" at 'tools[25]': Cannot find field.
Invalid JSON payload received. Unknown name "id" at 'tools[25]': Cannot find field.
Invalid JSON payload received. Unknown name "lc" at 'tools[26]': Cannot find field.
Invalid JSON payload received. Unknown name "type" at 'tools[26]': Cannot find field.
Invalid JSON payload received. Unknown name "id" at 'tools[26]': Cannot find field.
Invalid JSON payload received. Unknown name "lc" at 'tools[27]': Cannot find field.
Invalid JSON payload received. Unknown name "type" at 'tools[27]': Cannot find field.
Invalid JSON payload received. Unknown name "id" at 'tools[27]': Cannot find field.
Invalid JSON payload received. Unknown name "lc" at 'tools[28]': Cannot find field.
Invalid JSON payload received. Unknown name "type" at 'tools[28]': Cannot find field.
Invalid JSON payload received. Unknown name "id" at 'tools[28]': Cannot find field.
Invalid JSON payload received. Unknown name "lc" at 'tools[29]': Cannot find field.
Invalid JSON payload received. Unknown name "type" at 'tools[29]': Cannot find field.
Invalid JSON payload received. Unknown name "id" at 'tools[29]': Cannot find field.
Invalid JSON payload received. Unknown name "lc" at 'tools[30]': Cannot find field.
Invalid JSON payload received. Unknown name "type" at 'tools[30]': Cannot find field.
Invalid JSON payload received. Unknown name "id" at 'tools[30]': Cannot find field.
Invalid JSON payload received. Unknown name "lc" at 'tools[31]': Cannot find field.
Invalid JSON payload received. Unknown name "type" at 'tools[31]': Cannot find field.
Invalid JSON payload received. Unknown name "id" at 'tools[31]': Cannot find field.
Invalid JSON payload received. Unknown name "lc" at 'tools[32]': Cannot find field.
Invalid JSON payload received. Unknown name "type" at 'tools[32]': Cannot find field.
Invalid JSON payload received. Unknown name "id" at 'tools[32]': Cannot find field.
Invalid JSON payload received. Unknown name "lc" at 'tools[33]': Cannot find field.
Invalid JSON payload received. Unknown name "type" at 'tools[33]': Cannot find field.
Invalid JSON payload received. Unknown name "id" at 'tools[33]': Cannot find field.
Invalid JSON payload received. Unknown name "lc" at 'tools[34]': Cannot find field.
Invalid JSON payload received. Unknown name "type" at 'tools[34]': Cannot find field.
Invalid JSON payload received. Unknown name "id" at 'tools[34]': Cannot find field.
Invalid JSON payload received. Unknown name "lc" at 'tools[35]': Cannot find field.
Invalid JSON payload received. Unknown name "type" at 'tools[35]': Cannot find field.
Invalid JSON payload received. Unknown name "id" at 'tools[35]': Cannot find field.
Invalid JSON payload received. Unknown name "lc" at 'tools[36]': Cannot find field.
Invalid JSON payload received. Unknown name "type" at 'tools[36]': Cannot find field.
Invalid JSON payload received. Unknown name "id" at 'tools[36]': Cannot find field.
Invalid JSON payload received. Unknown name "lc" at 'tools[37]': Cannot find field.
Invalid JSON payload received. Unknown name "type" at 'tools[37]': Cannot find field.
Invalid JSON payload received. Unknown name "id" at 'tools[37]': Cannot find field.
Invalid JSON payload received. Unknown name "lc" at 'tools[38]': Cannot find field.
Invalid JSON payload received. Unknown name "type" at 'tools[38]': Cannot find field.
Invalid JSON payload received. Unknown name "id" at 'tools[38]': Cannot find field.
Invalid JSON payload received. Unknown name "lc" at 'tools[39]': Cannot find field.
Invalid JSON payload received. Unknown name "type" at 'tools[39]': Cannot find field.
Invalid JSON payload received. Unknown name "id" at 'tools[39]': Cannot find field. [{"@type":"type.googleapis.com/google.rpc.BadRequest","fieldViolations":[{"field":"tools[0]","description":"Invalid JSON payload received. Unknown name \"lc\" at 'tools[0]': Cannot find field."},{"field":"tools[0]","description":"Invalid JSON payload received. Unknown name \"type\" at 'tools[0]': Cannot find field."},{"field":"tools[0]","description":"Invalid JSON payload received. Unknown name \"id\" at 'tools[0]': Cannot find field."},{"field":"tools[1]","description":"Invalid JSON payload received. Unknown name \"lc\" at 'tools[1]': Cannot find field."},{"field":"tools[1]","description":"Invalid JSON payload received. Unknown name \"type\" at 'tools[1]': Cannot find field."},{"field":"tools[1]","description":"Invalid JSON payload received. Unknown name \"id\" at 'tools[1]': Cannot find field."},{"field":"tools[2]","description":"Invalid JSON payload received. Unknown name \"lc\" at 'tools[2]': Cannot find field."},{"field":"tools[2]","description":"Invalid JSON payload received. Unknown name \"type\" at 'tools[2]': Cannot find field."},{"field":"tools[2]","description":"Invalid JSON payload received. Unknown name \"id\" at 'tools[2]': Cannot find field."},{"field":"tools[3]","description":"Invalid JSON payload received. Unknown name \"lc\" at 'tools[3]': Cannot find field."},{"field":"tools[3]","description":"Invalid JSON payload received. Unknown name \"type\" at 'tools[3]': Cannot find field."},{"field":"tools[3]","description":"Invalid JSON payload received. Unknown name \"id\" at 'tools[3]': Cannot find field."},{"field":"tools[4]","description":"Invalid JSON payload received. Unknown name \"lc\" at 'tools[4]': Cannot find field."},{"field":"tools[4]","description":"Invalid JSON payload received. Unknown name \"type\" at 'tools[4]': Cannot find field."},{"field":"tools[4]","description":"Invalid JSON payload received. Unknown name \"id\" at 'tools[4]': Cannot find field."},{"field":"tools[5]","description":"Invalid JSON payload received. Unknown name \"lc\" at 'tools[5]': Cannot find field."},{"field":"tools[5]","description":"Invalid JSON payload received. Unknown name \"type\" at 'tools[5]': Cannot find field."},{"field":"tools[5]","description":"Invalid JSON payload received. Unknown name \"id\" at 'tools[5]': Cannot find field."},{"field":"tools[6]","description":"Invalid JSON payload received. Unknown name \"lc\" at 'tools[6]': Cannot find field."},{"field":"tools[6]","description":"Invalid JSON payload received. Unknown name \"type\" at 'tools[6]': Cannot find field."},{"field":"tools[6]","description":"Invalid JSON payload received. Unknown name \"id\" at 'tools[6]': Cannot find field."},{"field":"tools[7]","description":"Invalid JSON payload received. Unknown name \"lc\" at 'tools[7]': Cannot find field."},{"field":"tools[7]","description":"Invalid JSON payload received. Unknown name \"type\" at 'tools[7]': Cannot find field."},{"field":"tools[7]","description":"Invalid JSON payload received. Unknown name \"id\" at 'tools[7]': Cannot find field."},{"field":"tools[8]","description":"Invalid JSON payload received. Unknown name \"lc\" at 'tools[8]': Cannot find field."},{"field":"tools[8]","description":"Invalid JSON payload received. Unknown name \"type\" at 'tools[8]': Cannot find field."},{"field":"tools[8]","description":"Invalid JSON payload received. Unknown name \"id\" at 'tools[8]': Cannot find field."},{"field":"tools[9]","description":"Invalid JSON payload received. Unknown name \"lc\" at 'tools[9]': Cannot find field."},{"field":"tools[9]","description":"Invalid JSON payload received. Unknown name \"type\" at 'tools[9]': Cannot find field."},{"field":"tools[9]","description":"Invalid JSON payload received. Unknown name \"id\" at 'tools[9]': Cannot find field."},{"field":"tools[10]","description":"Invalid JSON payload received. Unknown name \"lc\" at 'tools[10]': Cannot find field."},{"field":"tools[10]","description":"Invalid JSON payload received. Unknown name \"type\" at 'tools[10]': Cannot find field."},{"field":"tools[10]","description":"Invalid JSON payload received. Unknown name \"id\" at 'tools[10]': Cannot find field."},{"field":"tools[11]","description":"Invalid JSON payload received. Unknown name \"lc\" at 'tools[11]': Cannot find field."},{"field":"tools[11]","description":"Invalid JSON payload received. Unknown name \"type\" at 'tools[11]': Cannot find field."},{"field":"tools[11]","description":"Invalid JSON payload received. Unknown name \"id\" at 'tools[11]': Cannot find field."},{"field":"tools[12]","description":"Invalid JSON payload received. Unknown name \"lc\" at 'tools[12]': Cannot find field."},{"field":"tools[12]","description":"Invalid JSON payload received. Unknown name \"type\" at 'tools[12]': Cannot find field."},{"field":"tools[12]","description":"Invalid JSON payload received. Unknown name \"id\" at 'tools[12]': Cannot find field."},{"field":"tools[13]","description":"Invalid JSON payload received. Unknown name \"lc\" at 'tools[13]': Cannot find field."},{"field":"tools[13]","description":"Invalid JSON payload received. Unknown name \"type\" at 'tools[13]': Cannot find field."},{"field":"tools[13]","description":"Invalid JSON payload received. Unknown name \"id\" at 'tools[13]': Cannot find field."},{"field":"tools[14]","description":"Invalid JSON payload received. Unknown name \"lc\" at 'tools[14]': Cannot find field."},{"field":"tools[14]","description":"Invalid JSON payload received. Unknown name \"type\" at 'tools[14]': Cannot find field."},{"field":"tools[14]","description":"Invalid JSON payload received. Unknown name \"id\" at 'tools[14]': Cannot find field."},{"field":"tools[15]","description":"Invalid JSON payload received. Unknown name \"lc\" at 'tools[15]': Cannot find field."},{"field":"tools[15]","description":"Invalid JSON payload received. Unknown name \"type\" at 'tools[15]': Cannot find field."},{"field":"tools[15]","description":"Invalid JSON payload received. Unknown name \"id\" at 'tools[15]': Cannot find field."},{"field":"tools[16]","description":"Invalid JSON payload received. Unknown name \"lc\" at 'tools[16]': Cannot find field."},{"field":"tools[16]","description":"Invalid JSON payload received. Unknown name \"type\" at 'tools[16]': Cannot find field."},{"field":"tools[16]","description":"Invalid JSON payload received. Unknown name \"id\" at 'tools[16]': Cannot find field."},{"field":"tools[17]","description":"Invalid JSON payload received. Unknown name \"lc\" at 'tools[17]': Cannot find field."},{"field":"tools[17]","description":"Invalid JSON payload received. Unknown name \"type\" at 'tools[17]': Cannot find field."},{"field":"tools[17]","description":"Invalid JSON payload received. Unknown name \"id\" at 'tools[17]': Cannot find field."},{"field":"tools[18]","description":"Invalid JSON payload received. Unknown name \"lc\" at 'tools[18]': Cannot find field."},{"field":"tools[18]","description":"Invalid JSON payload received. Unknown name \"type\" at 'tools[18]': Cannot find field."},{"field":"tools[18]","description":"Invalid JSON payload received. Unknown name \"id\" at 'tools[18]': Cannot find field."},{"field":"tools[19]","description":"Invalid JSON payload received. Unknown name \"lc\" at 'tools[19]': Cannot find field."},{"field":"tools[19]","description":"Invalid JSON payload received. Unknown name \"type\" at 'tools[19]': Cannot find field."},{"field":"tools[19]","description":"Invalid JSON payload received. Unknown name \"id\" at 'tools[19]': Cannot find field."},{"field":"tools[20]","description":"Invalid JSON payload received. Unknown name \"lc\" at 'tools[20]': Cannot find field."},{"field":"tools[20]","description":"Invalid JSON payload received. Unknown name \"type\" at 'tools[20]': Cannot find field."},{"field":"tools[20]","description":"Invalid JSON payload received. Unknown name \"id\" at 'tools[20]': Cannot find field."},{"field":"tools[21]","description":"Invalid JSON payload received. Unknown name \"lc\" at 'tools[21]': Cannot find field."},{"field":"tools[21]","description":"Invalid JSON payload received. Unknown name \"type\" at 'tools[21]': Cannot find field."},{"field":"tools[21]","description":"Invalid JSON payload received. Unknown name \"id\" at 'tools[21]': Cannot find field."},{"field":"tools[22]","description":"Invalid JSON payload received. Unknown name \"lc\" at 'tools[22]': Cannot find field."},{"field":"tools[22]","description":"Invalid JSON payload received. Unknown name \"type\" at 'tools[22]': Cannot find field."},{"field":"tools[22]","description":"Invalid JSON payload received. Unknown name \"id\" at 'tools[22]': Cannot find field."},{"field":"tools[23]","description":"Invalid JSON payload received. Unknown name \"lc\" at 'tools[23]': Cannot find field."},{"field":"tools[23]","description":"Invalid JSON payload received. Unknown name \"type\" at 'tools[23]': Cannot find field."},{"field":"tools[23]","description":"Invalid JSON payload received. Unknown name \"id\" at 'tools[23]': Cannot find field."},{"field":"tools[24]","description":"Invalid JSON payload received. Unknown name \"lc\" at 'tools[24]': Cannot find field."},{"field":"tools[24]","description":"Invalid JSON payload received. Unknown name \"type\" at 'tools[24]': Cannot find field."},{"field":"tools[24]","description":"Invalid JSON payload received. Unknown name \"id\" at 'tools[24]': Cannot find field."},{"field":"tools[25]","description":"Invalid JSON payload received. Unknown name \"lc\" at 'tools[25]': Cannot find field."},{"field":"tools[25]","description":"Invalid JSON payload received. Unknown name \"type\" at 'tools[25]': Cannot find field."},{"field":"tools[25]","description":"Invalid JSON payload received. Unknown name \"id\" at 'tools[25]': Cannot find field."},{"field":"tools[26]","description":"Invalid JSON payload received. Unknown name \"lc\" at 'tools[26]': Cannot find field."},{"field":"tools[26]","description":"Invalid JSON payload received. Unknown name \"type\" at 'tools[26]': Cannot find field."},{"field":"tools[26]","description":"Invalid JSON payload received. Unknown name \"id\" at 'tools[26]': Cannot find field."},{"field":"tools[27]","description":"Invalid JSON payload received. Unknown name \"lc\" at 'tools[27]': Cannot find field."},{"field":"tools[27]","description":"Invalid JSON payload received. Unknown name \"type\" at 'tools[27]': Cannot find field."},{"field":"tools[27]","description":"Invalid JSON payload received. Unknown name \"id\" at 'tools[27]': Cannot find field."},{"field":"tools[28]","description":"Invalid JSON payload received. Unknown name \"lc\" at 'tools[28]': Cannot find field."},{"field":"tools[28]","description":"Invalid JSON payload received. Unknown name \"type\" at 'tools[28]': Cannot find field."},{"field":"tools[28]","description":"Invalid JSON payload received. Unknown name \"id\" at 'tools[28]': Cannot find field."},{"field":"tools[29]","description":"Invalid JSON payload received. Unknown name \"lc\" at 'tools[29]': Cannot find field."},{"field":"tools[29]","description":"Invalid JSON payload received. Unknown name \"type\" at 'tools[29]': Cannot find field."},{"field":"tools[29]","description":"Invalid JSON payload received. Unknown name \"id\" at 'tools[29]': Cannot find field."},{"field":"tools[30]","description":"Invalid JSON payload received. Unknown name \"lc\" at 'tools[30]': Cannot find field."},{"field":"tools[30]","description":"Invalid JSON payload received. Unknown name \"type\" at 'tools[30]': Cannot find field."},{"field":"tools[30]","description":"Invalid JSON payload received. Unknown name \"id\" at 'tools[30]': Cannot find field."},{"field":"tools[31]","description":"Invalid JSON payload received. Unknown name \"lc\" at 'tools[31]': Cannot find field."},{"field":"tools[31]","description":"Invalid JSON payload received. Unknown name \"type\" at 'tools[31]': Cannot find field."},{"field":"tools[31]","description":"Invalid JSON payload received. Unknown name \"id\" at 'tools[31]': Cannot find field."},{"field":"tools[32]","description":"Invalid JSON payload received. Unknown name \"lc\" at 'tools[32]': Cannot find field."},{"field":"tools[32]","description":"Invalid JSON payload received. Unknown name \"type\" at 'tools[32]': Cannot find field."},{"field":"tools[32]","description":"Invalid JSON payload received. Unknown name \"id\" at 'tools[32]': Cannot find field."},{"field":"tools[33]","description":"Invalid JSON payload received. Unknown name \"lc\" at 'tools[33]': Cannot find field."},{"field":"tools[33]","description":"Invalid JSON payload received. Unknown name \"type\" at 'tools[33]': Cannot find field."},{"field":"tools[33]","description":"Invalid JSON payload received. Unknown name \"id\" at 'tools[33]': Cannot find field."},{"field":"tools[34]","description":"Invalid JSON payload received. Unknown name \"lc\" at 'tools[34]': Cannot find field."},{"field":"tools[34]","description":"Invalid JSON payload received. Unknown name \"type\" at 'tools[34]': Cannot find field."},{"field":"tools[34]","description":"Invalid JSON payload received. Unknown name \"id\" at 'tools[34]': Cannot find field."},{"field":"tools[35]","description":"Invalid JSON payload received. Unknown name \"lc\" at 'tools[35]': Cannot find field."},{"field":"tools[35]","description":"Invalid JSON payload received. Unknown name \"type\" at 'tools[35]': Cannot find field."},{"field":"tools[35]","description":"Invalid JSON payload received. Unknown name \"id\" at 'tools[35]': Cannot find field."},{"field":"tools[36]","description":"Invalid JSON payload received. Unknown name \"lc\" at 'tools[36]': Cannot find field."},{"field":"tools[36]","description":"Invalid JSON payload received. Unknown name \"type\" at 'tools[36]': Cannot find field."},{"field":"tools[36]","description":"Invalid JSON payload received. Unknown name \"id\" at 'tools[36]': Cannot find field."},{"field":"tools[37]","description":"Invalid JSON payload received. Unknown name \"lc\" at 'tools[37]': Cannot find field."},{"field":"tools[37]","description":"Invalid JSON payload received. Unknown name \"type\" at 'tools[37]': Cannot find field."},{"field":"tools[37]","description":"Invalid JSON payload received. Unknown name \"id\" at 'tools[37]': Cannot find field."},{"field":"tools[38]","description":"Invalid JSON payload received. Unknown name \"lc\" at 'tools[38]': Cannot find field."},{"field":"tools[38]","description":"Invalid JSON payload received. Unknown name \"type\" at 'tools[38]': Cannot find field."},{"field":"tools[38]","description":"Invalid JSON payload received. Unknown name \"id\" at 'tools[38]': Cannot find field."},{"field":"tools[39]","description":"Invalid JSON payload received. Unknown name \"lc\" at 'tools[39]': Cannot find field."},{"field":"tools[39]","description":"Invalid JSON payload received. Unknown name \"type\" at 'tools[39]': Cannot find field."},{"field":"tools[39]","description":"Invalid JSON payload received. Unknown name \"id\" at 'tools[39]': Cannot find field."}]}]
    at handleResponseNotOk (C:\x\node_modules\@langchain\google-genai\node_modules\@google\generative-ai\dist\index.js:434:11)
    at processTicksAndRejections (node:internal/process/task_queues:95:5)
    at makeRequest (C:\x\node_modules\@langchain\google-genai\node_modules\@google\generative-ai\dist\index.js:403:9)
    at generateContent (C:\x\node_modules\@langchain\google-genai\node_modules\@google\generative-ai\dist\index.js:867:22)
    at C:\Users\x\node_modules\@langchain\google-genai\src\chat_models.ts:984:18
    at RetryOperation._fn (C:\x\node_modules\p-retry\index.js:50:12) {
  status: 400,
  statusText: 'Bad Request',
  errorDetails: [
    {
      '@type': 'type.googleapis.com/google.rpc.BadRequest',
      fieldViolations: [Array]
    }
  ],
  attemptNumber: 1,
  retriesLeft: 6,
  pregelTaskId: 'some_id_idk_what_sb_can_do_with_it'
}

While console.log prints:

[
 DynamicStructuredTool {
    lc_serializable: false,
    lc_kwargs: {
      name: 'mcpGithubTool__update_pull_request',
      description: 'Update an existing pull request in a GitHub repository.',
      schema: [Object],
      responseFormat: 'content_and_artifact',
      metadata: [Object],
      defaultConfig: undefined,
      func: [AsyncFunction: func]
    },
    lc_runnable: true,
    name: 'mcpGithubTool__update_pull_request',
    verbose: false,
    callbacks: undefined,
    tags: [],
    metadata: { annotations: [Object] },
    returnDirect: false,
    verboseParsingErrors: false,
    responseFormat: 'content_and_artifact',
    defaultConfig: undefined,
    description: 'Update an existing pull request in a GitHub repository.',
    func: [AsyncFunction: func],
    schema: { type: 'object', properties: [Object], required: [Array] }
  },
  DynamicStructuredTool {
    lc_serializable: false,
    lc_kwargs: {
      name: 'mcpGithubTool__update_pull_request_branch',
      description: 'Update the branch of a pull request with the latest changes from the base branch.',
      schema: [Object],
      responseFormat: 'content_and_artifact',
      metadata: [Object],
      defaultConfig: undefined,
      func: [AsyncFunction: func]
    },
    lc_runnable: true,
    name: 'mcpGithubTool__update_pull_request_branch',
    verbose: false,
    callbacks: undefined,
    tags: [],
    metadata: { annotations: [Object] },
    returnDirect: false,
    verboseParsingErrors: false,
    responseFormat: 'content_and_artifact',
    defaultConfig: undefined,
    description: 'Update the branch of a pull request with the latest changes from the base branch.',
    func: [AsyncFunction: func],
    schema: { type: 'object', properties: [Object], required: [Array] }
  },
  ...and_so_on
]

The error is on side of Google.
Has somebody the working solution will make the tools executable? since this:

export async function getGithubMCPTools(userToken: string, config?: { beforeToolCall?: () => Promise<void> | void, afterToolCall: () => Promise<void> | void }, toolName: string = "mcpGithubTool") {
    const githubServerConfig: ClientConfig = {
        mcpServers: {
            github: {
                transport: "http" as const,
                url: "https://api.githubcopilot.com/mcp/",
                headers: {
                    "Authorization": `Bearer ${userToken}`
                }, 
            }
        },
        beforeToolCall: config?.beforeToolCall,
        afterToolCall: config?.afterToolCall,
        additionalToolNamePrefix: toolName
    };

    // Initialize the client
    const mcpClient = new MultiServerMCPClient(githubServerConfig);
    await mcpClient.initializeConnections();

    // Load the tools exposed by the GitHub server
    const githubMCPTools = await mcpClient.getTools();
    const formattedFunctionDeclarations = githubMCPTools.map(tool => {
        const sanitizedSchema = sanitizeSchema(tool.schema);
        
        return {
            name: tool.name,
            description: tool.description,
            parameters: sanitizedSchema, 
        };
    });

    // 2. Wrap the array of formatted tools in the final structure Gemini expects.
    const geminiFormattedTools = [{
        functionDeclarations: formattedFunctionDeclarations
    }];

    // --- END: NEW FORMATTING LOGIC ---

    console.log('Final formatted tools for Gemini:', JSON.stringify(geminiFormattedTools, null, 2));

    // Return the correctly structured and wrapped tools
    return {
        executableTools: githubMCPTools,
        formattedToolsForGemini: geminiFormattedTools
    };
}

is the solution but tools aren't executable anymore

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions