{
  "service": "groqcloud",
  "displayName": "GroqCloud",
  "categories": [
    "AI",
    "Developer Tools"
  ],
  "authTypes": [
    "api_key"
  ],
  "auth": [
    {
      "type": "api_key",
      "label": "API Key",
      "placeholder": "gsk_...",
      "description": "GroqCloud API key used with the Authorization Bearer header. Get it from https://console.groq.com/keys."
    }
  ],
  "homepageUrl": "https://groq.com",
  "actions": [
    {
      "id": "groqcloud.create_chat_completion",
      "service": "groqcloud",
      "name": "create_chat_completion",
      "description": "Create a non-streaming GroqCloud OpenAI-compatible chat completion.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "model": {
            "type": "string",
            "minLength": 1,
            "description": "The GroqCloud model identifier to use."
          },
          "messages": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "role": {
                  "type": "string",
                  "enum": [
                    "system",
                    "user",
                    "assistant",
                    "tool"
                  ],
                  "description": "The role of the message author."
                },
                "content": {
                  "anyOf": [
                    {
                      "type": "string",
                      "description": "Plain text message content."
                    },
                    {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "additionalProperties": {
                          "description": "Any JSON value accepted by the upstream API."
                        },
                        "description": "Any JSON object."
                      },
                      "description": "Structured message content blocks."
                    },
                    {
                      "type": "null",
                      "description": "Null value."
                    }
                  ],
                  "description": "The message content sent to the model."
                },
                "name": {
                  "type": "string",
                  "description": "The optional participant name for the message."
                },
                "tool_call_id": {
                  "type": "string",
                  "description": "The identifier of the tool call that this tool message responds to."
                },
                "tool_calls": {
                  "type": "array",
                  "items": {
                    "type": "object",
                    "additionalProperties": {
                      "description": "Any JSON value accepted by the upstream API."
                    },
                    "description": "Any JSON object."
                  },
                  "description": "Tool calls emitted by the assistant."
                }
              },
              "additionalProperties": true,
              "required": [
                "role"
              ],
              "description": "A message in the OpenAI-compatible chat completion request."
            },
            "description": "The ordered conversation history sent to the model.",
            "minItems": 1
          },
          "frequency_penalty": {
            "type": "number",
            "minimum": -2,
            "maximum": 2,
            "description": "The frequency penalty applied to repeated tokens."
          },
          "logit_bias": {
            "type": "object",
            "additionalProperties": {
              "description": "Any JSON value accepted by the upstream API."
            },
            "description": "Any JSON object."
          },
          "logprobs": {
            "type": "boolean",
            "description": "Whether to include token-level log probabilities."
          },
          "max_completion_tokens": {
            "type": "integer",
            "minimum": 1,
            "description": "The maximum number of completion tokens to generate."
          },
          "max_tokens": {
            "type": "integer",
            "minimum": 1,
            "description": "The deprecated maximum token field accepted by OpenAI-compatible clients."
          },
          "n": {
            "type": "integer",
            "minimum": 1,
            "description": "The number of chat completions to generate."
          },
          "parallel_tool_calls": {
            "type": "boolean",
            "description": "Whether the model may call tools in parallel."
          },
          "presence_penalty": {
            "type": "number",
            "minimum": -2,
            "maximum": 2,
            "description": "The presence penalty applied to newly introduced tokens."
          },
          "response_format": {
            "type": "object",
            "properties": {
              "type": {
                "type": "string",
                "enum": [
                  "text",
                  "json_object",
                  "json_schema"
                ],
                "description": "The requested response format type."
              },
              "json_schema": {
                "type": "object",
                "additionalProperties": {
                  "description": "Any JSON value accepted by the upstream API."
                },
                "description": "Any JSON object."
              }
            },
            "additionalProperties": true,
            "description": "Response format configuration."
          },
          "seed": {
            "type": "integer",
            "description": "A seed for deterministic sampling."
          },
          "stop": {
            "anyOf": [
              {
                "type": "string",
                "description": "A single stop sequence."
              },
              {
                "type": "array",
                "items": {
                  "type": "string",
                  "description": "A stop sequence."
                },
                "description": "A list of stop sequences."
              }
            ],
            "description": "One or more sequences where generation should stop."
          },
          "stream": {
            "type": "boolean",
            "description": "Whether to request a streaming response. This connector only accepts false or an omitted value."
          },
          "temperature": {
            "type": "number",
            "minimum": 0,
            "maximum": 2,
            "description": "The sampling temperature."
          },
          "tool_choice": {
            "anyOf": [
              {
                "type": "string",
                "enum": [
                  "none",
                  "auto",
                  "required"
                ],
                "description": "A predefined tool selection mode."
              },
              {
                "type": "object",
                "additionalProperties": {
                  "description": "Any JSON value accepted by the upstream API."
                },
                "description": "Any JSON object."
              }
            ],
            "description": "Tool selection strategy for the request."
          },
          "tools": {
            "type": "array",
            "items": {
              "type": "object",
              "additionalProperties": {
                "description": "Any JSON value accepted by the upstream API."
              },
              "description": "Any JSON object."
            },
            "description": "Tools available to the model."
          },
          "top_logprobs": {
            "type": "integer",
            "minimum": 0,
            "description": "The number of top token log probabilities to include."
          },
          "top_p": {
            "type": "number",
            "minimum": 0,
            "maximum": 1,
            "description": "The nucleus sampling threshold."
          },
          "user": {
            "type": "string",
            "description": "An end-user identifier for monitoring or abuse detection."
          }
        },
        "additionalProperties": true,
        "required": [
          "model",
          "messages"
        ],
        "description": "The input payload for creating a non-streaming GroqCloud chat completion."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "The chat completion identifier."
          },
          "object": {
            "type": "string",
            "description": "The object type returned by the API."
          },
          "created": {
            "type": "integer",
            "description": "The Unix timestamp when the completion was created."
          },
          "model": {
            "type": "string",
            "description": "The model used to generate the completion."
          },
          "choices": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "index": {
                  "type": "integer",
                  "description": "The choice index."
                },
                "message": {
                  "type": "object",
                  "properties": {
                    "role": {
                      "type": "string",
                      "enum": [
                        "system",
                        "user",
                        "assistant",
                        "tool"
                      ],
                      "description": "The role of the message author."
                    },
                    "content": {
                      "anyOf": [
                        {
                          "type": "string",
                          "description": "Plain text message content."
                        },
                        {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "additionalProperties": {
                              "description": "Any JSON value accepted by the upstream API."
                            },
                            "description": "Any JSON object."
                          },
                          "description": "Structured message content blocks."
                        },
                        {
                          "type": "null",
                          "description": "Null value."
                        }
                      ],
                      "description": "The message content sent to the model."
                    },
                    "name": {
                      "type": "string",
                      "description": "The optional participant name for the message."
                    },
                    "tool_call_id": {
                      "type": "string",
                      "description": "The identifier of the tool call that this tool message responds to."
                    },
                    "tool_calls": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "additionalProperties": {
                          "description": "Any JSON value accepted by the upstream API."
                        },
                        "description": "Any JSON object."
                      },
                      "description": "Tool calls emitted by the assistant."
                    }
                  },
                  "additionalProperties": true,
                  "required": [
                    "role"
                  ],
                  "description": "A message in the OpenAI-compatible chat completion request."
                },
                "finish_reason": {
                  "anyOf": [
                    {
                      "type": "string",
                      "description": "The reason generation finished for this choice."
                    },
                    {
                      "type": "null"
                    }
                  ]
                },
                "logprobs": {
                  "anyOf": [
                    {
                      "type": "object",
                      "additionalProperties": {
                        "description": "Any JSON value accepted by the upstream API."
                      },
                      "description": "Any JSON object."
                    },
                    {
                      "type": "null"
                    }
                  ]
                }
              },
              "additionalProperties": true,
              "description": "A chat completion choice."
            },
            "description": "The generated completion choices."
          },
          "usage": {
            "type": "object",
            "properties": {
              "prompt_tokens": {
                "type": "integer",
                "description": "The number of prompt tokens consumed."
              },
              "completion_tokens": {
                "type": "integer",
                "description": "The number of completion tokens generated."
              },
              "total_tokens": {
                "type": "integer",
                "description": "The total number of tokens consumed."
              }
            },
            "additionalProperties": true,
            "description": "Token usage information."
          },
          "system_fingerprint": {
            "type": "string",
            "description": "The backend system fingerprint for the completion."
          }
        },
        "additionalProperties": true,
        "description": "The response payload for a GroqCloud chat completion."
      }
    },
    {
      "id": "groqcloud.get_model",
      "service": "groqcloud",
      "name": "get_model",
      "description": "Fetch metadata for one GroqCloud model.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "model": {
            "type": "string",
            "minLength": 1,
            "description": "The exact GroqCloud model identifier to retrieve."
          }
        },
        "additionalProperties": false,
        "description": "The input payload for retrieving a GroqCloud model."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "The model identifier."
          },
          "object": {
            "type": "string",
            "description": "The object type returned by the API."
          },
          "created": {
            "type": "integer",
            "description": "The Unix timestamp when the model was created."
          },
          "owned_by": {
            "type": "string",
            "description": "The organization that owns the model."
          },
          "active": {
            "type": "boolean",
            "description": "Whether the model is currently active."
          },
          "context_window": {
            "type": "integer",
            "description": "The model context window size."
          },
          "max_completion_tokens": {
            "type": "integer",
            "description": "The maximum completion tokens supported by the model."
          }
        },
        "additionalProperties": true,
        "description": "A GroqCloud model record."
      }
    },
    {
      "id": "groqcloud.list_models",
      "service": "groqcloud",
      "name": "list_models",
      "description": "List the GroqCloud models available to the current API key.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {},
        "additionalProperties": false,
        "description": "No input parameters are required for this action."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "object": {
            "type": "string",
            "description": "The top-level object type."
          },
          "data": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "id": {
                  "type": "string",
                  "description": "The model identifier."
                },
                "object": {
                  "type": "string",
                  "description": "The object type returned by the API."
                },
                "created": {
                  "type": "integer",
                  "description": "The Unix timestamp when the model was created."
                },
                "owned_by": {
                  "type": "string",
                  "description": "The organization that owns the model."
                },
                "active": {
                  "type": "boolean",
                  "description": "Whether the model is currently active."
                },
                "context_window": {
                  "type": "integer",
                  "description": "The model context window size."
                },
                "max_completion_tokens": {
                  "type": "integer",
                  "description": "The maximum completion tokens supported by the model."
                }
              },
              "additionalProperties": true,
              "description": "A GroqCloud model record."
            },
            "description": "The list of available GroqCloud models."
          }
        },
        "additionalProperties": true,
        "description": "The response payload for listing GroqCloud models."
      }
    }
  ]
}
