Members.dev MCP by usefulapi

Read members, subscriptions, bookings, invoices, payments; create and update members in Members.dev.

我該用這個嗎

品質與安全性

A
說明品質
94%
結構描述完整度
91%
命名品質
79%
汙染風險
100%
權限相符程度
100%
協定合規性
100%

發現項目(1)

  • LOWTool 'membersdev_get_member_by_external_id' name length outside 3-30 range在 membersdev_get_member_by_external_id 中

根據工具定義與協定合規性的自動化分析。

上下文成本

~3,949Token(工具定義)
~1.5 KB典型回應大小
顯著的注意力影響(128k 上下文的 3.09%)

這是每次將伺服器的工具載入模型上下文時所消耗的約略 token 數量。數量越高,可用於其他工作的注意力就越少。

安裝

一鍵安裝

將以下內容加入你的 `claude_desktop_config.json` 檔案:

{
  "mcpServers": {
    "members-dev": {
      "url": "https://members-dev.usefulapi.io/mcp"
    }
  }
}

遠端端點

https://members-dev.usefulapi.io/mcpstreamable-http

它能做什麼

工具清單

工具(23)

🟢 唯讀🟡 寫入🔴 刪除⚪ 未知
🟢membersdev_get_account

Get the account that owns the API key (id, email, role, organizations). Members.dev API: GET /v1/accounts/me.

輸入結構描述

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

List the organizations (venues, clubs) the key can reach. Use an organization id as the optional 'Organization id' at login to scope the key. GET /v1/organizations.

輸入結構描述

{
  "type": "object",
  "properties": {
    "page": {
      "description": "Page number (default 1).",
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 9007199254740991
    },
    "size": {
      "description": "Items per page (max 100).",
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 100
    }
  },
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢membersdev_list_members(search, email, external_id, status, group_id, ...)

List and search members. Filter by text search, email, external id, status, group or product. Newest first by default. GET /v1/members.

輸入結構描述

{
  "type": "object",
  "properties": {
    "search": {
      "description": "Free-text search over name and email.",
      "type": "string"
    },
    "email": {
      "description": "Exact email address.",
      "type": "string"
    },
    "external_id": {
      "description": "Your own id stored on the member.",
      "type": "string"
    },
    "status": {
      "description": "Member statuses to include.",
      "type": "array",
      "items": {
        "type": "string",
        "enum": [
          "draft",
          "pending",
          "active",
          "archived",
          "rejected"
        ]
      }
    },
    "group_id": {
      "description": "Only members in these group ids.",
      "type": "array",
      "items": {
        "type": "string"
      }
    },
    "product_id": {
      "description": "Only members with these membership product ids.",
      "type": "array",
      "items": {
        "type": "string"
      }
    },
    "account_id": {
      "description": "Only members linked to this account id.",
      "type": "string"
    },
    "country_code": {
      "description": "Address country code.",
      "type": "string"
    },
    "city": {
      "description": "Address city.",
      "type": "string"
    },
    "sort_by": {
      "description": "Field to sort by.",
      "type": "string"
    },
    "sort_order": {
      "description": "Sort direction.",
      "type": "string",
      "enum": [
        "asc",
        "desc"
      ]
    },
    "page": {
      "description": "Page number (default 1).",
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 9007199254740991
    },
    "size": {
      "description": "Items per page (max 100).",
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 100
    }
  },
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢membersdev_get_member(member_id)

Get one member with subscriptions, groups and custom fields. GET /v1/members/{member_id}.

輸入結構描述

{
  "type": "object",
  "properties": {
    "member_id": {
      "type": "string",
      "description": "Member id."
    }
  },
  "required": [
    "member_id"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢membersdev_get_member_by_external_id(external_id)

Get one member by the external id you stored. GET /v1/members/external/{external_id}.

輸入結構描述

{
  "type": "object",
  "properties": {
    "external_id": {
      "type": "string",
      "description": "External id."
    }
  },
  "required": [
    "external_id"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢membersdev_list_products(page, size)

List membership products (plans) with price, billing period and status. GET /v1/products.

輸入結構描述

{
  "type": "object",
  "properties": {
    "page": {
      "description": "Page number (default 1).",
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 9007199254740991
    },
    "size": {
      "description": "Items per page (max 100).",
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 100
    }
  },
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢membersdev_get_product(product_id)

Get one membership product. GET /v1/products/{product_id}.

輸入結構描述

{
  "type": "object",
  "properties": {
    "product_id": {
      "type": "string",
      "description": "Product id."
    }
  },
  "required": [
    "product_id"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢membersdev_list_subscriptions(product_ids, member_ids, page, size)

List member subscriptions with status, period dates and product. GET /v1/subscriptions.

輸入結構描述

{
  "type": "object",
  "properties": {
    "product_ids": {
      "description": "Only these product ids.",
      "type": "array",
      "items": {
        "type": "string"
      }
    },
    "member_ids": {
      "description": "Only these member ids.",
      "type": "array",
      "items": {
        "type": "string"
      }
    },
    "page": {
      "description": "Page number (default 1).",
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 9007199254740991
    },
    "size": {
      "description": "Items per page (max 100).",
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 100
    }
  },
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢membersdev_get_subscription(subscription_id)

Get one subscription with invoices, credit notes and billing periods. GET /v1/subscriptions/{subscription_id}.

輸入結構描述

{
  "type": "object",
  "properties": {
    "subscription_id": {
      "type": "string",
      "description": "Subscription id."
    }
  },
  "required": [
    "subscription_id"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢membersdev_list_events(starts_at, ends_at, single_events, limit, tags, ...)

List events and classes in a time window. Use single_events to expand recurring events. GET /v1/events.

輸入結構描述

{
  "type": "object",
  "properties": {
    "starts_at": {
      "description": "Window start, ISO 8601 date-time.",
      "type": "string"
    },
    "ends_at": {
      "description": "Window end, ISO 8601 date-time.",
      "type": "string"
    },
    "single_events": {
      "description": "Expand recurring events into single occurrences.",
      "type": "boolean"
    },
    "limit": {
      "description": "Maximum events (1-500).",
      "type": "integer",
      "minimum": 1,
      "maximum": 500
    },
    "tags": {
      "description": "Only events with these tags.",
      "type": "array",
      "items": {
        "type": "string"
      }
    },
    "hosts": {
      "description": "Only events with these host ids.",
      "type": "array",
      "items": {
        "type": "string"
      }
    },
    "resource_id": {
      "description": "Only events using this resource.",
      "type": "string"
    },
    "category_id": {
      "description": "Only events in this category.",
      "type": "string"
    },
    "page": {
      "description": "Page number (default 1).",
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 9007199254740991
    },
    "size": {
      "description": "Items per page (max 100).",
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 100
    }
  },
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢membersdev_get_event(event_id)

Get one event. GET /v1/events/{event_id}.

輸入結構描述

{
  "type": "object",
  "properties": {
    "event_id": {
      "type": "string",
      "description": "Event id."
    }
  },
  "required": [
    "event_id"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢membersdev_list_bookings(member_id, event_id, resource_id, starts_at_local, ends_at_local, ...)

List event bookings, filtered by member, event, status or time. GET /v1/bookings.

輸入結構描述

{
  "type": "object",
  "properties": {
    "member_id": {
      "description": "Only this member.",
      "type": "string"
    },
    "event_id": {
      "description": "Only this event.",
      "type": "string"
    },
    "resource_id": {
      "description": "Only this resource.",
      "type": "string"
    },
    "starts_at_local": {
      "description": "Start of window (local time, ISO 8601).",
      "type": "string"
    },
    "ends_at_local": {
      "description": "End of window (local time, ISO 8601).",
      "type": "string"
    },
    "status": {
      "description": "Booking status.",
      "type": "string",
      "enum": [
        "held",
        "confirmed",
        "cancelled",
        "expired",
        "waitlisted"
      ]
    },
    "attendance_status": {
      "description": "Attendance status.",
      "type": "string",
      "enum": [
        "attended",
        "no_show",
        "unmarked"
      ]
    },
    "sort_by": {
      "description": "Field to sort by.",
      "type": "string"
    },
    "sort_order": {
      "description": "Sort direction.",
      "type": "string",
      "enum": [
        "asc",
        "desc"
      ]
    },
    "page": {
      "description": "Page number (default 1).",
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 9007199254740991
    },
    "size": {
      "description": "Items per page (max 100).",
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 100
    }
  },
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢membersdev_get_booking(booking_id)

Get one booking. GET /v1/bookings/{event_booking_id}.

輸入結構描述

{
  "type": "object",
  "properties": {
    "booking_id": {
      "type": "string",
      "description": "Booking id."
    }
  },
  "required": [
    "booking_id"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢membersdev_list_invoices(status, member_id, subscription_id, sort_by, sort_order, ...)

List invoices, filtered by status, member or subscription. Amounts are in the smallest currency unit. GET /v1/invoices.

輸入結構描述

{
  "type": "object",
  "properties": {
    "status": {
      "description": "Invoice status.",
      "type": "string",
      "enum": [
        "draft",
        "open",
        "partially_paid",
        "past_due",
        "paid",
        "void",
        "deleted"
      ]
    },
    "member_id": {
      "description": "Only these member ids.",
      "type": "array",
      "items": {
        "type": "string"
      }
    },
    "subscription_id": {
      "description": "Only this subscription.",
      "type": "string"
    },
    "sort_by": {
      "description": "Field to sort by.",
      "type": "string"
    },
    "sort_order": {
      "description": "Sort direction.",
      "type": "string",
      "enum": [
        "asc",
        "desc"
      ]
    },
    "page": {
      "description": "Page number (default 1).",
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 9007199254740991
    },
    "size": {
      "description": "Items per page (max 100).",
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 100
    }
  },
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢membersdev_get_invoice(invoice_id)

Get one invoice with its lines and payment allocations. GET /v1/invoices/{invoice_id}.

輸入結構描述

{
  "type": "object",
  "properties": {
    "invoice_id": {
      "type": "string",
      "description": "Invoice id."
    }
  },
  "required": [
    "invoice_id"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢membersdev_list_payments(member_id, invoice_id, status, page, size)

List payments, filtered by member, status or invoice. GET /v1/payments.

輸入結構描述

{
  "type": "object",
  "properties": {
    "member_id": {
      "description": "Only this member.",
      "type": "string"
    },
    "invoice_id": {
      "description": "Only this invoice.",
      "type": "string"
    },
    "status": {
      "description": "Payment status.",
      "type": "string",
      "enum": [
        "pending",
        "requires_payment_method",
        "requires_action",
        "processing",
        "succeeded",
        "failed",
        "canceled"
      ]
    },
    "page": {
      "description": "Page number (default 1).",
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 9007199254740991
    },
    "size": {
      "description": "Items per page (max 100).",
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 100
    }
  },
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢membersdev_list_credit_notes(member_id, subscription_id, page, size)

List credit notes, filtered by member or subscription. GET /v1/credit-notes.

輸入結構描述

{
  "type": "object",
  "properties": {
    "member_id": {
      "description": "Only these member ids.",
      "type": "array",
      "items": {
        "type": "string"
      }
    },
    "subscription_id": {
      "description": "Only this subscription.",
      "type": "string"
    },
    "page": {
      "description": "Page number (default 1).",
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 9007199254740991
    },
    "size": {
      "description": "Items per page (max 100).",
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 100
    }
  },
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢membersdev_list_groups(page, size)

List member groups. GET /v1/groups.

輸入結構描述

{
  "type": "object",
  "properties": {
    "page": {
      "description": "Page number (default 1).",
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 9007199254740991
    },
    "size": {
      "description": "Items per page (max 100).",
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 100
    }
  },
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢membersdev_list_benefits(page, size)

List benefits (entitlements) that products can grant. GET /v1/benefits.

輸入結構描述

{
  "type": "object",
  "properties": {
    "page": {
      "description": "Page number (default 1).",
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 9007199254740991
    },
    "size": {
      "description": "Items per page (max 100).",
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 100
    }
  },
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢membersdev_list_benefit_grants(member_ids, statuses, benefit_ids, subscription_ids, product_ids, ...)

List benefit grants (what each member holds and has left). GET /v1/grants.

輸入結構描述

{
  "type": "object",
  "properties": {
    "member_ids": {
      "description": "Only these member ids.",
      "type": "array",
      "items": {
        "type": "string"
      }
    },
    "statuses": {
      "description": "Grant statuses.",
      "type": "array",
      "items": {
        "type": "string",
        "enum": [
          "scheduled",
          "open",
          "depleted",
          "expired",
          "revoked"
        ]
      }
    },
    "benefit_ids": {
      "description": "Only these benefit ids.",
      "type": "array",
      "items": {
        "type": "string"
      }
    },
    "subscription_ids": {
      "description": "Only these subscription ids.",
      "type": "array",
      "items": {
        "type": "string"
      }
    },
    "product_ids": {
      "description": "Only these product ids.",
      "type": "array",
      "items": {
        "type": "string"
      }
    },
    "page": {
      "description": "Page number (default 1).",
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 9007199254740991
    },
    "size": {
      "description": "Items per page (max 100).",
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 100
    }
  },
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢membersdev_list_guests(status, member_id, guest_policy_id, page, size)

List guest registrations, filtered by status or host member. GET /v1/guests.

輸入結構描述

{
  "type": "object",
  "properties": {
    "status": {
      "description": "Guest statuses.",
      "type": "array",
      "items": {
        "type": "string",
        "enum": [
          "pending",
          "active",
          "rejected",
          "cancelled",
          "expired"
        ]
      }
    },
    "member_id": {
      "description": "Only guests of these member ids.",
      "type": "array",
      "items": {
        "type": "string"
      }
    },
    "guest_policy_id": {
      "description": "Only this guest policy.",
      "type": "string"
    },
    "page": {
      "description": "Page number (default 1).",
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 9007199254740991
    },
    "size": {
      "description": "Items per page (max 100).",
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 100
    }
  },
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟡membersdev_create_member(name, email, external_id, status, phone, ...)

WRITE: create a new member record. Does not charge anyone or send an invite. Creating twice makes two members, so check with membersdev_list_members first. POST /v1/members.

輸入結構描述

{
  "type": "object",
  "properties": {
    "name": {
      "type": "string",
      "minLength": 1,
      "description": "Full name."
    },
    "email": {
      "description": "Email address.",
      "type": "string"
    },
    "external_id": {
      "description": "Your own unique id for the member.",
      "type": "string"
    },
    "status": {
      "description": "Initial status.",
      "type": "string",
      "enum": [
        "draft",
        "pending",
        "active",
        "archived",
        "rejected"
      ]
    },
    "phone": {
      "description": "Phone object as the API defines it (MemberPhoneInput).",
      "type": "object",
      "propertyNames": {
        "type": "string"
      },
      "additionalProperties": {}
    },
    "address": {
      "description": "Address object as the API defines it (AddressInput).",
      "type": "object",
      "propertyNames": {
        "type": "string"
      },
      "additionalProperties": {}
    },
    "custom_fields": {
      "description": "Custom field values keyed by field key.",
      "type": "object",
      "propertyNames": {
        "type": "string"
      },
      "additionalProperties": {}
    }
  },
  "required": [
    "name"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟡membersdev_update_member(member_id, name, email, external_id, status, ...)

WRITE: change fields of an existing member (only the fields you pass). Setting status to archived or rejected changes the member's access. Repeating the same call has the same result. PATCH /v1/members/{member_id}.

輸入結構描述

{
  "type": "object",
  "properties": {
    "member_id": {
      "type": "string",
      "description": "Member id."
    },
    "name": {
      "description": "New full name.",
      "type": "string"
    },
    "email": {
      "description": "New email address.",
      "type": "string"
    },
    "external_id": {
      "description": "New external id.",
      "type": "string"
    },
    "status": {
      "description": "New status.",
      "type": "string",
      "enum": [
        "draft",
        "pending",
        "active",
        "archived",
        "rejected"
      ]
    },
    "phone": {
      "description": "Phone object as the API defines it (MemberPhoneInput).",
      "type": "object",
      "propertyNames": {
        "type": "string"
      },
      "additionalProperties": {}
    },
    "address": {
      "description": "Address object as the API defines it (AddressInput).",
      "type": "object",
      "propertyNames": {
        "type": "string"
      },
      "additionalProperties": {}
    },
    "custom_fields": {
      "description": "Custom field values keyed by field key.",
      "type": "object",
      "propertyNames": {
        "type": "string"
      },
      "additionalProperties": {}
    }
  },
  "required": [
    "member_id"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}

社群

為此伺服器評分

證據

近期觀測

已驗證未記錄版本23 個工具