Skip to content

[google-vertex-ai] Invalid JSON payload received #1473

@arturfromtabnine

Description

@arturfromtabnine

What Happened?

Gemini3.0 / Gemini 2.5 - MCP tool params failing vertex ai tool schema validation

An error occurred: {"error":{"message":"vertex-ai error: Invalid JSON payload received. Unknown name \"exclusiveMinimum\" at 'tools[0].function_declarations[8].parameters.properties[2].value': Cannot find field.","type":"INVALID_ARGUMENT","param":null,"code":"400"},"provider":"vertex-ai"}

and the reason for that the tool definition does contain unexpected prop exclusiveMinimum

        {
          "name": "Framelink_Figma_MCP_download_figma_images",
          "description": "Download SVG and PNG images used in a Figma file based on the IDs of image or icon nodes",
          "parameters": {
            "type": "object",
            "properties": {
              "fileKey": {
                "type": "string",
                "pattern": "^[a-zA-Z0-9]+$",
                "description": "The key of the Figma file containing the images"
              },
              "nodes": {
                "type": "array",
                "items": {
                  "type": "object",
                  "properties": {
                    "nodeId": {
                      "type": "string",
                      "pattern": "^I?\\d+[:|-]\\d+(?:;\\d+[:|-]\\d+)*$",
                      "description": "The ID of the Figma image node to fetch, formatted as 1234:5678"
                    },
                    "imageRef": {
                      "type": "string",
                      "description": "If a node has an imageRef fill, you must include this variable. Leave blank when downloading Vector SVG images."
                    },
                    "fileName": {
                      "type": "string",
                      "pattern": "^[a-zA-Z0-9_.-]+\\.(png|svg)$",
                      "description": "The local name for saving the fetched file, including extension. Either png or svg."
                    },
                    "needsCropping": {
                      "type": "boolean",
                      "description": "Whether this image needs cropping based on its transform matrix"
                    },
                    "cropTransform": {
                      "type": "array",
                      "items": {
                        "type": "array",
                        "items": {
                          "type": "number"
                        }
                      },
                      "description": "Figma transform matrix for image cropping"
                    },
                    "requiresImageDimensions": {
                      "type": "boolean",
                      "description": "Whether this image requires dimension information for CSS variables"
                    },
                    "filenameSuffix": {
                      "type": "string",
                      "description": "Suffix to add to filename for unique cropped images, provided in the Figma data (e.g., 'abc123')"
                    }
                  },
                  "required": [
                    "nodeId",
                    "fileName"
                  ]
                },
                "description": "The nodes to fetch as images"
              },
              "pngScale": {
                "type": "number",
                "exclusiveMinimum": 0,
                "default": 2,
                "description": "Export scale for PNG images. Optional, defaults to 2 if not specified. Affects PNG images only."
              },
              "localPath": {
                "type": "string",
                "description": "The absolute path to the directory where images are stored in the project. If the directory does not exist, it will be created. The format of this path should respect the directory format of the operating system you are running on. Don't use any special character escaping in the path name either."
              }
            },
            "required": [
              "fileKey",
              "nodes",
              "localPath"
            ]
          }
        },

after deleting this prop in

delete obj.additionalProperties;

same as for additionalProperties everything works but that does not a proper fix because any other property could cause that in the future

What Should Have Happened?

https://docs.cloud.google.com/vertex-ai/generative-ai/docs/reference/rest/v1beta1/Schema

Relevant Code Snippet

use this figma mcp in order to reproduce the issue
{
"mcpServers": {
"Framelink Figma MCP": {
"command": "npx",
"args": [
"-y",
"figma-developer-mcp",
"--figma-api-key=****",
"--stdio"
]
}
}
}

Your Twitter/LinkedIn

No response

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't workingtriage

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions