Skip to main content
Glama
hedging8563

TokenLab MCP Server

by hedging8563

Create chat completion

create_chat_completion

Generate chat completions with OpenAI-compatible models, supporting text, multimodal content, and inline images with automatic MIME type correction.

Instructions

Create an OpenAI-compatible chat completion. For inline image_url data URLs, declare the byte-accurate image MIME type. The MCP boundary corrects recognized PNG, JPEG, WebP, and GIF payloads declared as application/octet-stream and rejects unrecognized generic binary image payloads before sending a billable request.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
nNoNumber of completions to generate
seedNoSeed for deterministic generation
stopNoStop sequences
userNoEnd-user identifier for abuse detection
audioNoAudio output configuration when requesting audio modality.
modelYesID of the model to use (e.g., gpt-5.4, claude-sonnet-4-6)
toolsNoList of tools the model may call
top_pNoNucleus sampling probability
logprobsNoWhether to return log probabilities for output tokens.
messagesYesA list of messages comprising the conversation
functionsNoDeprecated function definitions retained by the official Chat Completions contract.
logit_biasNoPer-token logit bias map.
max_tokensNoMaximum number of tokens to generate
modalitiesNoRequested output modalities such as text or audio.
predictionNoPrediction hints for providers that support draft or speculative decoding.
temperatureNoSampling temperature (0-2)
tool_choiceNoControls which function is called
service_tierNoService tier hint for compatible providers.
top_logprobsNoNumber of most likely tokens to return at each position when logprobs is enabled.
function_callNoDeprecated function-call selection retained by the official Chat Completions contract.
stream_optionsNoStreaming options such as usage chunk inclusion.
response_formatNoResponse format specification
presence_penaltyNoPresence penalty (-2 to 2)
reasoning_effortNoReasoning effort hint for compatible model families.
frequency_penaltyNoFrequency penalty (-2 to 2)
parallel_tool_callsNoWhether the model may issue parallel tool calls.
translation_optionsNoLanguage settings for models that translate audio or video through Chat Completions.
max_completion_tokensNoMaximum completion tokens for newer reasoning-enabled model families

Schema Changelog

Changes observed during successful MCP inspections. Dates show when Glama detected each change.

  1. Changed35 schema fields changedv0.6.4
    • removedInput schema / $schema
      Removed value: -"http://json-schema.org/draft-07/schema#"
    • changedInput schema / properties / audio / additionalProperties
      Previous value: -{}New value: +true
    • removedInput schema / properties / audio / properties
      Removed value: -{}
    • addedInput schema / properties / function_call
      Added value: +{
      +  "description": "Deprecated function-call selection retained by the official Chat Completions contract.",
      +  "oneOf": [
      +    {
      +      "type": "string"
      +    },
      +    {
      +      "additionalProperties": true,
      +      "type": "object"
      +    }
      +  ]
      +}
    • addedInput schema / properties / functions
      Added value: +{
      +  "description": "Deprecated function definitions retained by the official Chat Completions contract.",
      +  "items": {
      +    "additionalProperties": true,
      +    "type": "object"
      +  },
      +  "type": "array"
      +}
    • removedInput schema / properties / logit_bias / properties
      Removed value: -{}
    • removedInput schema / properties / max_completion_tokens / maximum
      Removed value: -9007199254740991
    • removedInput schema / properties / max_tokens / maximum
      Removed value: -9007199254740991
    • removedInput schema / properties / messages / items / additionalProperties
      Removed value: -{}
    • removedInput schema / properties / messages / items / properties / content / oneOf
      Removed value: -[
      -  {
      -    "type": "string"
      -  },
      -  {
      -    "items": {
      -      "oneOf": [
      -        {
      -          "additionalProperties": {},
      -          "properties": {
      -            "text": {
      -              "type": "string"
      -            },
      -            "type": {
      -              "const": "text",
      -              "type": "string"
      -            }
      -          },
      -          "required": [
      -            "type",
      -            "text"
      -          ],
      -          "type": "object"
      -        },
      -        {
      -          "additionalProperties": {},
      -          "properties": {
      -            "image_url": {
      -              "additionalProperties": {},
      -              "properties": {
      -                "detail": {
      -                  "enum": [
      -                    "auto",
      -                    "low",
      -                    "high"
      -                  ],
      -                  "type": "string"
      -                },
      -                "url": {
      -                  "type": "string"
      -                }
      -              },
      -              "required": [
      -                "url"
      -              ],
      -              "type": "object"
      -            },
      -            "type": {
      -              "const": "image_url",
      -              "type": "string"
      -            }
      -          },
      -          "required": [
      -            "type",
      -            "image_url"
      -          ],
      -          "type": "object"
      -        },
      -        {
      -          "additionalProperties": {},
      -          "properties": {
      -            "type": {
      -              "const": "video_url",
      -              "type": "string"
      -            },
      -            "video_url": {
      -              "additionalProperties": {},
      -              "properties": {
      -                "url": {
      -                  "type": "string"
      -                }
      -              },
      -              "required": [
      -                "url"
      -              ],
      -              "type": "object"
      -            }
      -          },
      -          "required": [
      -            "type",
      -            "video_url"
      -          ],
      -          "type": "object"
      -        },
      -        {
      -          "additionalProperties": {},
      -          "properties": {
      -            "input_audio": {
      -              "additionalProperties": {},
      -              "properties": {
      -                "data": {
      -                  "description": "Public audio URL or Base64 data URL.",
      -                  "type": "string"
      -                },
      -                "format": {
      -                  "type": "string"
      -                }
      -              },
      -              "required": [
      -                "data"
      -              ],
      -              "type": "object"
      -            },
      -            "type": {
      -              "const": "input_audio",
      -              "type": "string"
      -            }
      -          },
      -          "required": [
      -            "type",
      -            "input_audio"
      -          ],
      -          "type": "object"
      -        }
      -      ]
      -    },
      -    "type": "array"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]
    • removedInput schema / properties / messages / items / properties / tool_calls / items / additionalProperties
      Removed value: -{}
    • removedInput schema / properties / messages / items / properties / tool_calls / items / properties
      Removed value: -{
      -  "function": {
      -    "additionalProperties": {},
      -    "properties": {
      -      "arguments": {
      -        "type": "string"
      -      },
      -      "name": {
      -        "type": "string"
      -      }
      -    },
      -    "required": [
      -      "name",
      -      "arguments"
      -    ],
      -    "type": "object"
      -  },
      -  "id": {
      -    "description": "Tool call ID",
      -    "type": "string"
      -  },
      -  "type": {
      -    "const": "function",
      -    "type": "string"
      -  }
      -}
    • removedInput schema / properties / messages / items / properties / tool_calls / items / required
      Removed value: -[
      -  "id",
      -  "type",
      -  "function"
      -]
    • removedInput schema / properties / messages / items / properties / tool_calls / items / type
      Removed value: -"object"
    • changedInput schema / properties / prediction / additionalProperties
      Previous value: -{}New value: +true
    • removedInput schema / properties / prediction / properties
      Removed value: -{}
    • removedInput schema / properties / repetition_penalty
      Removed value: -{
      -  "description": "Repetition penalty for compatible models.",
      -  "exclusiveMinimum": 0,
      -  "type": "number"
      -}
    • removedInput schema / properties / response_format / additionalProperties
      Removed value: -{}
    • removedInput schema / properties / seed / maximum
      Removed value: -9007199254740991
    • removedInput schema / properties / seed / minimum
      Removed value: --9007199254740991
    • removedInput schema / properties / service_tier / anyOf
      Removed value: -[
      -  {
      -    "type": "string"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]
    • addedInput schema / properties / service_tier / type
      Added value: +[
      +  "string",
      +  "null"
      +]
    • removedInput schema / properties / speech_rate
      Removed value: -{
      -  "description": "Speech rate for compatible translated audio output.",
      -  "maximum": 2,
      -  "minimum": 0.5,
      -  "type": "number"
      -}
    • removedInput schema / properties / stream
      Removed value: -{
      -  "const": false,
      -  "default": false,
      -  "description": "MCP tool calls return one final result; omit stream or set it to false.",
      -  "type": "boolean"
      -}
    • changedInput schema / properties / stream_options / additionalProperties
      Previous value: -{}New value: +true
    • removedInput schema / properties / stream_options / properties
      Removed value: -{}
    • changedInput schema / properties / tool_choice / oneOf
      Previous value: -[
      -  {
      -    "enum": [
      -      "none",
      -      "auto",
      -      "required"
      -    ],
      -    "type": "string"
      -  },
      -  {
      -    "additionalProperties": {},
      -    "properties": {
      -      "function": {
      -        "additionalProperties": {},
      -        "properties": {
      -          "name": {
      -            "type": "string"
      -          }
      -        },
      -        "required": [
      -          "name"
      -        ],
      -        "type": "object"
      -      },
      -      "type": {
      -        "const": "function",
      -        "type": "string"
      -      }
      -    },
      -    "required": [
      -      "type",
      -      "function"
      -    ],
      -    "type": "object"
      -  }
      -]New value: +[
      +  {
      +    "enum": [
      +      "none",
      +      "auto",
      +      "required"
      +    ],
      +    "type": "string"
      +  },
      +  {
      +    "properties": {
      +      "function": {
      +        "type": "object"
      +      },
      +      "type": {
      +        "enum": [
      +          "function"
      +        ],
      +        "type": "string"
      +      }
      +    },
      +    "required": [
      +      "type",
      +      "function"
      +    ],
      +    "type": "object"
      +  }
      +]
    • removedInput schema / properties / tools / items / additionalProperties
      Removed value: -{}
    • removedInput schema / properties / tools / items / properties / function / additionalProperties
      Removed value: -{}
    • removedInput schema / properties / tools / items / properties / function / properties
      Removed value: -{
      -  "description": {
      -    "description": "Function description",
      -    "type": "string"
      -  },
      -  "name": {
      -    "description": "Function name",
      -    "maxLength": 64,
      -    "type": "string"
      -  },
      -  "parameters": {
      -    "additionalProperties": {},
      -    "description": "JSON Schema for function parameters",
      -    "properties": {},
      -    "type": "object"
      -  }
      -}
    • removedInput schema / properties / tools / items / properties / function / required
      Removed value: -[
      -  "name"
      -]
    • removedInput schema / properties / tools / items / properties / type / const
      Removed value: -"function"
    • addedInput schema / properties / tools / items / properties / type / enum
      Added value: +[
      +  "function"
      +]
    • removedInput schema / properties / top_k
      Removed value: -{
      -  "description": "Top-k sampling cutoff for compatible providers.",
      -  "maximum": 9007199254740991,
      -  "minimum": 0,
      -  "type": "integer"
      -}
    • removedInput schema / properties / translation_options / additionalProperties
      Removed value: -{}
  2. Changed5 schema fields changedv0.4.2
    • changedInput schema / properties / messages / items / properties / content / oneOf
      Previous value: -[
      -  {
      -    "type": "string"
      -  },
      -  {
      -    "items": {
      -      "oneOf": [
      -        {
      -          "additionalProperties": {},
      -          "properties": {
      -            "text": {
      -              "type": "string"
      -            },
      -            "type": {
      -              "const": "text",
      -              "type": "string"
      -            }
      -          },
      -          "required": [
      -            "type",
      -            "text"
      -          ],
      -          "type": "object"
      -        },
      -        {
      -          "additionalProperties": {},
      -          "properties": {
      -            "image_url": {
      -              "additionalProperties": {},
      -              "properties": {
      -                "detail": {
      -                  "enum": [
      -                    "auto",
      -                    "low",
      -                    "high"
      -                  ],
      -                  "type": "string"
      -                },
      -                "url": {
      -                  "type": "string"
      -                }
      -              },
      -              "required": [
      -                "url"
      -              ],
      -              "type": "object"
      -            },
      -            "type": {
      -              "const": "image_url",
      -              "type": "string"
      -            }
      -          },
      -          "required": [
      -            "type",
      -            "image_url"
      -          ],
      -          "type": "object"
      -        }
      -      ]
      -    },
      -    "type": "array"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]New value: +[
      +  {
      +    "type": "string"
      +  },
      +  {
      +    "items": {
      +      "oneOf": [
      +        {
      +          "additionalProperties": {},
      +          "properties": {
      +            "text": {
      +              "type": "string"
      +            },
      +            "type": {
      +              "const": "text",
      +              "type": "string"
      +            }
      +          },
      +          "required": [
      +            "type",
      +            "text"
      +          ],
      +          "type": "object"
      +        },
      +        {
      +          "additionalProperties": {},
      +          "properties": {
      +            "image_url": {
      +              "additionalProperties": {},
      +              "properties": {
      +                "detail": {
      +                  "enum": [
      +                    "auto",
      +                    "low",
      +                    "high"
      +                  ],
      +                  "type": "string"
      +                },
      +                "url": {
      +                  "type": "string"
      +                }
      +              },
      +              "required": [
      +                "url"
      +              ],
      +              "type": "object"
      +            },
      +            "type": {
      +              "const": "image_url",
      +              "type": "string"
      +            }
      +          },
      +          "required": [
      +            "type",
      +            "image_url"
      +          ],
      +          "type": "object"
      +        },
      +        {
      +          "additionalProperties": {},
      +          "properties": {
      +            "type": {
      +              "const": "video_url",
      +              "type": "string"
      +            },
      +            "video_url": {
      +              "additionalProperties": {},
      +              "properties": {
      +                "url": {
      +                  "type": "string"
      +                }
      +              },
      +              "required": [
      +                "url"
      +              ],
      +              "type": "object"
      +            }
      +          },
      +          "required": [
      +            "type",
      +            "video_url"
      +          ],
      +          "type": "object"
      +        },
      +        {
      +          "additionalProperties": {},
      +          "properties": {
      +            "input_audio": {
      +              "additionalProperties": {},
      +              "properties": {
      +                "data": {
      +                  "description": "Public audio URL or Base64 data URL.",
      +                  "type": "string"
      +                },
      +                "format": {
      +                  "type": "string"
      +                }
      +              },
      +              "required": [
      +                "data"
      +              ],
      +              "type": "object"
      +            },
      +            "type": {
      +              "const": "input_audio",
      +              "type": "string"
      +            }
      +          },
      +          "required": [
      +            "type",
      +            "input_audio"
      +          ],
      +          "type": "object"
      +        }
      +      ]
      +    },
      +    "type": "array"
      +  },
      +  {
      +    "type": "null"
      +  }
      +]
    • addedInput schema / properties / repetition_penalty
      Added value: +{
      +  "description": "Repetition penalty for compatible models.",
      +  "exclusiveMinimum": 0,
      +  "type": "number"
      +}
    • addedInput schema / properties / speech_rate
      Added value: +{
      +  "description": "Speech rate for compatible translated audio output.",
      +  "maximum": 2,
      +  "minimum": 0.5,
      +  "type": "number"
      +}
    • changedInput schema / properties / top_k / minimum
      Previous value: -1New value: +0
    • addedInput schema / properties / translation_options
      Added value: +{
      +  "additionalProperties": {},
      +  "description": "Language settings for models that translate audio or video through Chat Completions.",
      +  "properties": {
      +    "source_lang": {
      +      "description": "Source language code. Omit when the model supports automatic detection.",
      +      "type": "string"
      +    },
      +    "target_lang": {
      +      "description": "Target language code.",
      +      "type": "string"
      +    }
      +  },
      +  "required": [
      +    "target_lang"
      +  ],
      +  "type": "object"
      +}
  3. Changed60 schema fields changedv0.3.1
    • addedInput schema / additionalProperties
      Added value: +false
    • changedInput schema / properties / audio / description
      Previous value: -"Optional audio output configuration."New value: +"Audio output configuration when requesting audio modality."
    • addedInput schema / properties / frequency_penalty / default
      Added value: +0
    • changedInput schema / properties / frequency_penalty / description
      Previous value: -"Optional frequency penalty."New value: +"Frequency penalty (-2 to 2)"
    • changedInput schema / properties / logit_bias / description
      Previous value: -"Optional per-token logit-bias map."New value: +"Per-token logit bias map."
    • addedInput schema / properties / logit_bias / properties
      Added value: +{}
    • removedInput schema / properties / logit_bias / propertyNames
      Removed value: -{
      -  "type": "string"
      -}
    • changedInput schema / properties / logprobs / description
      Previous value: -"Whether to return output-token log probabilities."New value: +"Whether to return log probabilities for output tokens."
    • changedInput schema / properties / max_completion_tokens / description
      Previous value: -"Optional completion-token cap for compatible reasoning models."New value: +"Maximum completion tokens for newer reasoning-enabled model families"
    • changedInput schema / properties / max_tokens / description
      Previous value: -"Optional maximum generated tokens."New value: +"Maximum number of tokens to generate"
    • changedInput schema / properties / messages / description
      Previous value: -"OpenAI-compatible conversation messages, including text, image, tool, and function messages."New value: +"A list of messages comprising the conversation"
    • removedInput schema / properties / messages / items / properties / content / anyOf
      Removed value: -[
      -  {
      -    "type": "string"
      -  },
      -  {
      -    "items": {
      -      "additionalProperties": {},
      -      "properties": {},
      -      "type": "object"
      -    },
      -    "type": "array"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]
    • changedInput schema / properties / messages / items / properties / content / description
      Previous value: -"Text, OpenAI-compatible multimodal content parts, or null for tool/function messages."New value: +"Message content (text or multimodal)"
    • addedInput schema / properties / messages / items / properties / content / oneOf
      Added value: +[
      +  {
      +    "type": "string"
      +  },
      +  {
      +    "items": {
      +      "oneOf": [
      +        {
      +          "additionalProperties": {},
      +          "properties": {
      +            "text": {
      +              "type": "string"
      +            },
      +            "type": {
      +              "const": "text",
      +              "type": "string"
      +            }
      +          },
      +          "required": [
      +            "type",
      +            "text"
      +          ],
      +          "type": "object"
      +        },
      +        {
      +          "additionalProperties": {},
      +          "properties": {
      +            "image_url": {
      +              "additionalProperties": {},
      +              "properties": {
      +                "detail": {
      +                  "enum": [
      +                    "auto",
      +                    "low",
      +                    "high"
      +                  ],
      +                  "type": "string"
      +                },
      +                "url": {
      +                  "type": "string"
      +                }
      +              },
      +              "required": [
      +                "url"
      +              ],
      +              "type": "object"
      +            },
      +            "type": {
      +              "const": "image_url",
      +              "type": "string"
      +            }
      +          },
      +          "required": [
      +            "type",
      +            "image_url"
      +          ],
      +          "type": "object"
      +        }
      +      ]
      +    },
      +    "type": "array"
      +  },
      +  {
      +    "type": "null"
      +  }
      +]
    • changedInput schema / properties / messages / items / properties / name / description
      Previous value: -"Optional name for a function or tool message."New value: +"Name of the function/tool (for function/tool messages)"
    • changedInput schema / properties / messages / items / properties / role / description
      Previous value: -"OpenAI Chat Completions message role."New value: +"The role of the message author"
    • changedInput schema / properties / messages / items / properties / tool_call_id / description
      Previous value: -"Tool call ID answered by a tool message."New value: +"ID of the tool call being responded to"
    • changedInput schema / properties / messages / items / properties / tool_calls / description
      Previous value: -"Tool calls made by an assistant message."New value: +"Tool calls made by the assistant"
    • addedInput schema / properties / messages / items / properties / tool_calls / items / properties / function
      Added value: +{
      +  "additionalProperties": {},
      +  "properties": {
      +    "arguments": {
      +      "type": "string"
      +    },
      +    "name": {
      +      "type": "string"
      +    }
      +  },
      +  "required": [
      +    "name",
      +    "arguments"
      +  ],
      +  "type": "object"
      +}
    • addedInput schema / properties / messages / items / properties / tool_calls / items / properties / id
      Added value: +{
      +  "description": "Tool call ID",
      +  "type": "string"
      +}
    • addedInput schema / properties / messages / items / properties / tool_calls / items / properties / type
      Added value: +{
      +  "const": "function",
      +  "type": "string"
      +}
    • addedInput schema / properties / messages / items / properties / tool_calls / items / required
      Added value: +[
      +  "id",
      +  "type",
      +  "function"
      +]
    • changedInput schema / properties / modalities / description
      Previous value: -"Optional requested output modalities, such as text or audio."New value: +"Requested output modalities such as text or audio."
    • removedInput schema / properties / modalities / minItems
      Removed value: -1
    • changedInput schema / properties / model / description
      Previous value: -"Public TokenLab model ID."New value: +"ID of the model to use (e.g., gpt-5.4, claude-sonnet-4-6)"
    • removedInput schema / properties / model / minLength
      Removed value: -1
    • addedInput schema / properties / n / default
      Added value: +1
    • changedInput schema / properties / n / description
      Previous value: -"Optional number of non-streaming completions."New value: +"Number of completions to generate"
    • changedInput schema / properties / parallel_tool_calls / description
      Previous value: -"Whether compatible models may make parallel tool calls."New value: +"Whether the model may issue parallel tool calls."
    • changedInput schema / properties / prediction / description
      Previous value: -"Optional prediction hint for compatible models."New value: +"Prediction hints for providers that support draft or speculative decoding."
    • addedInput schema / properties / presence_penalty / default
      Added value: +0
    • changedInput schema / properties / presence_penalty / description
      Previous value: -"Optional presence penalty."New value: +"Presence penalty (-2 to 2)"
    • changedInput schema / properties / reasoning_effort / description
      Previous value: -"Optional reasoning-effort hint for compatible models."New value: +"Reasoning effort hint for compatible model families."
    • addedInput schema / properties / response_format / additionalProperties
      Added value: +{}
    • changedInput schema / properties / response_format / description
      Previous value: -"Optional response format."New value: +"Response format specification"
    • removedInput schema / properties / response_format / required
      Removed value: -[
      -  "type"
      -]
    • changedInput schema / properties / seed / description
      Previous value: -"Optional deterministic seed for compatible models."New value: +"Seed for deterministic generation"
    • changedInput schema / properties / service_tier / description
      Previous value: -"Optional service-tier hint for compatible models."New value: +"Service tier hint for compatible providers."
    • removedInput schema / properties / stop / anyOf
      Removed value: -[
      -  {
      -    "type": "string"
      -  },
      -  {
      -    "items": {
      -      "type": "string"
      -    },
      -    "maxItems": 4,
      -    "minItems": 1,
      -    "type": "array"
      -  }
      -]
    • changedInput schema / properties / stop / description
      Previous value: -"Optional stop sequence or up to four stop sequences."New value: +"Stop sequences"
    • addedInput schema / properties / stop / oneOf
      Added value: +[
      +  {
      +    "type": "string"
      +  },
      +  {
      +    "items": {
      +      "type": "string"
      +    },
      +    "maxItems": 4,
      +    "type": "array"
      +  }
      +]
    • addedInput schema / properties / stream
      Added value: +{
      +  "const": false,
      +  "default": false,
      +  "description": "MCP tool calls return one final result; omit stream or set it to false.",
      +  "type": "boolean"
      +}
    • addedInput schema / properties / stream_options
      Added value: +{
      +  "additionalProperties": {},
      +  "description": "Streaming options such as usage chunk inclusion.",
      +  "properties": {},
      +  "type": "object"
      +}
    • addedInput schema / properties / temperature / default
      Added value: +1
    • changedInput schema / properties / temperature / description
      Previous value: -"Optional sampling temperature."New value: +"Sampling temperature (0-2)"
    • removedInput schema / properties / tool_choice / anyOf
      Removed value: -[
      -  {
      -    "enum": [
      -      "none",
      -      "auto",
      -      "required"
      -    ],
      -    "type": "string"
      -  },
      -  {
      -    "properties": {
      -      "function": {
      -        "properties": {
      -          "name": {
      -            "minLength": 1,
      -            "type": "string"
      -          }
      -        },
      -        "required": [
      -          "name"
      -        ],
      -        "type": "object"
      -      },
      -      "type": {
      -        "const": "function",
      -        "type": "string"
      -      }
      -    },
      -    "required": [
      -      "type",
      -      "function"
      -    ],
      -    "type": "object"
      -  }
      -]
    • changedInput schema / properties / tool_choice / description
      Previous value: -"Optional OpenAI tool-choice setting."New value: +"Controls which function is called"
    • addedInput schema / properties / tool_choice / oneOf
      Added value: +[
      +  {
      +    "enum": [
      +      "none",
      +      "auto",
      +      "required"
      +    ],
      +    "type": "string"
      +  },
      +  {
      +    "additionalProperties": {},
      +    "properties": {
      +      "function": {
      +        "additionalProperties": {},
      +        "properties": {
      +          "name": {
      +            "type": "string"
      +          }
      +        },
      +        "required": [
      +          "name"
      +        ],
      +        "type": "object"
      +      },
      +      "type": {
      +        "const": "function",
      +        "type": "string"
      +      }
      +    },
      +    "required": [
      +      "type",
      +      "function"
      +    ],
      +    "type": "object"
      +  }
      +]
    • changedInput schema / properties / tools / description
      Previous value: -"Optional OpenAI function tools available to the model."New value: +"List of tools the model may call"
    • addedInput schema / properties / tools / items / properties / function / properties / description / description
      Added value: +"Function description"
    • addedInput schema / properties / tools / items / properties / function / properties / name / description
      Added value: +"Function name"
    • addedInput schema / properties / tools / items / properties / function / properties / name / maxLength
      Added value: +64
    • removedInput schema / properties / tools / items / properties / function / properties / name / minLength
      Removed value: -1
    • addedInput schema / properties / tools / items / properties / function / properties / parameters / description
      Added value: +"JSON Schema for function parameters"
    • addedInput schema / properties / tools / items / properties / type / description
      Added value: +"Tool type (currently only 'function')"
    • changedInput schema / properties / top_k / description
      Previous value: -"Optional top-k sampling cutoff for compatible models."New value: +"Top-k sampling cutoff for compatible providers."
    • changedInput schema / properties / top_logprobs / description
      Previous value: -"Optional number of likely tokens to include with log probabilities."New value: +"Number of most likely tokens to return at each position when logprobs is enabled."
    • addedInput schema / properties / top_p / default
      Added value: +1
    • changedInput schema / properties / top_p / description
      Previous value: -"Optional nucleus sampling probability."New value: +"Nucleus sampling probability"
    • changedInput schema / properties / user / description
      Previous value: -"Optional end-user identifier."New value: +"End-user identifier for abuse detection"
  4. Addedv0.3.0

TDQS

A4.3/5.0
Behavior4/5

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

Beyond annotations (readOnlyHint=false, destructiveHint=false), the description reveals that the MCP boundary corrects recognized image payloads and rejects unrecognized generic binary before billing, adding valuable behavioral insight not captured in annotations.

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

Conciseness5/5

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

The description is three sentences with front-loaded purpose and no redundant information. Every sentence contributes essential guidance.

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

Completeness3/5

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

While the tool is complex (28 parameters, nested objects, no output schema), the description focuses narrowly on image handling. It lacks guidance on streaming, error handling, or expected return values, leaving gaps for an AI agent.

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 100% schema description coverage, the baseline is 3. The description adds value by specifying inline image handling for the messages parameter, a critical detail beyond the schema's generic descriptions.

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?

The description clearly states 'Create an OpenAI-compatible chat completion' with a specific verb and resource. It also provides precise handling instructions for image data URLs, distinguishing it from sibling tools like 'create_anthropic_message' or 'create_gemini_content'.

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

Usage Guidelines4/5

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

The description gives clear context for when to use this tool (chat completions with OpenAI-compatible models) and specific guidance on image MIME types. However, it does not explicitly state when not to use it or mention alternatives.

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

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/hedging8563/tokenlab-mcp-server'

If you have feedback or need assistance with the MCP directory API, please join our Discord server