openapi: 3.0.1
info:
  title: Moonlight Martini API
  description: Search vintage jewelry and clothing at Moonlight Martini
  version: '1.0'
servers:
  - url: https://www.moonlightmartini.com
paths:
  /mcp/search:
    get:
      operationId: searchProducts
      summary: Search for vintage jewelry and clothing
      parameters:
        - in: query
          name: q
          schema:
            type: string
          required: true
          description: Natural language search query (e.g. 'red bakelite bracelet', '1960s rhinestone brooch')
        - in: query
          name: limit
          schema:
            type: integer
            default: 10
          description: Maximum number of results to return
      responses:
        '200':
          description: Search results
          content:
            application/json:
              schema:
                type: object
                properties:
                  query:
                    type: string
                  count:
                    type: integer
                  results:
                    type: array
                    items:
                      type: object
                      properties:
                        id:
                          type: integer
                        title:
                          type: string
                        price:
                          type: number
                        url:
                          type: string
                        image:
                          type: string
  /mcp/product/{id}:
    get:
      operationId: getProduct
      summary: Get detailed information about a specific product
      parameters:
        - in: path
          name: id
          schema:
            type: integer
          required: true
          description: Product ID
      responses:
        '200':
          description: Product details
        '404':
          description: Product not found
  /mcp/categories:
    get:
      operationId: listCategories
      summary: List all product categories
      responses:
        '200':
          description: List of categories
