Skip to main content
Glama

Generate content (Gemini-compatible)

create_gemini_content

Generate content with Gemini models using a structured request schema. Provide model and conversation contents to obtain responses, supporting tools, safety settings, and generation configs.

Instructions

Generates content using the Gemini GenerateContent request shape. The model details must advertise Gemini requests and the model must be available. ProtoJSON lowerCamelCase and original proto snake_case field names are preserved. Unknown fields are accepted on a best-effort basis; model-specific support is not guaranteed. Authentication: Use ?key= query parameter, x-goog-api-key header, or Authorization: Bearer header.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
modelYesModel name (e.g., gemini-2.5-pro)
toolsNoGemini tools. Tool types and combinations are interpreted by the selected service.
contentsYesConversation contents
toolConfigNoGemini tool configuration such as functionCallingConfig.
tool_configNoOriginal proto field-name spelling of toolConfig.
cachedContentNoGemini cached content resource name for compatible models.
cached_contentNoOriginal proto field-name spelling of cachedContent.
safetySettingsNo
safety_settingsNoOriginal proto field-name spelling of safetySettings.
generationConfigNo
generation_configNoOriginal proto field-name spelling of generationConfig.
systemInstructionNo
system_instructionNoOriginal proto field-name spelling of systemInstruction.
X-TokenLab-Delivery-PolicyNoPer-request Delivery policy. Overrides the API key and Workspace defaults. Auto tries TokenLab Veri…

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed1 schema field changedv0.6.26
    • changedInput schema / properties / generationConfig / properties / responseModalities / description
      Previous value: -"Requested output modalities for compatible native Gemini routes."New value: +"Requested output modalities for supported Gemini models."
  2. Changed1 schema field changedv0.6.24
    • addedInput schema / properties / X-TokenLab-Delivery-Policy
      Added value: +{
      +  "description": "Per-request Delivery policy. Overrides the API key and Workspace defaults. Auto tries TokenLab Veri…",
      +  "enum": [
      +    "auto",
      +    "verified",
      +    "official"
      +  ],
      +  "type": "string"
      +}
  3. Changed58 schema fields changedv0.6.4
    • removedInput schema / $schema
      Removed value: -"http://json-schema.org/draft-07/schema#"
    • addedInput schema / properties / cached_content
      Added value: +{
      +  "description": "Original proto field-name spelling of cachedContent.",
      +  "type": "string"
      +}
    • removedInput schema / properties / contents / items / additionalProperties
      Removed value: -{}
    • removedInput schema / properties / contents / items / properties / parts / items / anyOf
      Removed value: -[
      -  {
      -    "additionalProperties": {},
      -    "properties": {
      -      "text": {
      -        "type": "string"
      -      }
      -    },
      -    "type": "object"
      -  },
      -  {
      -    "additionalProperties": {},
      -    "properties": {
      -      "inlineData": {
      -        "additionalProperties": {},
      -        "properties": {
      -          "data": {
      -            "type": "string"
      -          },
      -          "mimeType": {
      -            "type": "string"
      -          }
      -        },
      -        "type": "object"
      -      }
      -    },
      -    "type": "object"
      -  },
      -  {
      -    "additionalProperties": {},
      -    "properties": {
      -      "inline_data": {
      -        "additionalProperties": {},
      -        "properties": {
      -          "data": {
      -            "type": "string"
      -          },
      -          "mime_type": {
      -            "type": "string"
      -          }
      -        },
      -        "type": "object"
      -      }
      -    },
      -    "type": "object"
      -  },
      -  {
      -    "additionalProperties": {},
      -    "properties": {
      -      "fileData": {
      -        "additionalProperties": {},
      -        "properties": {
      -          "fileUri": {
      -            "type": "string"
      -          },
      -          "mimeType": {
      -            "type": "string"
      -          }
      -        },
      -        "type": "object"
      -      }
      -    },
      -    "type": "object"
      -  },
      -  {
      -    "additionalProperties": {},
      -    "properties": {
      -      "file_data": {
      -        "additionalProperties": {},
      -        "properties": {
      -          "file_uri": {
      -            "type": "string"
      -          },
      -          "mime_type": {
      -            "type": "string"
      -          }
      -        },
      -        "type": "object"
      -      }
      -    },
      -    "type": "object"
      -  },
      -  {
      -    "additionalProperties": {},
      -    "properties": {
      -      "videoMetadata": {
      -        "additionalProperties": {},
      -        "properties": {},
      -        "type": "object"
      -      }
      -    },
      -    "type": "object"
      -  },
      -  {
      -    "additionalProperties": {},
      -    "properties": {
      -      "video_metadata": {
      -        "additionalProperties": {},
      -        "properties": {},
      -        "type": "object"
      -      }
      -    },
      -    "type": "object"
      -  },
      -  {
      -    "additionalProperties": {},
      -    "properties": {
      -      "thought": {
      -        "type": "boolean"
      -      },
      -      "thoughtSignature": {
      -        "type": "string"
      -      },
      -      "thought_signature": {
      -        "type": "string"
      -      }
      -    },
      -    "type": "object"
      -  },
      -  {
      -    "additionalProperties": {},
      -    "properties": {
      -      "functionCall": {
      -        "additionalProperties": {},
      -        "properties": {},
      -        "type": "object"
      -      }
      -    },
      -    "type": "object"
      -  },
      -  {
      -    "additionalProperties": {},
      -    "properties": {
      -      "functionResponse": {
      -        "additionalProperties": {},
      -        "properties": {},
      -        "type": "object"
      -      }
      -    },
      -    "type": "object"
      -  },
      -  {
      -    "additionalProperties": {},
      -    "properties": {
      -      "executableCode": {
      -        "additionalProperties": {},
      -        "properties": {},
      -        "type": "object"
      -      }
      -    },
      -    "type": "object"
      -  },
      -  {
      -    "additionalProperties": {},
      -    "properties": {
      -      "codeExecutionResult": {
      -        "additionalProperties": {},
      -        "properties": {},
      -        "type": "object"
      -      }
      -    },
      -    "type": "object"
      -  },
      -  {
      -    "additionalProperties": {},
      -    "properties": {
      -      "function_call": {
      -        "additionalProperties": {},
      -        "properties": {},
      -        "type": "object"
      -      }
      -    },
      -    "type": "object"
      -  },
      -  {
      -    "additionalProperties": {},
      -    "properties": {
      -      "function_response": {
      -        "additionalProperties": {},
      -        "properties": {},
      -        "type": "object"
      -      }
      -    },
      -    "type": "object"
      -  },
      -  {
      -    "additionalProperties": {},
      -    "properties": {
      -      "executable_code": {
      -        "additionalProperties": {},
      -        "properties": {},
      -        "type": "object"
      -      }
      -    },
      -    "type": "object"
      -  },
      -  {
      -    "additionalProperties": {},
      -    "properties": {
      -      "code_execution_result": {
      -        "additionalProperties": {},
      -        "properties": {},
      -        "type": "object"
      -      }
      -    },
      -    "type": "object"
      -  }
      -]
    • removedInput schema / properties / generationConfig / additionalProperties
      Removed value: -{}
    • changedInput schema / properties / generationConfig / properties / candidateCount / description
      Previous value: -"Number of response candidates for non-streaming generation. Streaming requests must omit this field or keep it at 1."New value: +"Requested number of response candidates. Support is determined by the selected service."
    • removedInput schema / properties / generationConfig / properties / candidateCount / maximum
      Removed value: -9007199254740991
    • removedInput schema / properties / generationConfig / properties / maxOutputTokens / maximum
      Removed value: -9007199254740991
    • changedInput schema / properties / generationConfig / properties / responseSchema / additionalProperties
      Previous value: -{}New value: +true
    • removedInput schema / properties / generationConfig / properties / responseSchema / properties
      Removed value: -{}
    • changedInput schema / properties / generationConfig / properties / thinkingConfig / additionalProperties
      Previous value: -{}New value: +true
    • removedInput schema / properties / generationConfig / properties / thinkingConfig / properties / thinkingBudget / maximum
      Removed value: -9007199254740991
    • removedInput schema / properties / generationConfig / properties / thinkingConfig / properties / thinkingBudget / minimum
      Removed value: --9007199254740991
    • changedInput schema / properties / generationConfig / properties / thinking_config / additionalProperties
      Previous value: -{}New value: +true
    • removedInput schema / properties / generationConfig / properties / thinking_config / properties / thinking_budget / maximum
      Removed value: -9007199254740991
    • removedInput schema / properties / generationConfig / properties / thinking_config / properties / thinking_budget / minimum
      Removed value: --9007199254740991
    • removedInput schema / properties / generationConfig / properties / topK / maximum
      Removed value: -9007199254740991
    • addedInput schema / properties / generation_config
      Added value: +{
      +  "additionalProperties": true,
      +  "description": "Original proto field-name spelling of generationConfig.",
      +  "type": "object"
      +}
    • removedInput schema / properties / safetySettings / items / additionalProperties
      Removed value: -{}
    • addedInput schema / properties / safety_settings
      Added value: +{
      +  "description": "Original proto field-name spelling of safetySettings.",
      +  "items": {
      +    "additionalProperties": true,
      +    "type": "object"
      +  },
      +  "type": "array"
      +}
    • removedInput schema / properties / systemInstruction / additionalProperties
      Removed value: -{}
    • removedInput schema / properties / systemInstruction / properties / parts / items / additionalProperties
      Removed value: -{}
    • removedInput schema / properties / systemInstruction / properties / parts / items / properties
      Removed value: -{
      -  "text": {
      -    "type": "string"
      -  }
      -}
    • addedInput schema / properties / system_instruction
      Added value: +{
      +  "additionalProperties": true,
      +  "description": "Original proto field-name spelling of systemInstruction.",
      +  "type": "object"
      +}
    • changedInput schema / properties / toolConfig / additionalProperties
      Previous value: -{}New value: +true
    • changedInput schema / properties / toolConfig / properties / functionCallingConfig / additionalProperties
      Previous value: -{}New value: +true
    • removedInput schema / properties / toolConfig / properties / functionCallingConfig / properties / allowedFunctionNames / items / type
      Removed value: -"string"
    • changedInput schema / properties / toolConfig / properties / function_calling_config / additionalProperties
      Previous value: -{}New value: +true
    • removedInput schema / properties / toolConfig / properties / function_calling_config / properties / allowed_function_names / items / type
      Removed value: -"string"
    • addedInput schema / properties / tool_config
      Added value: +{
      +  "additionalProperties": true,
      +  "description": "Original proto field-name spelling of toolConfig.",
      +  "type": "object"
      +}
    • changedInput schema / properties / tools / description
      Previous value: -"Gemini tools. Supported tool combinations depend on the selected model and route; unsupported native image-output tool combinations are rejected before upstream retries."New value: +"Gemini tools. Tool types and combinations are interpreted by the selected service."
    • changedInput schema / properties / tools / items / additionalProperties
      Previous value: -{}New value: +true
    • removedInput schema / properties / tools / items / properties / codeExecution / additionalProperties
      Removed value: -{}
    • removedInput schema / properties / tools / items / properties / codeExecution / properties
      Removed value: -{}
    • removedInput schema / properties / tools / items / properties / code_execution / additionalProperties
      Removed value: -{}
    • removedInput schema / properties / tools / items / properties / code_execution / properties
      Removed value: -{}
    • removedInput schema / properties / tools / items / properties / computerUse / additionalProperties
      Removed value: -{}
    • removedInput schema / properties / tools / items / properties / computerUse / properties
      Removed value: -{}
    • removedInput schema / properties / tools / items / properties / computer_use / additionalProperties
      Removed value: -{}
    • removedInput schema / properties / tools / items / properties / computer_use / properties
      Removed value: -{}
    • removedInput schema / properties / tools / items / properties / functionDeclarations / items / additionalProperties
      Removed value: -{}
    • removedInput schema / properties / tools / items / properties / functionDeclarations / items / properties
      Removed value: -{}
    • removedInput schema / properties / tools / items / properties / functionDeclarations / items / type
      Removed value: -"object"
    • removedInput schema / properties / tools / items / properties / function_declarations / items / additionalProperties
      Removed value: -{}
    • removedInput schema / properties / tools / items / properties / function_declarations / items / properties
      Removed value: -{}
    • removedInput schema / properties / tools / items / properties / function_declarations / items / type
      Removed value: -"object"
    • removedInput schema / properties / tools / items / properties / googleSearch / additionalProperties
      Removed value: -{}
    • removedInput schema / properties / tools / items / properties / googleSearch / properties
      Removed value: -{}
    • removedInput schema / properties / tools / items / properties / googleSearchRetrieval / additionalProperties
      Removed value: -{}
    • removedInput schema / properties / tools / items / properties / googleSearchRetrieval / properties
      Removed value: -{}
    • removedInput schema / properties / tools / items / properties / google_search / additionalProperties
      Removed value: -{}
    • removedInput schema / properties / tools / items / properties / google_search / properties
      Removed value: -{}
    • removedInput schema / properties / tools / items / properties / google_search_retrieval / additionalProperties
      Removed value: -{}
    • removedInput schema / properties / tools / items / properties / google_search_retrieval / properties
      Removed value: -{}
    • removedInput schema / properties / tools / items / properties / urlContext / additionalProperties
      Removed value: -{}
    • removedInput schema / properties / tools / items / properties / urlContext / properties
      Removed value: -{}
    • removedInput schema / properties / tools / items / properties / url_context / additionalProperties
      Removed value: -{}
    • removedInput schema / properties / tools / items / properties / url_context / properties
      Removed value: -{}
  4. Changed48 schema fields changedv0.3.1
    • addedInput schema / additionalProperties
      Added value: +false
    • changedInput schema / properties / cachedContent / description
      Previous value: -"Optional cached content resource name."New value: +"Gemini cached content resource name for compatible models."
    • changedInput schema / properties / contents / description
      Previous value: -"Native Gemini conversation contents."New value: +"Conversation contents"
    • removedInput schema / properties / contents / items / properties / parts / items / additionalProperties
      Removed value: -{}
    • addedInput schema / properties / contents / items / properties / parts / items / anyOf
      Added value: +[
      +  {
      +    "additionalProperties": {},
      +    "properties": {
      +      "text": {
      +        "type": "string"
      +      }
      +    },
      +    "type": "object"
      +  },
      +  {
      +    "additionalProperties": {},
      +    "properties": {
      +      "inlineData": {
      +        "additionalProperties": {},
      +        "properties": {
      +          "data": {
      +            "type": "string"
      +          },
      +          "mimeType": {
      +            "type": "string"
      +          }
      +        },
      +        "type": "object"
      +      }
      +    },
      +    "type": "object"
      +  },
      +  {
      +    "additionalProperties": {},
      +    "properties": {
      +      "inline_data": {
      +        "additionalProperties": {},
      +        "properties": {
      +          "data": {
      +            "type": "string"
      +          },
      +          "mime_type": {
      +            "type": "string"
      +          }
      +        },
      +        "type": "object"
      +      }
      +    },
      +    "type": "object"
      +  },
      +  {
      +    "additionalProperties": {},
      +    "properties": {
      +      "fileData": {
      +        "additionalProperties": {},
      +        "properties": {
      +          "fileUri": {
      +            "type": "string"
      +          },
      +          "mimeType": {
      +            "type": "string"
      +          }
      +        },
      +        "type": "object"
      +      }
      +    },
      +    "type": "object"
      +  },
      +  {
      +    "additionalProperties": {},
      +    "properties": {
      +      "file_data": {
      +        "additionalProperties": {},
      +        "properties": {
      +          "file_uri": {
      +            "type": "string"
      +          },
      +          "mime_type": {
      +            "type": "string"
      +          }
      +        },
      +        "type": "object"
      +      }
      +    },
      +    "type": "object"
      +  },
      +  {
      +    "additionalProperties": {},
      +    "properties": {
      +      "videoMetadata": {
      +        "additionalProperties": {},
      +        "properties": {},
      +        "type": "object"
      +      }
      +    },
      +    "type": "object"
      +  },
      +  {
      +    "additionalProperties": {},
      +    "properties": {
      +      "video_metadata": {
      +        "additionalProperties": {},
      +        "properties": {},
      +        "type": "object"
      +      }
      +    },
      +    "type": "object"
      +  },
      +  {
      +    "additionalProperties": {},
      +    "properties": {
      +      "thought": {
      +        "type": "boolean"
      +      },
      +      "thoughtSignature": {
      +        "type": "string"
      +      },
      +      "thought_signature": {
      +        "type": "string"
      +      }
      +    },
      +    "type": "object"
      +  },
      +  {
      +    "additionalProperties": {},
      +    "properties": {
      +      "functionCall": {
      +        "additionalProperties": {},
      +        "properties": {},
      +        "type": "object"
      +      }
      +    },
      +    "type": "object"
      +  },
      +  {
      +    "additionalProperties": {},
      +    "properties": {
      +      "functionResponse": {
      +        "additionalProperties": {},
      +        "properties": {},
      +        "type": "object"
      +      }
      +    },
      +    "type": "object"
      +  },
      +  {
      +    "additionalProperties": {},
      +    "properties": {
      +      "executableCode": {
      +        "additionalProperties": {},
      +        "properties": {},
      +        "type": "object"
      +      }
      +    },
      +    "type": "object"
      +  },
      +  {
      +    "additionalProperties": {},
      +    "properties": {
      +      "codeExecutionResult": {
      +        "additionalProperties": {},
      +        "properties": {},
      +        "type": "object"
      +      }
      +    },
      +    "type": "object"
      +  },
      +  {
      +    "additionalProperties": {},
      +    "properties": {
      +      "function_call": {
      +        "additionalProperties": {},
      +        "properties": {},
      +        "type": "object"
      +      }
      +    },
      +    "type": "object"
      +  },
      +  {
      +    "additionalProperties": {},
      +    "properties": {
      +      "function_response": {
      +        "additionalProperties": {},
      +        "properties": {},
      +        "type": "object"
      +      }
      +    },
      +    "type": "object"
      +  },
      +  {
      +    "additionalProperties": {},
      +    "properties": {
      +      "executable_code": {
      +        "additionalProperties": {},
      +        "properties": {},
      +        "type": "object"
      +      }
      +    },
      +    "type": "object"
      +  },
      +  {
      +    "additionalProperties": {},
      +    "properties": {
      +      "code_execution_result": {
      +        "additionalProperties": {},
      +        "properties": {},
      +        "type": "object"
      +      }
      +    },
      +    "type": "object"
      +  }
      +]
    • removedInput schema / properties / contents / items / properties / parts / items / properties
      Removed value: -{}
    • removedInput schema / properties / contents / items / properties / parts / items / type
      Removed value: -"object"
    • removedInput schema / properties / contents / items / properties / parts / minItems
      Removed value: -1
    • removedInput schema / properties / contents / items / required
      Removed value: -[
      -  "parts"
      -]
    • removedInput schema / properties / contents / minItems
      Removed value: -1
    • removedInput schema / properties / generationConfig / description
      Removed value: -"Native Gemini generation configuration."
    • addedInput schema / properties / generationConfig / properties / candidateCount
      Added value: +{
      +  "description": "Number of response candidates for non-streaming generation. Streaming requests must omit this field or keep it at 1.",
      +  "maximum": 9007199254740991,
      +  "minimum": 1,
      +  "type": "integer"
      +}
    • addedInput schema / properties / generationConfig / properties / maxOutputTokens
      Added value: +{
      +  "maximum": 9007199254740991,
      +  "minimum": 1,
      +  "type": "integer"
      +}
    • addedInput schema / properties / generationConfig / properties / responseMimeType
      Added value: +{
      +  "description": "Requested output MIME type, such as text/plain or application/json.",
      +  "type": "string"
      +}
    • addedInput schema / properties / generationConfig / properties / responseModalities
      Added value: +{
      +  "description": "Requested output modalities for compatible native Gemini routes.",
      +  "items": {
      +    "type": "string"
      +  },
      +  "type": "array"
      +}
    • addedInput schema / properties / generationConfig / properties / responseSchema
      Added value: +{
      +  "additionalProperties": {},
      +  "description": "JSON schema for structured output when responseMimeType requests JSON.",
      +  "properties": {},
      +  "type": "object"
      +}
    • addedInput schema / properties / generationConfig / properties / stopSequences
      Added value: +{
      +  "items": {
      +    "type": "string"
      +  },
      +  "type": "array"
      +}
    • addedInput schema / properties / generationConfig / properties / temperature
      Added value: +{
      +  "minimum": 0,
      +  "type": "number"
      +}
    • addedInput schema / properties / generationConfig / properties / thinkingConfig
      Added value: +{
      +  "additionalProperties": {},
      +  "description": "Thinking budget options for compatible Gemini models.",
      +  "properties": {
      +    "thinkingBudget": {
      +      "maximum": 9007199254740991,
      +      "minimum": -9007199254740991,
      +      "type": "integer"
      +    }
      +  },
      +  "type": "object"
      +}
    • addedInput schema / properties / generationConfig / properties / thinking_config
      Added value: +{
      +  "additionalProperties": {},
      +  "description": "Snake-case thinking budget options for compatible Gemini models.",
      +  "properties": {
      +    "thinking_budget": {
      +      "maximum": 9007199254740991,
      +      "minimum": -9007199254740991,
      +      "type": "integer"
      +    }
      +  },
      +  "type": "object"
      +}
    • addedInput schema / properties / generationConfig / properties / topK
      Added value: +{
      +  "maximum": 9007199254740991,
      +  "minimum": 1,
      +  "type": "integer"
      +}
    • addedInput schema / properties / generationConfig / properties / topP
      Added value: +{
      +  "maximum": 1,
      +  "minimum": 0,
      +  "type": "number"
      +}
    • changedInput schema / properties / model / description
      Previous value: -"Public TokenLab Gemini-compatible model ID."New value: +"Model name (e.g., gemini-2.5-pro)"
    • removedInput schema / properties / model / minLength
      Removed value: -1
    • removedInput schema / properties / prompt
      Removed value: -{
      -  "description": "Convenience shortcut for one user text part; do not combine with contents.",
      -  "minLength": 1,
      -  "type": "string"
      -}
    • removedInput schema / properties / safetySettings / description
      Removed value: -"Native Gemini safety settings."
    • addedInput schema / properties / safetySettings / items / properties / category
      Added value: +{
      +  "type": "string"
      +}
    • addedInput schema / properties / safetySettings / items / properties / threshold
      Added value: +{
      +  "type": "string"
      +}
    • removedInput schema / properties / systemInstruction / description
      Removed value: -"Native Gemini system instruction."
    • addedInput schema / properties / systemInstruction / properties / parts
      Added value: +{
      +  "items": {
      +    "additionalProperties": {},
      +    "properties": {
      +      "text": {
      +        "type": "string"
      +      }
      +    },
      +    "type": "object"
      +  },
      +  "type": "array"
      +}
    • removedInput schema / properties / temperature
      Removed value: -{
      -  "description": "Convenience temperature setting; do not combine with generationConfig.temperature.",
      -  "minimum": 0,
      -  "type": "number"
      -}
    • changedInput schema / properties / toolConfig / description
      Previous value: -"Native Gemini tool configuration."New value: +"Gemini tool configuration such as functionCallingConfig."
    • addedInput schema / properties / toolConfig / properties / functionCallingConfig
      Added value: +{
      +  "additionalProperties": {},
      +  "properties": {
      +    "allowedFunctionNames": {
      +      "items": {
      +        "type": "string"
      +      },
      +      "type": "array"
      +    },
      +    "mode": {
      +      "type": "string"
      +    }
      +  },
      +  "type": "object"
      +}
    • addedInput schema / properties / toolConfig / properties / function_calling_config
      Added value: +{
      +  "additionalProperties": {},
      +  "properties": {
      +    "allowed_function_names": {
      +      "items": {
      +        "type": "string"
      +      },
      +      "type": "array"
      +    },
      +    "mode": {
      +      "type": "string"
      +    }
      +  },
      +  "type": "object"
      +}
    • changedInput schema / properties / tools / description
      Previous value: -"Native Gemini tools."New value: +"Gemini tools. Supported tool combinations depend on the selected model and route; unsupported native image-output tool combinations are rejected before upstream retries."
    • addedInput schema / properties / tools / items / properties / codeExecution
      Added value: +{
      +  "additionalProperties": {},
      +  "properties": {},
      +  "type": "object"
      +}
    • addedInput schema / properties / tools / items / properties / code_execution
      Added value: +{
      +  "additionalProperties": {},
      +  "properties": {},
      +  "type": "object"
      +}
    • addedInput schema / properties / tools / items / properties / computerUse
      Added value: +{
      +  "additionalProperties": {},
      +  "properties": {},
      +  "type": "object"
      +}
    • addedInput schema / properties / tools / items / properties / computer_use
      Added value: +{
      +  "additionalProperties": {},
      +  "properties": {},
      +  "type": "object"
      +}
    • addedInput schema / properties / tools / items / properties / functionDeclarations
      Added value: +{
      +  "items": {
      +    "additionalProperties": {},
      +    "properties": {},
      +    "type": "object"
      +  },
      +  "type": "array"
      +}
    • addedInput schema / properties / tools / items / properties / function_declarations
      Added value: +{
      +  "items": {
      +    "additionalProperties": {},
      +    "properties": {},
      +    "type": "object"
      +  },
      +  "type": "array"
      +}
    • addedInput schema / properties / tools / items / properties / googleSearch
      Added value: +{
      +  "additionalProperties": {},
      +  "properties": {},
      +  "type": "object"
      +}
    • addedInput schema / properties / tools / items / properties / googleSearchRetrieval
      Added value: +{
      +  "additionalProperties": {},
      +  "properties": {},
      +  "type": "object"
      +}
    • addedInput schema / properties / tools / items / properties / google_search
      Added value: +{
      +  "additionalProperties": {},
      +  "properties": {},
      +  "type": "object"
      +}
    • addedInput schema / properties / tools / items / properties / google_search_retrieval
      Added value: +{
      +  "additionalProperties": {},
      +  "properties": {},
      +  "type": "object"
      +}
    • addedInput schema / properties / tools / items / properties / urlContext
      Added value: +{
      +  "additionalProperties": {},
      +  "properties": {},
      +  "type": "object"
      +}
    • addedInput schema / properties / tools / items / properties / url_context
      Added value: +{
      +  "additionalProperties": {},
      +  "properties": {},
      +  "type": "object"
      +}
    • changedInput schema / required
      Previous value: -[
      -  "model"
      -]New value: +[
      +  "model",
      +  "contents"
      +]
  5. Changed11 schema fields changedv0.3.0
    • addedInput schema / properties / cachedContent
      Added value: +{
      +  "description": "Optional cached content resource name.",
      +  "type": "string"
      +}
    • addedInput schema / properties / contents
      Added value: +{
      +  "description": "Native Gemini conversation contents.",
      +  "items": {
      +    "additionalProperties": {},
      +    "properties": {
      +      "parts": {
      +        "items": {
      +          "additionalProperties": {},
      +          "properties": {},
      +          "type": "object"
      +        },
      +        "minItems": 1,
      +        "type": "array"
      +      },
      +      "role": {
      +        "enum": [
      +          "user",
      +          "model"
      +        ],
      +        "type": "string"
      +      }
      +    },
      +    "required": [
      +      "parts"
      +    ],
      +    "type": "object"
      +  },
      +  "minItems": 1,
      +  "type": "array"
      +}
    • addedInput schema / properties / generationConfig
      Added value: +{
      +  "additionalProperties": {},
      +  "description": "Native Gemini generation configuration.",
      +  "properties": {},
      +  "type": "object"
      +}
    • changedInput schema / properties / prompt / description
      Previous value: -"User prompt text."New value: +"Convenience shortcut for one user text part; do not combine with contents."
    • addedInput schema / properties / safetySettings
      Added value: +{
      +  "description": "Native Gemini safety settings.",
      +  "items": {
      +    "additionalProperties": {},
      +    "properties": {},
      +    "type": "object"
      +  },
      +  "type": "array"
      +}
    • addedInput schema / properties / systemInstruction
      Added value: +{
      +  "additionalProperties": {},
      +  "description": "Native Gemini system instruction.",
      +  "properties": {},
      +  "type": "object"
      +}
    • changedInput schema / properties / temperature / description
      Previous value: -"Optional Gemini generation temperature."New value: +"Convenience temperature setting; do not combine with generationConfig.temperature."
    • removedInput schema / properties / temperature / maximum
      Removed value: -2
    • addedInput schema / properties / toolConfig
      Added value: +{
      +  "additionalProperties": {},
      +  "description": "Native Gemini tool configuration.",
      +  "properties": {},
      +  "type": "object"
      +}
    • addedInput schema / properties / tools
      Added value: +{
      +  "description": "Native Gemini tools.",
      +  "items": {
      +    "additionalProperties": {},
      +    "properties": {},
      +    "type": "object"
      +  },
      +  "type": "array"
      +}
    • changedInput schema / required
      Previous value: -[
      -  "model",
      -  "prompt"
      -]New value: +[
      +  "model"
      +]
  6. First observedv0.2.0

TDQS

A4.1/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare non-readonly, open-world, non-idempotent behavior, and the description adds real value beyond that: the dual naming convention, best-effort handling of unknown fields, and three concrete authentication mechanisms. It does not mention rate limits, quotas, or error behavior, so it falls short of a 5.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Four front-loaded sentences, each carrying distinct information (contract, availability precondition, naming/unknown-field behavior, auth). The bolded Authentication block is well-placed; no filler, though the proto-naming sentence could be tightened.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a 14-parameter, deeply nested tool with no output schema, the description covers the contract, prerequisites, naming duality, and auth. It omits what the response looks like and any token/candidate limits, but given the annotations and rich schema this is close to complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

With ~79% schema coverage the schema carries most of the load, but the description explains the otherwise-puzzling duplication of parameters by stating that both lowerCamelCase and proto snake_case field names are preserved, which directly disambiguates the paired fields. That is meaningful semantics beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb+resource ('Generates content') and pins the exact request contract ('Gemini GenerateContent request shape'), which cleanly separates it from the many sibling generators (create_anthropic_message, create_chat_completion, create_response). An agent can route to it without opening the schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It gives a prerequisite ('the model details must advertise Gemini requests and the model must be available') but never states when to pick this over create_chat_completion or create_anthropic_message. Usage is implied by the Gemini-specific framing rather than spelled out.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.