sendbird
MCP server for Sendbird — chat users, channels, members, and messages from your AI client.
Sollte ich dies verwenden
Qualität und Sicherheit
Befunde (2)
- LOWin sendbird_list_group_channel_members
- LOWin sendbird_list_group_channels_by_user
Basierend auf einer automatisierten Analyse der Tool-Definitionen und der Einhaltung des Protokolls.
Kontextkosten
Dies ist die ungefähre Anzahl der Tokens, die jedes Mal verbraucht werden, wenn die Tools des Servers in den Kontext eines Modells geladen werden. Höhere Werte verringern die Aufmerksamkeit, die für andere Aufgaben verfügbar ist.
Installieren
Installation mit einem Klick
Fügen Sie dies Ihrer Datei `claude_desktop_config.json` hinzu:
{
"mcpServers": {
"sendbird": {
"url": "https://sendbird.usefulapi.io/mcp"
}
}
}Remote-Endpunkte
https://sendbird.usefulapi.io/mcpstreamable-httpWas es kann
Tool-Inventar
Tools (14)
🟢sendbird_list_users(token, limit, active_mode, show_bot, user_ids, ...)
List the users in the application. Supports filtering by activity, nickname, ids, and metadata. Platform API: GET /users. Returns { users[], next }.
Eingabe-Schema
{
"type": "object",
"properties": {
"token": {
"description": "Pagination token from a previous response's `next`.",
"type": "string"
},
"limit": {
"description": "Page size, 1-100. Default 10.",
"type": "integer",
"minimum": 1,
"maximum": 100
},
"active_mode": {
"description": "Filter by activation state. Default activated.",
"type": "string",
"enum": [
"activated",
"deactivated",
"all"
]
},
"show_bot": {
"description": "Include bot users. Default true.",
"type": "boolean"
},
"user_ids": {
"description": "Comma-separated user ids to fetch specific users.",
"type": "string"
},
"nickname": {
"description": "Exact nickname match.",
"type": "string"
},
"nickname_startswith": {
"description": "Prefix match on nickname.",
"type": "string"
},
"metadatakey": {
"description": "Metadata key to filter on (pair with metadatavalues_in).",
"type": "string"
},
"metadatavalues_in": {
"description": "Comma-separated metadata values matching metadatakey.",
"type": "string"
}
},
"$schema": "http://json-schema.org/draft-07/schema#"
}🟢sendbird_get_user(user_id, include_unread_count, custom_types, super_mode)
Fetch a single user by user_id. Platform API: GET /users/{user_id}.
Eingabe-Schema
{
"type": "object",
"properties": {
"user_id": {
"type": "string",
"description": "Target user id (percent-encoded automatically)."
},
"include_unread_count": {
"description": "Include the user's total unread message count.",
"type": "boolean"
},
"custom_types": {
"description": "Comma-separated channel custom types to scope the unread count.",
"type": "string"
},
"super_mode": {
"description": "Scope unread count by Supergroup vs. group channels.",
"type": "string",
"enum": [
"all",
"super",
"nonsuper"
]
}
},
"required": [
"user_id"
],
"$schema": "http://json-schema.org/draft-07/schema#"
}🟢sendbird_list_group_channels(token, limit, show_member, show_frozen, order, ...)
List group channels in the application, with rich filtering (name, members, distinct/public/super mode). Platform API: GET /group_channels. Returns { channels[], next }.
Eingabe-Schema
{
"type": "object",
"properties": {
"token": {
"description": "Pagination token from a previous response's `next`.",
"type": "string"
},
"limit": {
"description": "Page size, 1-100. Default 10.",
"type": "integer",
"minimum": 1,
"maximum": 100
},
"show_member": {
"description": "Include the member list in each channel.",
"type": "boolean"
},
"show_frozen": {
"description": "Include frozen channels. Default true.",
"type": "boolean"
},
"order": {
"description": "Sort order. Default chronological.",
"type": "string",
"enum": [
"chronological",
"latest_last_message",
"channel_name_alphabetical",
"metadata_value_alphabetical"
]
},
"custom_types": {
"description": "Comma-separated channel custom types to filter on.",
"type": "string"
},
"name_contains": {
"description": "Substring match on channel name.",
"type": "string"
},
"members_include_in": {
"description": "Comma-separated user ids; returns channels including any of them.",
"type": "string"
},
"distinct_mode": {
"description": "Filter by distinct flag. Default all.",
"type": "string",
"enum": [
"all",
"distinct",
"nondistinct"
]
},
"public_mode": {
"description": "Filter by public/private. Default all.",
"type": "string",
"enum": [
"all",
"private",
"public"
]
},
"super_mode": {
"description": "Filter by Supergroup vs. group. Default all.",
"type": "string",
"enum": [
"all",
"super",
"nonsuper"
]
}
},
"$schema": "http://json-schema.org/draft-07/schema#"
}🟢sendbird_get_group_channel(channel_url, show_member, show_read_receipt, show_delivery_receipt)
Fetch a single group channel by URL, optionally with members and receipts. Platform API: GET /group_channels/{channel_url}.
Eingabe-Schema
{
"type": "object",
"properties": {
"channel_url": {
"type": "string",
"description": "Group channel URL (percent-encoded automatically)."
},
"show_member": {
"description": "Include the member list.",
"type": "boolean"
},
"show_read_receipt": {
"description": "Include per-member read receipts.",
"type": "boolean"
},
"show_delivery_receipt": {
"description": "Include per-member delivery receipts.",
"type": "boolean"
}
},
"required": [
"channel_url"
],
"$schema": "http://json-schema.org/draft-07/schema#"
}🟢sendbird_list_group_channel_members(channel_url, token, limit, order, operator_filter, ...)
List the members of a group channel. Platform API: GET /group_channels/{channel_url}/members. Returns { members[], next }.
Eingabe-Schema
{
"type": "object",
"properties": {
"channel_url": {
"type": "string",
"description": "Group channel URL (percent-encoded automatically)."
},
"token": {
"description": "Pagination token from a previous response's `next`.",
"type": "string"
},
"limit": {
"description": "Page size, 1-100. Default 10.",
"type": "integer",
"minimum": 1,
"maximum": 100
},
"order": {
"description": "Sort order of members.",
"type": "string",
"enum": [
"member_nickname_alphabetical",
"operator_then_member_alphabetical"
]
},
"operator_filter": {
"description": "Filter by operator status. Default all.",
"type": "string",
"enum": [
"all",
"operator",
"nonoperator"
]
},
"member_state_filter": {
"description": "Filter by invitation/join state (e.g. joined, invited, invited_by_friend).",
"type": "string"
},
"show_read_receipt": {
"description": "Include each member's read receipt.",
"type": "boolean"
},
"show_delivery_receipt": {
"description": "Include each member's delivery receipt.",
"type": "boolean"
}
},
"required": [
"channel_url"
],
"$schema": "http://json-schema.org/draft-07/schema#"
}🟢sendbird_list_group_channels_by_user(user_id, token, limit, order, show_member, ...)
List the group channels a given user belongs to. Platform API: GET /users/{user_id}/my_group_channels. Returns { channels[], next }.
Eingabe-Schema
{
"type": "object",
"properties": {
"user_id": {
"type": "string",
"description": "Target user id (percent-encoded automatically)."
},
"token": {
"description": "Pagination token from a previous response's `next`.",
"type": "string"
},
"limit": {
"description": "Page size, 1-100. Default 10.",
"type": "integer",
"minimum": 1,
"maximum": 100
},
"order": {
"description": "Sort order. Default chronological.",
"type": "string",
"enum": [
"chronological",
"latest_last_message",
"channel_name_alphabetical",
"metadata_value_alphabetical"
]
},
"show_member": {
"description": "Include the member list in each channel.",
"type": "boolean"
},
"custom_types": {
"description": "Comma-separated channel custom types to filter on.",
"type": "string"
},
"distinct_mode": {
"description": "Filter by distinct flag. Default all.",
"type": "string",
"enum": [
"all",
"distinct",
"nondistinct"
]
},
"public_mode": {
"description": "Filter by public/private. Default all.",
"type": "string",
"enum": [
"all",
"private",
"public"
]
},
"hidden_mode": {
"description": "Filter by hidden state (e.g. unhidden_only, hidden_only, all).",
"type": "string"
}
},
"required": [
"user_id"
],
"$schema": "http://json-schema.org/draft-07/schema#"
}🟢sendbird_list_open_channels(token, limit, custom_types, name_contains, url_contains)
List open (public, participant-based) channels. Platform API: GET /open_channels. Returns { channels[], next }.
Eingabe-Schema
{
"type": "object",
"properties": {
"token": {
"description": "Pagination token from a previous response's `next`.",
"type": "string"
},
"limit": {
"description": "Page size, 1-100. Default 10.",
"type": "integer",
"minimum": 1,
"maximum": 100
},
"custom_types": {
"description": "Comma-separated channel custom types to filter on.",
"type": "string"
},
"name_contains": {
"description": "Substring match on channel name.",
"type": "string"
},
"url_contains": {
"description": "Substring match on channel URL.",
"type": "string"
}
},
"$schema": "http://json-schema.org/draft-07/schema#"
}🟢sendbird_get_open_channel(channel_url, participants_count)
Fetch a single open channel by URL. Platform API: GET /open_channels/{channel_url}.
Eingabe-Schema
{
"type": "object",
"properties": {
"channel_url": {
"type": "string",
"description": "Open channel URL (percent-encoded automatically)."
},
"participants_count": {
"description": "Include the current participant count.",
"type": "boolean"
}
},
"required": [
"channel_url"
],
"$schema": "http://json-schema.org/draft-07/schema#"
}🟢sendbird_list_messages(channel_type, channel_url, message_ts, message_id, prev_limit, ...)
List messages in a channel, anchored at a timestamp or message id. Provide EITHER message_ts (unix ms) OR message_id. Platform API: GET /{channel_type}/{channel_url}/messages. Returns { messages[] }.
Eingabe-Schema
{
"type": "object",
"properties": {
"channel_type": {
"type": "string",
"enum": [
"group_channels",
"open_channels"
],
"description": "Channel type: group_channels (member-based) or open_channels (public, participant-based)."
},
"channel_url": {
"type": "string",
"description": "Channel URL (percent-encoded automatically)."
},
"message_ts": {
"description": "Anchor timestamp in unix milliseconds. Provide this OR message_id.",
"type": "integer",
"minimum": -9007199254740991,
"maximum": 9007199254740991
},
"message_id": {
"description": "Anchor message id. Provide this OR message_ts.",
"type": "integer",
"minimum": -9007199254740991,
"maximum": 9007199254740991
},
"prev_limit": {
"description": "Number of messages before the anchor, 0-200.",
"type": "integer",
"minimum": 0,
"maximum": 200
},
"next_limit": {
"description": "Number of messages after the anchor, 0-200.",
"type": "integer",
"minimum": 0,
"maximum": 200
},
"include": {
"description": "Include the anchor message itself.",
"type": "boolean"
},
"reverse": {
"description": "Return in reverse chronological order.",
"type": "boolean"
},
"message_type": {
"description": "Filter by message type: MESG (text), FILE, or ADMM (admin).",
"type": "string",
"enum": [
"MESG",
"FILE",
"ADMM"
]
},
"user_ids": {
"description": "Comma-separated sender user ids to filter on.",
"type": "string"
},
"custom_types": {
"description": "Comma-separated message custom types to filter on.",
"type": "string"
}
},
"required": [
"channel_type",
"channel_url"
],
"$schema": "http://json-schema.org/draft-07/schema#"
}🟢sendbird_request(path, params)
Power-user escape hatch: issue a raw GET to any Chat Platform API v3 path not wrapped by a dedicated tool (e.g. /group_channels/{url}/messages/{id}, /report, /applications/settings_global). READ-ONLY — GET only. Platform API: GET {path}.
Eingabe-Schema
{
"type": "object",
"properties": {
"path": {
"type": "string",
"description": "API path beginning with \"/\", relative to the /v3 base (e.g. \"/users/alex%40x.com/blocked_users\")."
},
"params": {
"description": "Optional JSON object (as a string) of query params, e.g. '{\"limit\":50}'.",
"type": "string"
}
},
"required": [
"path"
],
"$schema": "http://json-schema.org/draft-07/schema#"
}🔴sendbird_send_message(channel_type, channel_url, message_type, user_id, message, ...)
MUTATES Sendbird data: sends a message into a channel as a user (MESG) or as an admin (ADMM). File/multipart messages are not supported. Platform API: POST /{channel_type}/{channel_url}/messages.
Eingabe-Schema
{
"type": "object",
"properties": {
"channel_type": {
"type": "string",
"enum": [
"group_channels",
"open_channels"
],
"description": "Channel type: group_channels (member-based) or open_channels (public, participant-based)."
},
"channel_url": {
"type": "string",
"description": "Channel URL (percent-encoded automatically)."
},
"message_type": {
"description": "MESG (user text, default) or ADMM (admin message, no sender).",
"type": "string",
"enum": [
"MESG",
"ADMM"
]
},
"user_id": {
"description": "Sender user id. REQUIRED when message_type is MESG.",
"type": "string"
},
"message": {
"type": "string",
"description": "The message text."
},
"custom_type": {
"description": "Custom type tag for the message.",
"type": "string"
},
"data": {
"description": "Additional structured data as a string (often JSON).",
"type": "string"
},
"mention_type": {
"description": "Mention scope: specific users or the whole channel.",
"type": "string",
"enum": [
"users",
"channel"
]
},
"mentioned_user_ids": {
"description": "User ids to mention (when mention_type=users).",
"type": "array",
"items": {
"type": "string"
}
},
"is_silent": {
"description": "If true, does not update channel's last message / unread counts.",
"type": "boolean"
},
"send_push": {
"description": "Whether to send push notifications. Default true.",
"type": "boolean"
}
},
"required": [
"channel_type",
"channel_url",
"message"
],
"$schema": "http://json-schema.org/draft-07/schema#"
}🔴sendbird_create_user(user_id, nickname, profile_url, issue_access_token, metadata)
MUTATES Sendbird data: creates a new user. Platform API: POST /users.
Eingabe-Schema
{
"type": "object",
"properties": {
"user_id": {
"type": "string",
"description": "Unique user id to create."
},
"nickname": {
"description": "Display nickname.",
"type": "string"
},
"profile_url": {
"description": "Profile image URL (may be empty).",
"type": "string"
},
"issue_access_token": {
"description": "If true, issues an access token for the user in the response.",
"type": "boolean"
},
"metadata": {
"description": "Arbitrary key/value metadata object stored on the user.",
"type": "object",
"propertyNames": {
"type": "string"
},
"additionalProperties": {}
}
},
"required": [
"user_id"
],
"$schema": "http://json-schema.org/draft-07/schema#"
}🔴sendbird_update_user(user_id, nickname, profile_url, issue_access_token)
MUTATES Sendbird data: partially updates a user's profile. Only provided fields change. Platform API: PUT /users/{user_id}.
Eingabe-Schema
{
"type": "object",
"properties": {
"user_id": {
"type": "string",
"description": "Target user id (percent-encoded automatically)."
},
"nickname": {
"description": "New display nickname.",
"type": "string"
},
"profile_url": {
"description": "New profile image URL.",
"type": "string"
},
"issue_access_token": {
"description": "If true, issues a new access token for the user.",
"type": "boolean"
}
},
"required": [
"user_id"
],
"$schema": "http://json-schema.org/draft-07/schema#"
}🔴sendbird_create_group_channel(user_ids, name, channel_url, cover_url, custom_type, ...)
MUTATES Sendbird data: creates a group channel with the given members. Platform API: POST /group_channels.
Eingabe-Schema
{
"type": "object",
"properties": {
"user_ids": {
"type": "array",
"items": {
"type": "string"
},
"description": "User ids to add as members of the new channel."
},
"name": {
"description": "Channel name.",
"type": "string"
},
"channel_url": {
"description": "Custom channel URL; auto-generated if omitted.",
"type": "string"
},
"cover_url": {
"description": "Channel cover image URL.",
"type": "string"
},
"custom_type": {
"description": "Custom type tag for the channel.",
"type": "string"
},
"is_distinct": {
"description": "If true, reuse an existing channel with the same members instead of creating a duplicate.",
"type": "boolean"
},
"is_public": {
"description": "If true, the channel is public (joinable without invitation).",
"type": "boolean"
},
"data": {
"description": "Additional structured data as a string (often JSON).",
"type": "string"
}
},
"required": [
"user_ids"
],
"$schema": "http://json-schema.org/draft-07/schema#"
}Community
Nachweis