{
  "name": "Cartech MCP Server",
  "version": "2.3.3",
  "description": "Model Context Protocol server for Cartech vehicle dealership API",
  "stats": {
    "uptime": 1055763096,
    "toolCount": 21,
    "startTime": 1780423244301
  },
  "endpoints": {
    "GET /": "This API documentation",
    "GET /health": "Health check endpoint",
    "GET /mcp/tools": "List all available tools",
    "GET /mcp/tools/{toolName}": "Execute a specific tool via GET",
    "POST /mcp": "MCP JSON-RPC endpoint"
  },
  "tools": [
    {
      "name": "cartech_authenticate",
      "description": "Get JWT authentication token for Cartech API",
      "schema": {
        "type": "object",
        "properties": {
          "app_id": {
            "type": "string",
            "description": "Cartech API application ID"
          },
          "secret": {
            "type": "string",
            "description": "Cartech API application secret"
          }
        },
        "required": [
          "app_id",
          "secret"
        ]
      }
    },
    {
      "name": "cartech_health_ping",
      "description": "Lightweight health check for basic API availability",
      "schema": {
        "type": "object",
        "properties": {}
      }
    },
    {
      "name": "cartech_dealership_info",
      "description": "Get current dealership contact information including name, phone, email, CNPJ, and complete address. Returns full address in formatted string plus individual address components (street, number, city, state, ZIP).",
      "schema": {
        "type": "object"
      }
    },
    {
      "name": "cartech_vehicle_get",
      "description": "Retrieve vehicle information by license plate",
      "schema": {
        "type": "object"
      }
    },
    {
      "name": "cartech_photo_list",
      "description": "Get photos for a vehicle (paginated: 4 photos at a time by default). Use offset to get more photos.",
      "schema": {
        "type": "object"
      }
    },
    {
      "name": "cartech_photo_upload",
      "description": "Upload a new photo for a vehicle. CRITICAL: Server handles batch detection and user messages - DO NOT add your own acknowledgment.",
      "schema": {
        "type": "object"
      }
    },
    {
      "name": "cartech_photo_get",
      "description": "Get details of a specific photo",
      "schema": {
        "type": "object"
      }
    },
    {
      "name": "cartech_photo_update",
      "description": "Update photo details (title, description, etc.)",
      "schema": {
        "type": "object"
      }
    },
    {
      "name": "cartech_photo_set_cover",
      "description": "Set a photo as the cover/main photo for a vehicle",
      "schema": {
        "type": "object"
      }
    },
    {
      "name": "cartech_search_vehicles",
      "description": "Search Brazilian vehicle inventory with natural language (PT-BR) or structured filters. Examples: {\"query\": \"SUV automático até 100 mil\"} or {\"body_type\": [\"SUV\"], \"transmission\": [\"Automático\"], \"price_max\": 100000}. IMPORTANT: Only set price_max/price_min if user explicitly mentions budget/price. Do not add default price limits. Features: intelligent ranking (weighted by price, photos, mileage, year, features), related vehicles when results < 3, zero-results handling with suggestions. All parameters optional. Backend auto-corrects invalid values (year clamping, price multiplication). Returns max 3 exact matches + up to 3 related vehicles with scores and match reasons. Enum values are case-sensitive Portuguese with accents.",
      "schema": {
        "type": "object"
      }
    },
    {
      "name": "cartech_search_options",
      "description": "Get available search filter options (body types, fuel types, etc.)",
      "schema": {
        "type": "object"
      }
    },
    {
      "name": "cartech_get_available_models",
      "description": "Get list of all vehicle makes and models currently in inventory with stats (vehicle count, price ranges, year ranges). Use this to pre-populate AI knowledge about available inventory before search. Response includes aliases for common model variants. Default includes stats unless include_stats is set to false.",
      "schema": {
        "type": "object"
      }
    },
    {
      "name": "cartech_appointment_create",
      "description": "Schedule a vehicle viewing appointment. Plate is optional. Automatically validates appointment time against business hours unless check_business_hours is set to false. Date format: ISO 8601 (e.g., 2026-01-26T16:00:00).",
      "schema": {
        "type": "object",
        "required": [
          "customer_name",
          "customer_phone",
          "scheduled_at"
        ]
      }
    },
    {
      "name": "cartech_appointment_get",
      "description": "Get details of a specific appointment",
      "schema": {
        "type": "object"
      }
    },
    {
      "name": "cartech_appointment_reschedule",
      "description": "Reschedule an existing appointment to a new date/time",
      "schema": {
        "type": "object",
        "required": [
          "id",
          "scheduled_at"
        ]
      }
    },
    {
      "name": "cartech_appointment_cancel",
      "description": "Cancel an existing appointment",
      "schema": {
        "type": "object"
      }
    },
    {
      "name": "cartech_business_hours",
      "description": "Get dealership business hours including weekly schedule and special hours/holidays. Use this to inform customers about visiting hours, appointment availability, and closed days.",
      "schema": {
        "type": "object"
      }
    },
    {
      "name": "cartech_model_config_save",
      "description": "Save AI model configuration parameters for this dealership. All parameters are optional - only specified values will be updated. Temperature range: 0.0-2.0 (default: 0.7), Max tokens: 1-8192 (default: 2048), Top P: 0.0-1.0 (default: 1.0), Penalties: -2.0 to 2.0 (default: 0.0).",
      "schema": {
        "type": "object"
      }
    },
    {
      "name": "cartech_model_config_get",
      "description": "Get current AI model configuration for this dealership. Returns saved configuration or defaults if not configured.",
      "schema": {
        "type": "object"
      }
    },
    {
      "name": "cartech_model_config_reset",
      "description": "Reset AI model configuration to default values for this dealership.",
      "schema": {
        "type": "object"
      }
    },
    {
      "name": "cartech_model_ranges",
      "description": "Get valid ranges and default values for all model configuration parameters (temperature, max_tokens, top_p, penalties).",
      "schema": {
        "type": "object"
      }
    }
  ],
  "authentication": {
    "method": "HTTP Headers",
    "headers": {
      "X-App-ID": "Your application ID",
      "X-Secret": "Your application secret"
    }
  }
}