github-mcp-server icon indicating copy to clipboard operation
github-mcp-server copied to clipboard

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

Open kotekpsotek opened this issue 1 month ago • 1 comments

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

kotekpsotek avatar Nov 11 '25 04:11 kotekpsotek

Hi 👋

GitHub MCP returns the tools in the format prescribed by Model context protocol. getTools method returns tools in a format compatible with LangChain and they're supposed to be used further in langchain flow like in this example: https://github.com/langchain-ai/langchainjs/blob/main/libs/langchain-mcp-adapters/examples/filesystem_langgraph_example.ts

Can you please share the code that uses these tools including the exact call where the error occurs?

almaleksia avatar Nov 17 '25 10:11 almaleksia