{
  "_README": {
    "description": "Model metadata for X.AI (GROK) API access.",
    "documentation": "https://github.com/BeehiveInnovations/zen-mcp-server/blob/main/docs/custom_models.md",
    "usage": "Models listed here are exposed directly through the X.AI provider. Aliases are case-insensitive.",
    "field_notes": "Matches providers/shared/model_capabilities.py.",
    "field_descriptions": {
      "model_name": "The model identifier (e.g., 'grok-4', 'grok-3-fast')",
      "aliases": "Array of short names users can type instead of the full model name",
      "context_window": "Total number of tokens the model can process (input + output combined)",
      "max_output_tokens": "Maximum number of tokens the model can generate in a single response",
      "max_thinking_tokens": "Maximum reasoning/thinking tokens the model will allocate when extended thinking is requested",
      "supports_extended_thinking": "Whether the model supports extended reasoning tokens (currently none do via OpenRouter or custom APIs)",
      "supports_json_mode": "Whether the model can guarantee valid JSON output",
      "supports_function_calling": "Whether the model supports function/tool calling",
      "supports_images": "Whether the model can process images/visual input",
      "max_image_size_mb": "Maximum total size in MB for all images combined (capped at 40MB max for custom models)",
      "supports_temperature": "Whether the model accepts temperature parameter in API calls (set to false for O3/O4 reasoning models)",
      "temperature_constraint": "Type of temperature constraint: 'fixed' (fixed value), 'range' (continuous range), 'discrete' (specific values), or omit for default range",
      "use_openai_response_api": "Set to true when the model must use the /responses endpoint (reasoning models like GPT-5 Pro). Leave false/omit for standard chat completions.",
      "default_reasoning_effort": "Default reasoning effort level for models that support it (e.g., 'low', 'medium', 'high'). Omit if not applicable.",
      "description": "Human-readable description of the model",
      "intelligence_score": "1-20 human rating used as the primary signal for auto-mode model ordering"
    }
  },
  "models": [
    {
      "model_name": "grok-4",
      "friendly_name": "X.AI (Grok 4)",
      "aliases": [
        "grok",
        "grok4",
        "grok-4"
      ],
      "intelligence_score": 16,
      "description": "GROK-4 (256K context) - Frontier multimodal reasoning model with advanced capabilities",
      "context_window": 256000,
      "max_output_tokens": 256000,
      "supports_extended_thinking": true,
      "supports_system_prompts": true,
      "supports_streaming": true,
      "supports_function_calling": true,
      "supports_json_mode": true,
      "supports_images": true,
      "supports_temperature": true,
      "max_image_size_mb": 20.0
    },
    {
      "model_name": "grok-3",
      "friendly_name": "X.AI (Grok 3)",
      "aliases": [
        "grok3"
      ],
      "intelligence_score": 13,
      "description": "GROK-3 (131K context) - Advanced reasoning model from X.AI, excellent for complex analysis",
      "context_window": 131072,
      "max_output_tokens": 131072,
      "supports_extended_thinking": false,
      "supports_system_prompts": true,
      "supports_streaming": true,
      "supports_function_calling": true,
      "supports_json_mode": false,
      "supports_images": false,
      "supports_temperature": true
    },
    {
      "model_name": "grok-3-fast",
      "friendly_name": "X.AI (Grok 3 Fast)",
      "aliases": [
        "grok3fast",
        "grokfast",
        "grok3-fast"
      ],
      "intelligence_score": 12,
      "description": "GROK-3 Fast (131K context) - Higher performance variant, faster processing but more expensive",
      "context_window": 131072,
      "max_output_tokens": 131072,
      "supports_extended_thinking": false,
      "supports_system_prompts": true,
      "supports_streaming": true,
      "supports_function_calling": true,
      "supports_json_mode": false,
      "supports_images": false,
      "supports_temperature": true
    }
  ]
}
