deactivate_coupon
Deactivate a coupon to prevent further redemptions. This tool invalidates coupon codes by ID, ensuring they can no longer be used for discounts.
Instructions
Deactivate a coupon so it can no longer be redeemed.
Input Schema
TableJSON Schema
| Name | Required | Description | Default |
|---|---|---|---|
| coupon_id | Yes |
Implementation Reference
- src/stream_mcp/tools/coupons.py:90-104 (handler)The deactivate_coupon tool handler that deactivates a coupon by setting is_active=False and making a PUT request to the Stream API.@mcp.tool async def deactivate_coupon( coupon_id: str, ctx: Context = None, # type: ignore[assignment] ) -> dict[str, Any]: """Deactivate a coupon so it can no longer be redeemed.""" body = UpdateCouponRequest(is_active=False) client = await get_client(ctx) try: return await client.put( f"{_BASE}/{coupon_id}", body.model_dump(exclude_none=True), ) except StreamAPIError as exc: return _err(exc)
- UpdateCouponRequest schema defining the request body for updating coupons, including the is_active field used for deactivation.class UpdateCouponRequest(BaseModel): """Request body for updating a coupon.""" name: str | None = Field(default=None, min_length=1, max_length=80, description="Updated coupon name.") discount_value: float | None = Field(default=None, ge=0, description="Updated discount value.") currency: str | None = Field(default=None, description="Updated currency code.") is_percentage: bool | None = Field(default=None, description="Updated discount type.") is_active: bool | None = Field(default=None, description="Updated active status.")
- src/stream_mcp/tools/coupons.py:24-24 (registration)The register function that contains all coupon tool registrations including deactivate_coupon.def register(mcp: FastMCP) -> None: