Hello Club MCP by usefulapi

Read Hello Club members, events, bookings and transactions; add members and charges.

사용해야 할까요

품질 및 안전성

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

발견 사항 (2)

  • LOWTool 'hello_club_list_membership_types' name length outside 3-30 rangehello_club_list_membership_types에서
  • LOWTool 'hello_club_list_event_attendees' name length outside 3-30 rangehello_club_list_event_attendees에서

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

컨텍스트 비용

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

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

설치

원클릭 설치

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

{
  "mcpServers": {
    "hello-club": {
      "url": "https://hello-club.usefulapi.io/mcp"
    }
  }
}

원격 엔드포인트

https://hello-club.usefulapi.io/mcpstreamable-http

할 수 있는 일

도구 목록

도구 (14)

🟢 읽기 전용🟡 쓰기🔴 삭제⚪ 알 수 없음
🟢hello_club_list_members(search, gender, role, is_staff, has_money_owing, ...)

List or search the club's members (people and staff) with contact details, roles, memberships (subscriptions), account credit and amount owing. Filter by free text, gender, role, staff, money owing, account credit, current subscription state, ending subscriptions or a membership type. GET /member.

입력 스키마

{
  "type": "object",
  "properties": {
    "search": {
      "description": "Free-text search (name, email, member number...).",
      "type": "string",
      "minLength": 1,
      "maxLength": 200
    },
    "gender": {
      "description": "Filter on gender.",
      "type": "string",
      "enum": [
        "female",
        "male",
        "diverse",
        "hidden",
        "unknown"
      ]
    },
    "role": {
      "description": "Filter on role.",
      "type": "string",
      "enum": [
        "admin",
        "viewer",
        "eventManager",
        "member"
      ]
    },
    "is_staff": {
      "description": "Only staff members (true) or only non-staff (false).",
      "type": "boolean"
    },
    "has_money_owing": {
      "description": "Only members with unpaid transactions (true) or without (false).",
      "type": "boolean"
    },
    "has_account_credit": {
      "description": "Only members with account credit (true) or without (false).",
      "type": "boolean"
    },
    "with_current_subscription": {
      "description": "Only members with a current membership subscription.",
      "type": "boolean"
    },
    "without_current_subscription": {
      "description": "Only members without a current membership subscription.",
      "type": "boolean"
    },
    "subscription_ending": {
      "description": "Members whose subscription ends within the next hour/day/week/month/year.",
      "type": "string",
      "enum": [
        "hour",
        "day",
        "week",
        "month",
        "year"
      ]
    },
    "subscription_ended": {
      "description": "Members whose subscription ended within the past hour/day/week/month/year.",
      "type": "string",
      "enum": [
        "hour",
        "day",
        "week",
        "month",
        "year"
      ]
    },
    "membership_id": {
      "description": "Membership type id (hello_club_list_membership_types), used together with one of the subscription filters.",
      "type": "string",
      "pattern": "^[0-9a-fA-F]{24}$"
    },
    "signed_up_since": {
      "description": "Sign-up date threshold.",
      "type": "string",
      "pattern": "^\\d{4}-\\d{2}-\\d{2}(?:[T ]\\d{2}:\\d{2}(?::\\d{2}(?:\\.\\d{1,3})?)?(?:Z|[+-]\\d{2}:\\d{2})?)?$"
    },
    "updated_since": {
      "description": "Only members updated on or after this timestamp.",
      "type": "string",
      "pattern": "^\\d{4}-\\d{2}-\\d{2}(?:[T ]\\d{2}:\\d{2}(?::\\d{2}(?:\\.\\d{1,3})?)?(?:Z|[+-]\\d{2}:\\d{2})?)?$"
    },
    "limit": {
      "description": "Results per page, 1-100 (default 25).",
      "type": "integer",
      "minimum": 1,
      "maximum": 100
    },
    "offset": {
      "description": "Number of results to skip (default 0). Pass the previous reply's next_offset.",
      "type": "integer",
      "minimum": 0,
      "maximum": 1000000
    },
    "fields": {
      "description": "Only return these fields of each item (e.g. [\"id\",\"firstName\",\"lastName\",\"email\"]). Smaller replies are faster.",
      "minItems": 1,
      "maxItems": 40,
      "type": "array",
      "items": {
        "type": "string",
        "pattern": "^[A-Za-z][A-Za-z0-9_.]{0,59}$"
      }
    }
  },
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢hello_club_get_member(member_id)

One member by id: profile, contact details, roles, subscriptions, account credit, amount owing, custom fields. Password hashes and payment-provider data are not returned. GET /member/{id}.

입력 스키마

{
  "type": "object",
  "properties": {
    "member_id": {
      "type": "string",
      "pattern": "^[0-9a-fA-F]{24}$",
      "description": "Hello Club member id (24 hex characters) - find it with hello_club_list_members."
    }
  },
  "required": [
    "member_id"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢hello_club_list_membership_types

The membership types (plans) the club sells: name, fee, term, age limits, renewal rules and access. GET /membership.

입력 스키마

{
  "type": "object",
  "properties": {},
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢hello_club_get_membership_type(membership_id)

One membership type by id. GET /membership/{id}.

입력 스키마

{
  "type": "object",
  "properties": {
    "membership_id": {
      "type": "string",
      "pattern": "^[0-9a-fA-F]{24}$",
      "description": "Membership type id."
    }
  },
  "required": [
    "membership_id"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢hello_club_list_events(from_date, to_date, search, is_recurring, is_hidden, ...)

List or search events and classes (sessions, courses, tournaments) with dates, activity, area, organiser, capacity and attendance rules. Filter by date range, recurring, hidden, public, has attendees, has spaces left, rule type, activity, area or organiser. GET /event.

입력 스키마

{
  "type": "object",
  "properties": {
    "from_date": {
      "description": "Events from this date on (use together with to_date).",
      "type": "string",
      "pattern": "^\\d{4}-\\d{2}-\\d{2}(?:[T ]\\d{2}:\\d{2}(?::\\d{2}(?:\\.\\d{1,3})?)?(?:Z|[+-]\\d{2}:\\d{2})?)?$"
    },
    "to_date": {
      "description": "Events up to this date (use together with from_date).",
      "type": "string",
      "pattern": "^\\d{4}-\\d{2}-\\d{2}(?:[T ]\\d{2}:\\d{2}(?::\\d{2}(?:\\.\\d{1,3})?)?(?:Z|[+-]\\d{2}:\\d{2})?)?$"
    },
    "search": {
      "description": "Free-text search.",
      "type": "string",
      "minLength": 1,
      "maxLength": 200
    },
    "is_recurring": {
      "description": "Only recurring events (true) or one-off events (false).",
      "type": "boolean"
    },
    "is_hidden": {
      "description": "Only hidden events (true) or visible ones (false).",
      "type": "boolean"
    },
    "is_public": {
      "description": "Only public events (true) or member-only ones (false).",
      "type": "boolean"
    },
    "has_attendees": {
      "description": "Only events with at least one attendee.",
      "type": "boolean"
    },
    "has_spaces_left": {
      "description": "Only events that still have places left.",
      "type": "boolean"
    },
    "rule_type": {
      "description": "Only events with this attendance rule type.",
      "type": "string",
      "enum": [
        "free",
        "fee",
        "coupon",
        "membership"
      ]
    },
    "activity_id": {
      "description": "Only events of this activity id.",
      "type": "string",
      "pattern": "^[0-9a-fA-F]{24}$"
    },
    "area_id": {
      "description": "Only events in this area id.",
      "type": "string",
      "pattern": "^[0-9a-fA-F]{24}$"
    },
    "organiser_id": {
      "description": "Only events organised by this member id.",
      "type": "string",
      "pattern": "^[0-9a-fA-F]{24}$"
    },
    "membership_id": {
      "description": "Only events that can be attended with this membership type id.",
      "type": "string",
      "pattern": "^[0-9a-fA-F]{24}$"
    },
    "category_id": {
      "description": "Only events in this category id.",
      "type": "string",
      "pattern": "^[0-9a-fA-F]{24}$"
    },
    "limit": {
      "description": "Results per page, 1-100 (default 25).",
      "type": "integer",
      "minimum": 1,
      "maximum": 100
    },
    "offset": {
      "description": "Number of results to skip (default 0). Pass the previous reply's next_offset.",
      "type": "integer",
      "minimum": 0,
      "maximum": 1000000
    },
    "fields": {
      "description": "Only return these fields of each item (e.g. [\"id\",\"firstName\",\"lastName\",\"email\"]). Smaller replies are faster.",
      "minItems": 1,
      "maxItems": 40,
      "type": "array",
      "items": {
        "type": "string",
        "pattern": "^[A-Za-z][A-Za-z0-9_.]{0,59}$"
      }
    }
  },
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢hello_club_get_event(event_id)

One event by id: dates, recurrence, activity, area, organiser, capacity, attendance rules, questions. GET /event/{id}.

입력 스키마

{
  "type": "object",
  "properties": {
    "event_id": {
      "type": "string",
      "pattern": "^[0-9a-fA-F]{24}$",
      "description": "Event id - find it with hello_club_list_events."
    }
  },
  "required": [
    "event_id"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢hello_club_list_event_attendees(event_id, member_id, guest_id, limit, offset, ...)

List who is signed up to events: member or guest, event, sign-up date, paid state, whether they attended. Filter by event, member or guest. GET /eventAttendee.

입력 스키마

{
  "type": "object",
  "properties": {
    "event_id": {
      "description": "Only attendees of this event.",
      "type": "string",
      "pattern": "^[0-9a-fA-F]{24}$"
    },
    "member_id": {
      "description": "Only attendances of this member.",
      "type": "string",
      "pattern": "^[0-9a-fA-F]{24}$"
    },
    "guest_id": {
      "description": "Only attendances of this guest.",
      "type": "string",
      "pattern": "^[0-9a-fA-F]{24}$"
    },
    "limit": {
      "description": "Results per page, 1-100 (default 25).",
      "type": "integer",
      "minimum": 1,
      "maximum": 100
    },
    "offset": {
      "description": "Number of results to skip (default 0). Pass the previous reply's next_offset.",
      "type": "integer",
      "minimum": 0,
      "maximum": 1000000
    },
    "fields": {
      "description": "Only return these fields of each item (e.g. [\"id\",\"firstName\",\"lastName\",\"email\"]). Smaller replies are faster.",
      "minItems": 1,
      "maxItems": 40,
      "type": "array",
      "items": {
        "type": "string",
        "pattern": "^[A-Za-z][A-Za-z0-9_.]{0,59}$"
      }
    }
  },
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢hello_club_list_bookings(from_date, to_date, search, member_id, activity_id, ...)

List resource bookings (courts, rooms, lanes): owner, activity, area, start/end, paid state, recurrence. Filter by date range, member, activity, mode, area, recurring, paid or removed. GET /booking.

입력 스키마

{
  "type": "object",
  "properties": {
    "from_date": {
      "description": "Bookings from this date on (use together with to_date).",
      "type": "string",
      "pattern": "^\\d{4}-\\d{2}-\\d{2}(?:[T ]\\d{2}:\\d{2}(?::\\d{2}(?:\\.\\d{1,3})?)?(?:Z|[+-]\\d{2}:\\d{2})?)?$"
    },
    "to_date": {
      "description": "Bookings up to this date (use together with from_date).",
      "type": "string",
      "pattern": "^\\d{4}-\\d{2}-\\d{2}(?:[T ]\\d{2}:\\d{2}(?::\\d{2}(?:\\.\\d{1,3})?)?(?:Z|[+-]\\d{2}:\\d{2})?)?$"
    },
    "search": {
      "description": "Free-text search.",
      "type": "string",
      "minLength": 1,
      "maxLength": 200
    },
    "member_id": {
      "description": "Only bookings that include this member.",
      "type": "string",
      "pattern": "^[0-9a-fA-F]{24}$"
    },
    "activity_id": {
      "description": "Only bookings of this activity.",
      "type": "string",
      "pattern": "^[0-9a-fA-F]{24}$"
    },
    "mode_id": {
      "description": "Only bookings of this mode.",
      "type": "string",
      "pattern": "^[0-9a-fA-F]{24}$"
    },
    "area_id": {
      "description": "Only bookings of this area.",
      "type": "string",
      "pattern": "^[0-9a-fA-F]{24}$"
    },
    "is_recurring": {
      "description": "Only recurring bookings (true) or one-off bookings (false).",
      "type": "boolean"
    },
    "is_paid": {
      "description": "Only paid (true) or unpaid (false) bookings.",
      "type": "boolean"
    },
    "is_removed": {
      "description": "Only removed (true) or active (false) bookings.",
      "type": "boolean"
    },
    "limit": {
      "description": "Results per page, 1-100 (default 25).",
      "type": "integer",
      "minimum": 1,
      "maximum": 100
    },
    "offset": {
      "description": "Number of results to skip (default 0). Pass the previous reply's next_offset.",
      "type": "integer",
      "minimum": 0,
      "maximum": 1000000
    },
    "fields": {
      "description": "Only return these fields of each item (e.g. [\"id\",\"firstName\",\"lastName\",\"email\"]). Smaller replies are faster.",
      "minItems": 1,
      "maxItems": 40,
      "type": "array",
      "items": {
        "type": "string",
        "pattern": "^[A-Za-z][A-Za-z0-9_.]{0,59}$"
      }
    }
  },
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢hello_club_list_transactions(member_id, type, is_paid, is_credit, date_field, ...)

List the club's financial transactions (invoices, charges, credits): member, type, amount, tax, due and payment dates, paid state. Filter by member, type, paid, credit or a date range on date / dueDate / paymentDate. GET /transaction.

입력 스키마

{
  "type": "object",
  "properties": {
    "member_id": {
      "description": "Only transactions of this member.",
      "type": "string",
      "pattern": "^[0-9a-fA-F]{24}$"
    },
    "type": {
      "description": "Transaction type.",
      "type": "string",
      "enum": [
        "accountCredit",
        "activity",
        "booking",
        "coupon",
        "deposit",
        "donation",
        "event",
        "interclub",
        "other",
        "purchase",
        "resource",
        "subscription"
      ]
    },
    "is_paid": {
      "description": "Only paid (true) or unpaid (false) transactions.",
      "type": "boolean"
    },
    "is_credit": {
      "description": "Only credit (true) or charge (false) transactions.",
      "type": "boolean"
    },
    "date_field": {
      "description": "Which date from_date / to_date apply to (default date).",
      "type": "string",
      "enum": [
        "date",
        "dueDate",
        "paymentDate"
      ]
    },
    "from_date": {
      "description": "From this date on (use together with to_date).",
      "type": "string",
      "pattern": "^\\d{4}-\\d{2}-\\d{2}(?:[T ]\\d{2}:\\d{2}(?::\\d{2}(?:\\.\\d{1,3})?)?(?:Z|[+-]\\d{2}:\\d{2})?)?$"
    },
    "to_date": {
      "description": "Up to this date (use together with from_date).",
      "type": "string",
      "pattern": "^\\d{4}-\\d{2}-\\d{2}(?:[T ]\\d{2}:\\d{2}(?::\\d{2}(?:\\.\\d{1,3})?)?(?:Z|[+-]\\d{2}:\\d{2})?)?$"
    },
    "limit": {
      "description": "Results per page, 1-100 (default 25).",
      "type": "integer",
      "minimum": 1,
      "maximum": 100
    },
    "offset": {
      "description": "Number of results to skip (default 0). Pass the previous reply's next_offset.",
      "type": "integer",
      "minimum": 0,
      "maximum": 1000000
    },
    "fields": {
      "description": "Only return these fields of each item (e.g. [\"id\",\"firstName\",\"lastName\",\"email\"]). Smaller replies are faster.",
      "minItems": 1,
      "maxItems": 40,
      "type": "array",
      "items": {
        "type": "string",
        "pattern": "^[A-Za-z][A-Za-z0-9_.]{0,59}$"
      }
    }
  },
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢hello_club_get_transaction(transaction_id)

One transaction by id: member, type, amount, tax, details, dates, paid state. GET /transaction/{id}.

입력 스키마

{
  "type": "object",
  "properties": {
    "transaction_id": {
      "type": "string",
      "pattern": "^[0-9a-fA-F]{24}$",
      "description": "Transaction id - find it with hello_club_list_transactions."
    }
  },
  "required": [
    "transaction_id"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢hello_club_list_check_ins(member_id, type, is_unknown, search, limit, ...)

List check-in logs (members arriving at the club): who, when, how (type). Filter by member or type, or only unknown people. GET /checkInLog.

입력 스키마

{
  "type": "object",
  "properties": {
    "member_id": {
      "description": "Only check-ins of this member.",
      "type": "string",
      "pattern": "^[0-9a-fA-F]{24}$"
    },
    "type": {
      "description": "Check-in type (as recorded by the club).",
      "type": "string",
      "minLength": 1,
      "maxLength": 60
    },
    "is_unknown": {
      "description": "Only check-ins of unknown people (true).",
      "type": "boolean"
    },
    "search": {
      "description": "Free-text search.",
      "type": "string",
      "minLength": 1,
      "maxLength": 200
    },
    "limit": {
      "description": "Results per page, 1-100 (default 25).",
      "type": "integer",
      "minimum": 1,
      "maximum": 100
    },
    "offset": {
      "description": "Number of results to skip (default 0). Pass the previous reply's next_offset.",
      "type": "integer",
      "minimum": 0,
      "maximum": 1000000
    },
    "fields": {
      "description": "Only return these fields of each item (e.g. [\"id\",\"firstName\",\"lastName\",\"email\"]). Smaller replies are faster.",
      "minItems": 1,
      "maxItems": 40,
      "type": "array",
      "items": {
        "type": "string",
        "pattern": "^[A-Za-z][A-Za-z0-9_.]{0,59}$"
      }
    }
  },
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢hello_club_list_access_logs(from_date, to_date, member_id, event_id, door, ...)

List door / access-control logs in a date range: member, door, event, whether it was an override or an unknown person. GET /accessLog.

입력 스키마

{
  "type": "object",
  "properties": {
    "from_date": {
      "type": "string",
      "pattern": "^\\d{4}-\\d{2}-\\d{2}(?:[T ]\\d{2}:\\d{2}(?::\\d{2}(?:\\.\\d{1,3})?)?(?:Z|[+-]\\d{2}:\\d{2})?)?$",
      "description": "Start of the range (required)."
    },
    "to_date": {
      "type": "string",
      "pattern": "^\\d{4}-\\d{2}-\\d{2}(?:[T ]\\d{2}:\\d{2}(?::\\d{2}(?:\\.\\d{1,3})?)?(?:Z|[+-]\\d{2}:\\d{2})?)?$",
      "description": "End of the range (required)."
    },
    "member_id": {
      "description": "Only entries of this member.",
      "type": "string",
      "pattern": "^[0-9a-fA-F]{24}$"
    },
    "event_id": {
      "description": "Only entries for this event.",
      "type": "string",
      "pattern": "^[0-9a-fA-F]{24}$"
    },
    "door": {
      "description": "Only entries for this door id.",
      "type": "string",
      "minLength": 1,
      "maxLength": 100
    },
    "is_override": {
      "description": "Only manual overrides (true).",
      "type": "boolean"
    },
    "is_unknown": {
      "description": "Only unknown people (true).",
      "type": "boolean"
    },
    "limit": {
      "description": "Results per page, 1-100 (default 25).",
      "type": "integer",
      "minimum": 1,
      "maximum": 100
    },
    "offset": {
      "description": "Number of results to skip (default 0). Pass the previous reply's next_offset.",
      "type": "integer",
      "minimum": 0,
      "maximum": 1000000
    },
    "fields": {
      "description": "Only return these fields of each item (e.g. [\"id\",\"firstName\",\"lastName\",\"email\"]). Smaller replies are faster.",
      "minItems": 1,
      "maxItems": 40,
      "type": "array",
      "items": {
        "type": "string",
        "pattern": "^[A-Za-z][A-Za-z0-9_.]{0,59}$"
      }
    }
  },
  "required": [
    "from_date",
    "to_date"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟡hello_club_create_member(first_name, last_name, email, mobile, phone, ...)

WRITE: create a new member in the club (first and last name required; email, mobile, phone and gender optional). Creates a real member record in the club's database; it does not assign a membership or send an invoice. Not idempotent: calling twice creates two members, so search with hello_club_list_members first. POST /member.

입력 스키마

{
  "type": "object",
  "properties": {
    "first_name": {
      "type": "string",
      "minLength": 1,
      "maxLength": 100,
      "description": "First name."
    },
    "last_name": {
      "type": "string",
      "minLength": 1,
      "maxLength": 100,
      "description": "Last name."
    },
    "email": {
      "description": "Email address.",
      "type": "string",
      "maxLength": 254,
      "format": "email",
      "pattern": "^(?:[A-Za-z0-9_'+\\-]+\\.)*[A-Za-z0-9_'+\\-]*[A-Za-z0-9_+-]@(?:[A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$"
    },
    "mobile": {
      "description": "Mobile phone number.",
      "type": "string",
      "minLength": 3,
      "maxLength": 40
    },
    "phone": {
      "description": "Other phone number.",
      "type": "string",
      "minLength": 3,
      "maxLength": 40
    },
    "gender": {
      "description": "Gender.",
      "type": "string",
      "enum": [
        "female",
        "male",
        "other"
      ]
    }
  },
  "required": [
    "first_name",
    "last_name"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🔴hello_club_create_transaction(member_id, type, amount, details, is_credit, ...)

WRITE: create a financial transaction for a member (a charge, or a credit when is_credit is true), e.g. an invoice line or a manual adjustment. This changes the member's amount owing / account credit in the club's books and, with notify_by_email, emails the member. Not idempotent: calling twice creates two transactions. Confirm member, amount and type with the user first. POST /transaction.

입력 스키마

{
  "type": "object",
  "properties": {
    "member_id": {
      "type": "string",
      "pattern": "^[0-9a-fA-F]{24}$",
      "description": "Member the transaction is for."
    },
    "type": {
      "type": "string",
      "enum": [
        "accountCredit",
        "activity",
        "booking",
        "coupon",
        "deposit",
        "donation",
        "event",
        "interclub",
        "other",
        "purchase",
        "resource",
        "subscription"
      ],
      "description": "Transaction type (use 'other' for a manual charge)."
    },
    "amount": {
      "type": "number",
      "exclusiveMinimum": 0,
      "maximum": 1000000,
      "description": "Amount in the club's currency, a positive number (tax inclusive)."
    },
    "details": {
      "type": "string",
      "minLength": 1,
      "maxLength": 500,
      "description": "Description shown on the invoice."
    },
    "is_credit": {
      "description": "True = a credit to the member instead of a charge (default false).",
      "type": "boolean"
    },
    "date": {
      "description": "Transaction date (default: now).",
      "type": "string",
      "pattern": "^\\d{4}-\\d{2}-\\d{2}(?:[T ]\\d{2}:\\d{2}(?::\\d{2}(?:\\.\\d{1,3})?)?(?:Z|[+-]\\d{2}:\\d{2})?)?$"
    },
    "due_date": {
      "description": "Payment due date.",
      "type": "string",
      "pattern": "^\\d{4}-\\d{2}-\\d{2}(?:[T ]\\d{2}:\\d{2}(?::\\d{2}(?:\\.\\d{1,3})?)?(?:Z|[+-]\\d{2}:\\d{2})?)?$"
    },
    "notify_by_email": {
      "description": "Email the member about this transaction (default false).",
      "type": "boolean"
    }
  },
  "required": [
    "member_id",
    "type",
    "amount",
    "details"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}

커뮤니티

이 서버 평가하기

증거

최근 관측

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