B.R.M Chronographes - Watch Configurator

Configure, price, render and order a made-to-order B.R.M watch (French manufacture). No auth.

사용해야 할까요

품질 및 안전성

A
설명 품질
100%
스키마 완전성
74%
이름 품질
96%
오염 위험
100%
권한 일치
100%
프로토콜 준수
100%

도구 정의와 프로토콜 준수에 대한 자동 분석을 기반으로 합니다.

컨텍스트 비용

~4,266토큰 (도구 정의)
~4.2 KB일반적인 응답 크기
상당한 주의 영향 (128k 컨텍스트의 3.33%)

이는 서버의 도구가 모델의 컨텍스트에 로드될 때마다 소비되는 대략적인 토큰 수입니다. 수치가 높을수록 다른 작업에 사용할 수 있는 주의가 줄어듭니다.

설치

원클릭 설치

`claude_desktop_config.json` 파일에 다음을 추가하세요:

{
  "mcpServers": {
    "configurator": {
      "url": "https://api.brm-chronographes.com/mcp"
    }
  }
}

원격 엔드포인트

https://api.brm-chronographes.com/mcpstreamable-http

할 수 있는 일

도구 목록

도구 (9)

🟢 읽기 전용🟡 쓰기🔴 삭제⚪ 알 수 없음
🟢list_models

Returns the configurable watch models with base price (EUR incl. French VAT), diameter and a rendered picture of the default configuration.

입력 스키마

{
  "type": "object",
  "properties": {},
  "additionalProperties": false
}

출력 스키마

{
  "type": "object",
  "properties": {
    "api_version": {
      "type": "string"
    },
    "currency_of_prices": {
      "const": "EUR"
    },
    "prices_include_french_vat": {
      "type": "boolean"
    },
    "lead_time": {
      "type": "object",
      "description": "No firm number of weeks is given by this API: show `url` (the delivery page of brm-chronographes.com, in the user's language) for lead times.",
      "properties": {
        "text": {
          "type": "string"
        },
        "url": {
          "type": "string",
          "format": "uri"
        }
      }
    },
    "notes": {
      "type": "string"
    },
    "models": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "model_id": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "diameter_mm": {
            "type": [
              "integer",
              "null"
            ]
          },
          "base_price_eur": {
            "type": "number"
          },
          "option_count": {
            "type": "integer"
          },
          "image_url": {
            "type": [
              "string",
              "null"
            ],
            "format": "uri",
            "description": "JPEG rendering of the default configuration (view 0)."
          },
          "configurator_url": {
            "type": "string",
            "format": "uri"
          }
        }
      }
    }
  }
}
🟢describe_model(model, lang)

Components, options (option_id, name, surcharge_eur, is_default), mutual exclusions (exclusive_group) and dependencies (depends_on: the component only exists if one of these options is selected). option_id values are opaque identifiers; name is the label to use with the user.

입력 스키마

{
  "type": "object",
  "properties": {
    "model": {
      "type": "string"
    },
    "lang": {
      "type": "string",
      "enum": [
        "fr",
        "en",
        "de",
        "es",
        "it",
        "nl",
        "pt",
        "ja",
        "ko",
        "zh",
        "ar",
        "hi"
      ],
      "default": "en"
    }
  },
  "required": [
    "model"
  ],
  "additionalProperties": false
}

출력 스키마

{
  "type": "object",
  "properties": {
    "model_id": {
      "type": "string"
    },
    "name": {
      "type": "string"
    },
    "diameter_mm": {
      "type": [
        "integer",
        "null"
      ]
    },
    "base_price_eur": {
      "type": "number"
    },
    "lang": {
      "type": "string"
    },
    "rules": {
      "type": "object",
      "additionalProperties": {
        "type": "string"
      }
    },
    "components": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "component_id": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "parent_component_id": {
            "type": [
              "string",
              "null"
            ]
          },
          "is_engraving": {
            "type": "boolean"
          },
          "conditional": {
            "type": "boolean"
          },
          "depends_on": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "The component exists only if ONE of these option_ids is selected."
          },
          "options": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "option_id": {
                  "type": "string",
                  "description": "Opaque id to send back. May look like 'V6-SA-B-GTS' or '#1508'."
                },
                "name": {
                  "type": "string"
                },
                "surcharge_eur": {
                  "type": "number"
                },
                "is_default": {
                  "type": "boolean"
                },
                "exclusive_group": {
                  "type": "string",
                  "description": "At most one option per group."
                }
              }
            }
          }
        }
      }
    }
  }
}
🟢validate_configuration(configuration, lang)

Resolves defaults, exclusions and dependencies; returns valid=false with errors (unknown_option, dependency_unmet) and warnings (exclusive_conflict) that can be fixed, plus the resolved list of selections and total EUR price.

입력 스키마

{
  "type": "object",
  "properties": {
    "configuration": {
      "type": "object",
      "required": [
        "model"
      ],
      "additionalProperties": false,
      "properties": {
        "model": {
          "type": "string",
          "description": "model_id from list_models, e.g. 'v6-44-sa'."
        },
        "options": {
          "type": "array",
          "maxItems": 40,
          "items": {
            "type": "string"
          },
          "description": "option_id values from describe_model. Unset components keep their default."
        },
        "engraving": {
          "type": "string",
          "maxLength": 24,
          "description": "Optional engraving text (not priced, not rendered)."
        }
      }
    },
    "lang": {
      "type": "string",
      "enum": [
        "fr",
        "en",
        "de",
        "es",
        "it",
        "nl",
        "pt",
        "ja",
        "ko",
        "zh",
        "ar",
        "hi"
      ],
      "default": "en"
    }
  },
  "required": [
    "configuration"
  ],
  "additionalProperties": false
}

출력 스키마

{
  "type": "object",
  "properties": {
    "valid": {
      "type": "boolean"
    },
    "errors": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "code": {
            "type": "string",
            "enum": [
              "unknown_option",
              "dependency_unmet"
            ]
          },
          "options": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "hint": {
            "type": "string"
          }
        }
      }
    },
    "warnings": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "code": {
            "type": "string",
            "enum": [
              "exclusive_conflict"
            ]
          },
          "options": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "hint": {
            "type": "string"
          }
        }
      }
    },
    "resolved": {
      "type": "object",
      "properties": {
        "model_id": {
          "type": "string"
        },
        "name": {
          "type": "string"
        },
        "base_price_eur": {
          "type": "number"
        },
        "total_price_eur": {
          "type": "number"
        },
        "engraving": {
          "type": [
            "string",
            "null"
          ]
        },
        "selections": {
          "type": "array",
          "items": {
            "type": "object",
            "properties": {
              "component": {
                "type": "string"
              },
              "option": {
                "type": "string"
              },
              "option_id": {
                "type": "string"
              },
              "surcharge_eur": {
                "type": "number"
              }
            }
          }
        }
      }
    },
    "is_order": {
      "const": false
    }
  }
}
🟢quote_configuration(configuration, country, display_currency, lang)

Price in the billing currency of the DELIVERY country (the currency cannot be chosen), with the tax regime: French VAT inside the EU, 0% VAT outside the EU (duties payable by the buyer). Indicative and non-binding; the checkout on brm-chronographes.com is authoritative.

입력 스키마

{
  "type": "object",
  "properties": {
    "configuration": {
      "type": "object",
      "required": [
        "model"
      ],
      "additionalProperties": false,
      "properties": {
        "model": {
          "type": "string",
          "description": "model_id from list_models, e.g. 'v6-44-sa'."
        },
        "options": {
          "type": "array",
          "maxItems": 40,
          "items": {
            "type": "string"
          },
          "description": "option_id values from describe_model. Unset components keep their default."
        },
        "engraving": {
          "type": "string",
          "maxLength": 24,
          "description": "Optional engraving text (not priced, not rendered)."
        }
      }
    },
    "country": {
      "type": "string",
      "description": "ISO-3166 alpha-2, e.g. 'US'."
    },
    "display_currency": {
      "type": "string",
      "maxLength": 3
    },
    "lang": {
      "type": "string",
      "enum": [
        "fr",
        "en",
        "de",
        "es",
        "it",
        "nl",
        "pt",
        "ja",
        "ko",
        "zh",
        "ar",
        "hi"
      ],
      "default": "en"
    }
  },
  "required": [
    "configuration",
    "country"
  ],
  "additionalProperties": false
}

출력 스키마

{
  "type": "object",
  "properties": {
    "model_id": {
      "type": "string"
    },
    "catalogue_price_eur_incl_fr_vat": {
      "type": "number"
    },
    "delivery_country": {
      "type": "string"
    },
    "tax_regime": {
      "type": "object",
      "properties": {
        "zone": {
          "type": "string",
          "enum": [
            "france",
            "eu_intra",
            "ue_oss",
            "dom_tom",
            "export"
          ]
        },
        "vat_rate_percent": {
          "type": "number"
        },
        "vat_included": {
          "type": "boolean"
        }
      }
    },
    "billing_currency": {
      "type": "string"
    },
    "price": {
      "type": "number"
    },
    "price_formatted": {
      "type": "string"
    },
    "rounding": {
      "type": "string"
    },
    "shipping": {
      "const": "included"
    },
    "lead_time": {
      "type": "object",
      "description": "No firm number of weeks is given by this API: show `url` (the delivery page of brm-chronographes.com, in the user's language) for lead times.",
      "properties": {
        "text": {
          "type": "string"
        },
        "url": {
          "type": "string",
          "format": "uri"
        }
      }
    },
    "legal_notice": {
      "type": [
        "string",
        "null"
      ]
    },
    "binding": {
      "const": false
    },
    "note": {
      "type": "string"
    },
    "display_only": {
      "type": "object",
      "properties": {
        "currency": {
          "type": "string"
        },
        "price": {
          "type": "number"
        },
        "note": {
          "type": "string"
        }
      }
    }
  }
}
🟢render_configuration(configuration, view, width)

Composes the photographic rendering of the configured watch (JPEG). view 0 is the three-quarter view; 30 views (0-29) rotate the watch by 12° each.

입력 스키마

{
  "type": "object",
  "properties": {
    "configuration": {
      "type": "object",
      "required": [
        "model"
      ],
      "additionalProperties": false,
      "properties": {
        "model": {
          "type": "string",
          "description": "model_id from list_models, e.g. 'v6-44-sa'."
        },
        "options": {
          "type": "array",
          "maxItems": 40,
          "items": {
            "type": "string"
          },
          "description": "option_id values from describe_model. Unset components keep their default."
        },
        "engraving": {
          "type": "string",
          "maxLength": 24,
          "description": "Optional engraving text (not priced, not rendered)."
        }
      }
    },
    "view": {
      "type": "integer",
      "minimum": 0,
      "maximum": 29,
      "default": 0
    },
    "width": {
      "type": "integer",
      "minimum": 300,
      "maximum": 1600,
      "default": 900
    }
  },
  "required": [
    "configuration"
  ],
  "additionalProperties": false
}

출력 스키마

{
  "type": "object",
  "properties": {
    "image_url": {
      "type": "string",
      "format": "uri"
    },
    "mime_type": {
      "const": "image/jpeg"
    },
    "view": {
      "type": "integer"
    },
    "views_available": {
      "type": "integer"
    },
    "width": {
      "type": "integer"
    },
    "note": {
      "type": "string"
    }
  }
}
🟡create_share_link(configuration, lang, view)

Returns configurator_url (opens this exact watch in the configurator on brm-chronographes.com, where the user can adjust it and add it to the basket; this is the link meant for the user) and preview_url (a public presentation page with rotation, shared by every identical configuration). Idempotent. Sharing is not ordering.

입력 스키마

{
  "type": "object",
  "properties": {
    "configuration": {
      "type": "object",
      "required": [
        "model"
      ],
      "additionalProperties": false,
      "properties": {
        "model": {
          "type": "string",
          "description": "model_id from list_models, e.g. 'v6-44-sa'."
        },
        "options": {
          "type": "array",
          "maxItems": 40,
          "items": {
            "type": "string"
          },
          "description": "option_id values from describe_model. Unset components keep their default."
        },
        "engraving": {
          "type": "string",
          "maxLength": 24,
          "description": "Optional engraving text (not priced, not rendered)."
        }
      }
    },
    "lang": {
      "type": "string",
      "enum": [
        "fr",
        "en",
        "de",
        "es",
        "it",
        "nl",
        "pt",
        "ja",
        "ko",
        "zh",
        "ar",
        "hi"
      ],
      "default": "en"
    },
    "view": {
      "type": "integer",
      "minimum": 0,
      "maximum": 29,
      "default": 0
    }
  },
  "required": [
    "configuration"
  ],
  "additionalProperties": false
}

출력 스키마

{
  "type": "object",
  "properties": {
    "configurator_url": {
      "type": "string",
      "format": "uri",
      "description": "Reopens this exact watch on brm-chronographes.com."
    },
    "preview_url": {
      "type": [
        "string",
        "null"
      ],
      "format": "uri",
      "description": "Public page shared by every identical configuration; carries no user data."
    },
    "image_url": {
      "type": [
        "string",
        "null"
      ],
      "format": "uri"
    },
    "total_price_eur": {
      "type": "number"
    },
    "is_order": {
      "const": false
    },
    "note": {
      "type": "string"
    }
  }
}
🔴submit_request(kind, contact, country, lang, message, ...)

Sends the user's request to the B.R.M team: 'appointment' (private visit of the manufacture — a booking link is returned), 'quote' (personalised quote by email), or 'special_request' (anything the configurator does not offer; the workshop checks feasibility). Requires the user's explicit agreement to share their email and be contacted (user_consent=true). The message cannot be recalled once sent. Never an order, never a payment. Limited to a few requests per day.

입력 스키마

{
  "type": "object",
  "properties": {
    "kind": {
      "type": "string",
      "enum": [
        "appointment",
        "quote",
        "special_request"
      ]
    },
    "contact": {
      "type": "object",
      "required": [
        "email"
      ],
      "additionalProperties": false,
      "properties": {
        "email": {
          "type": "string",
          "format": "email"
        },
        "name": {
          "type": "string",
          "maxLength": 120
        },
        "phone": {
          "type": "string",
          "maxLength": 40
        }
      }
    },
    "country": {
      "type": "string"
    },
    "lang": {
      "type": "string",
      "enum": [
        "fr",
        "en",
        "de",
        "es",
        "it",
        "nl",
        "pt",
        "ja",
        "ko",
        "zh",
        "ar",
        "hi"
      ],
      "default": "en"
    },
    "message": {
      "type": "string",
      "minLength": 10,
      "maxLength": 2000,
      "description": "What the user wants, in their words, precise enough for the workshop."
    },
    "configuration": {
      "type": "object",
      "required": [
        "model"
      ],
      "additionalProperties": false,
      "properties": {
        "model": {
          "type": "string",
          "description": "model_id from list_models, e.g. 'v6-44-sa'."
        },
        "options": {
          "type": "array",
          "maxItems": 40,
          "items": {
            "type": "string"
          },
          "description": "option_id values from describe_model. Unset components keep their default."
        },
        "engraving": {
          "type": "string",
          "maxLength": 24,
          "description": "Optional engraving text (not priced, not rendered)."
        }
      }
    },
    "user_consent": {
      "type": "boolean",
      "const": true
    },
    "idempotency_key": {
      "type": "string",
      "maxLength": 80
    }
  },
  "required": [
    "kind",
    "contact",
    "message",
    "user_consent"
  ],
  "additionalProperties": false
}

출력 스키마

{
  "type": "object",
  "properties": {
    "request_id": {
      "type": "string",
      "examples": [
        "AG-3F9A12C0"
      ]
    },
    "status": {
      "const": "received"
    },
    "kind": {
      "type": "string"
    },
    "next_step": {
      "type": "object",
      "properties": {
        "booking_url": {
          "type": "string",
          "format": "uri"
        },
        "text": {
          "type": "string"
        }
      }
    },
    "is_order": {
      "const": false
    },
    "privacy": {
      "type": "string"
    },
    "idempotent_replay": {
      "type": "boolean"
    },
    "duplicate": {
      "type": "boolean"
    }
  }
}
🔴create_order(configuration, customer, shipping_address, lang, user_consent, ...)

Prepares an order of this configured watch for the user. ONLY call it when the user explicitly asked you to order it and agreed to share their name, email and delivery address with B.R.M (user_consent=true). B.R.M then emails the user a summary with a 'Confirm my order' button; the order is placed ONLY after the user confirms it there (link valid 72 h), choosing card, interest-free instalments (Alma under EUR 2,000, Pledg from EUR 2,000, where available), a 30% deposit (watch from EUR 3,000) or bank transfer (EUR only), and pays B.R.M himself on B.R.M's secure payment page — no card or bank details go through this tool, and you never pay or commit the user. Relay message_for_user to the user. Do NOT say the order is placed, do NOT ask for payment details, NEVER promise a delivery date. The price is computed by B.R.M for the delivery country (currency and VAT follow the delivery country). Limited to a few orders per day per email. Pass an idempotency_key to make retries safe.

입력 스키마

{
  "type": "object",
  "properties": {
    "configuration": {
      "type": "object",
      "required": [
        "model"
      ],
      "additionalProperties": false,
      "properties": {
        "model": {
          "type": "string",
          "description": "model_id from list_models, e.g. 'v6-44-sa'."
        },
        "options": {
          "type": "array",
          "maxItems": 40,
          "items": {
            "type": "string"
          },
          "description": "option_id values from describe_model. Unset components keep their default."
        },
        "engraving": {
          "type": "string",
          "maxLength": 24,
          "description": "Optional engraving text (not priced, not rendered)."
        }
      }
    },
    "customer": {
      "type": "object",
      "additionalProperties": false,
      "required": [
        "email",
        "first_name",
        "last_name"
      ],
      "properties": {
        "email": {
          "type": "string",
          "format": "email",
          "maxLength": 200
        },
        "first_name": {
          "type": "string",
          "maxLength": 60
        },
        "last_name": {
          "type": "string",
          "maxLength": 60
        },
        "phone": {
          "type": "string",
          "maxLength": 30
        }
      }
    },
    "shipping_address": {
      "type": "object",
      "additionalProperties": false,
      "required": [
        "line1",
        "postal_code",
        "city",
        "country"
      ],
      "properties": {
        "line1": {
          "type": "string",
          "maxLength": 120
        },
        "line2": {
          "type": "string",
          "maxLength": 120
        },
        "postal_code": {
          "type": "string",
          "maxLength": 16
        },
        "city": {
          "type": "string",
          "maxLength": 80
        },
        "region": {
          "type": "string",
          "maxLength": 60
        },
        "country": {
          "type": "string",
          "pattern": "^[A-Za-z]{2}$",
          "description": "ISO-3166 alpha-2, e.g. 'US'."
        }
      }
    },
    "lang": {
      "type": "string",
      "enum": [
        "fr",
        "en",
        "de",
        "es",
        "it",
        "nl",
        "pt",
        "ja",
        "ko",
        "zh",
        "ar",
        "hi"
      ],
      "default": "en"
    },
    "user_consent": {
      "type": "boolean",
      "const": true
    },
    "idempotency_key": {
      "type": "string",
      "maxLength": 80
    }
  },
  "required": [
    "configuration",
    "customer",
    "shipping_address",
    "user_consent"
  ],
  "additionalProperties": false
}

출력 스키마

{
  "type": "object",
  "properties": {
    "order_id": {
      "type": "string"
    },
    "status": {
      "type": "string",
      "enum": [
        "awaiting_customer_confirmation",
        "confirming",
        "confirmed_awaiting_payment",
        "paid",
        "expired",
        "cancelled",
        "confirmation_email_failed",
        "needs_assistance"
      ]
    },
    "explanation": {
      "type": "string"
    },
    "created_at": {
      "type": "string",
      "format": "date-time"
    },
    "expires_at": {
      "type": "string",
      "format": "date-time",
      "description": "Deadline for the user's confirmation."
    },
    "is_paid": {
      "type": "boolean"
    },
    "lead_time": {
      "type": "object",
      "description": "No firm number of weeks is given by this API: show `url` (the delivery page of brm-chronographes.com, in the user's language) for lead times.",
      "properties": {
        "text": {
          "type": "string"
        },
        "url": {
          "type": "string",
          "format": "uri"
        }
      }
    },
    "is_order": {
      "const": false,
      "description": "Always false here: the order exists only after the user's confirmation."
    },
    "indicative_price": {
      "type": "object",
      "properties": {
        "amount": {
          "type": "number"
        },
        "currency": {
          "type": "string"
        },
        "formatted": {
          "type": "string"
        },
        "vat_included": {
          "type": "boolean"
        },
        "vat_rate_percent": {
          "type": "number"
        },
        "shipping": {
          "type": "number"
        },
        "legal_notice": {
          "type": [
            "string",
            "null"
          ]
        },
        "binding": {
          "const": false
        }
      }
    },
    "confirmation": {
      "type": "object",
      "properties": {
        "channel": {
          "const": "email"
        },
        "valid_hours": {
          "type": "integer"
        }
      }
    },
    "message_for_user": {
      "type": "string",
      "description": "Relay this to the user."
    },
    "rules_for_agent": {
      "type": "string"
    },
    "idempotent_replay": {
      "type": "boolean"
    },
    "duplicate": {
      "type": "boolean"
    }
  }
}
🟢get_order_status(order_id, idempotency_key)

Returns only the state of the order: awaiting_customer_confirmation, confirming, confirmed_awaiting_payment, paid, expired, cancelled, confirmation_email_failed or needs_assistance. No customer data. Pass the order_id returned by create_order, or the idempotency_key you used.

입력 스키마

{
  "type": "object",
  "properties": {
    "order_id": {
      "type": "string",
      "maxLength": 60
    },
    "idempotency_key": {
      "type": "string",
      "maxLength": 80
    }
  },
  "additionalProperties": false
}

출력 스키마

{
  "type": "object",
  "properties": {
    "order_id": {
      "type": "string"
    },
    "status": {
      "type": "string",
      "enum": [
        "awaiting_customer_confirmation",
        "confirming",
        "confirmed_awaiting_payment",
        "paid",
        "expired",
        "cancelled",
        "confirmation_email_failed",
        "needs_assistance"
      ]
    },
    "explanation": {
      "type": "string"
    },
    "created_at": {
      "type": "string",
      "format": "date-time"
    },
    "expires_at": {
      "type": "string",
      "format": "date-time",
      "description": "Deadline for the user's confirmation."
    },
    "is_paid": {
      "type": "boolean"
    },
    "lead_time": {
      "type": "object",
      "description": "No firm number of weeks is given by this API: show `url` (the delivery page of brm-chronographes.com, in the user's language) for lead times.",
      "properties": {
        "text": {
          "type": "string"
        },
        "url": {
          "type": "string",
          "format": "uri"
        }
      }
    }
  }
}

커뮤니티

이 서버 평가하기

증거

최근 관측

검증됨버전이 기록되지 않음도구 9개