Skip to content

Sendbird MCP by usefulapi

by usefulapi.io · remote · no sign-in to list tools · v1.16.3 · published by io.usefulapi

MCP server for Sendbird — chat users, channels, members, and messages from your AI client.

Deletes · 4Changes · 1

14 tools: 4 can delete or cancel things, 1 change things and 9 only read.

Scanned Oct 21, 2026

1 check matched something in the tool definitions. No finding is not a safety guarantee. How the checks work.

claude mcp add --transport http sendbird https://sendbird.usefulapi.io/mcp

Findings

Matches of fixed checks, with the text they matched.

1 warn
  • The server marks "sendbird_request" read-only (readOnlyHint: true), and its own name, description or input give the class "write".

    Matched text

    annotations: {"readOnlyHint":true}; The name "sendbird_request" says "request": a word for a change.

    What this check looks for

Tools

Open a tool for its reasons and full description. Descriptions are the publisher's own words, shown as they are.

14 tools

Deletes or cancels 4Claude Code: deny
  • sendbird_create_group_channelMUTATES Sendbird data: creates a group channel with the given members.No findings

    Why it is in this group

    • The name "sendbird_create_group_channel" says "create": a word for a change.
    • The server marks it destructive (destructiveHint: true).
    Description, as the server wrote it
    MUTATES Sendbird data: creates a group channel with the given members. Platform API: POST /group_channels.

    Annotations the server declares

    • title: Create a group channel
    • destructiveHint: true
  • sendbird_create_userMUTATES Sendbird data: creates a new user.No findings

    Why it is in this group

    • The name "sendbird_create_user" says "create": a word for a change.
    • The server marks it destructive (destructiveHint: true).
    Description, as the server wrote it
    MUTATES Sendbird data: creates a new user. Platform API: POST /users.

    Annotations the server declares

    • title: Create a user
    • destructiveHint: true
  • sendbird_send_messageMUTATES Sendbird data: sends a message into a channel as a user (MESG) or as an admin (ADMM).No findings

    Why it is in this group

    • The name "sendbird_send_message" says "send": a word for sending, and what is sent cannot be taken back.
    • The server marks it destructive (destructiveHint: true).
    Description, as the server wrote it
    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.

    Annotations the server declares

    • title: Send a message
    • destructiveHint: true
  • sendbird_update_userMUTATES Sendbird data: partially updates a user's profile.No findings

    Why it is in this group

    • The name "sendbird_update_user" says "update": a word for a change.
    • The server marks it destructive (destructiveHint: true).
    Description, as the server wrote it
    MUTATES Sendbird data: partially updates a user's profile. Only provided fields change. Platform API: PUT /users/{user_id}.

    Annotations the server declares

    • title: Update a user
    • destructiveHint: true
Changes things 1Claude Code: ask
  • sendbird_requestPower-user escape hatch: issue a raw GET to any Chat Platform API v3 path not wrapped by a dedicated tool (e.g.1 finding

    Why it is in this group

    • The name "sendbird_request" says "request": a word for a change.
    • The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.

    Findings

    • Warn

      The server marks "sendbird_request" read-only (readOnlyHint: true), and its own name, description or input give the class "write".

      Matched text

      annotations: {"readOnlyHint":true}; The name "sendbird_request" says "request": a word for a change.

      What this check looks for
    Description, as the server wrote it
    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}.

    Annotations the server declares

    • title: Raw GET request
    • readOnlyHint: true
Only reads 9Claude Code: allow
  • sendbird_get_group_channelFetch a single group channel by URL, optionally with members and receipts.No findings

    Why it is in this group

    • The name "sendbird_get_group_channel" says "get": a word for reading.
    Description, as the server wrote it
    Fetch a single group channel by URL, optionally with members and receipts. Platform API: GET /group_channels/{channel_url}.

    Annotations the server declares

    • title: Get a group channel
    • readOnlyHint: true
  • sendbird_get_open_channelFetch a single open channel by URL.No findings

    Why it is in this group

    • The name "sendbird_get_open_channel" says "get": a word for reading.
    Description, as the server wrote it
    Fetch a single open channel by URL. Platform API: GET /open_channels/{channel_url}.

    Annotations the server declares

    • title: Get an open channel
    • readOnlyHint: true
  • sendbird_get_userFetch a single user by user_id.No findings

    Why it is in this group

    • The name "sendbird_get_user" says "get": a word for reading.
    Description, as the server wrote it
    Fetch a single user by user_id. Platform API: GET /users/{user_id}.

    Annotations the server declares

    • title: Get a user
    • readOnlyHint: true
  • sendbird_list_group_channel_membersList the members of a group channel.No findings

    Why it is in this group

    • The name "sendbird_list_group_channel_members" says "list": a word for reading.
    Description, as the server wrote it
    List the members of a group channel. Platform API: GET /group_channels/{channel_url}/members. Returns { members[], next }.

    Annotations the server declares

    • title: List group channel members
    • readOnlyHint: true
  • sendbird_list_group_channelsList group channels in the application, with rich filtering (name, members, distinct/public/super mode).No findings

    Why it is in this group

    • The name "sendbird_list_group_channels" says "list": a word for reading.
    Description, as the server wrote it
    List group channels in the application, with rich filtering (name, members, distinct/public/super mode). Platform API: GET /group_channels. Returns { channels[], next }.

    Annotations the server declares

    • title: List group channels
    • readOnlyHint: true
  • sendbird_list_group_channels_by_userList the group channels a given user belongs to.No findings

    Why it is in this group

    • The name "sendbird_list_group_channels_by_user" says "list": a word for reading.
    Description, as the server wrote it
    List the group channels a given user belongs to. Platform API: GET /users/{user_id}/my_group_channels. Returns { channels[], next }.

    Annotations the server declares

    • title: List a user's group channels
    • readOnlyHint: true
  • sendbird_list_messagesList messages in a channel, anchored at a timestamp or message id.No findings

    Why it is in this group

    • The name "sendbird_list_messages" says "list": a word for reading.
    Description, as the server wrote it
    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[] }.

    Annotations the server declares

    • title: List messages
    • readOnlyHint: true
  • sendbird_list_open_channelsList open (public, participant-based) channels.No findings

    Why it is in this group

    • The name "sendbird_list_open_channels" says "list": a word for reading.
    Description, as the server wrote it
    List open (public, participant-based) channels. Platform API: GET /open_channels. Returns { channels[], next }.

    Annotations the server declares

    • title: List open channels
    • readOnlyHint: true
  • sendbird_list_usersList the users in the application.No findings

    Why it is in this group

    • The name "sendbird_list_users" says "list": a word for reading.
    Description, as the server wrote it
    List the users in the application. Supports filtering by activity, nickname, ids, and metadata. Platform API: GET /users. Returns { users[], next }.

    Annotations the server declares

    • title: List users
    • readOnlyHint: true

This is not a safety rating, and no finding is not a safety guarantee. The groups and findings come from fixed checks of the tool definitions the server returned on the date shown, not from its code or what it does when called. How the checks work.

Install

Pinned to version 1.16.3. Values in angle brackets are yours to fill in.

claude mcp add --transport http sendbird https://sendbird.usefulapi.io/mcp

Run in a terminal.

Claude Code permissions

Allow the reads, ask before a change, deny the deletes. Paste into .claude/settings.json.

.claude/settings.json
{
  "permissions": {
    "allow": [
      "mcp__sendbird__sendbird_list_users",
      "mcp__sendbird__sendbird_get_user",
      "mcp__sendbird__sendbird_list_group_channels",
      "mcp__sendbird__sendbird_get_group_channel",
      "mcp__sendbird__sendbird_list_group_channel_members",
      "mcp__sendbird__sendbird_list_group_channels_by_user",
      "mcp__sendbird__sendbird_list_open_channels",
      "mcp__sendbird__sendbird_get_open_channel",
      "mcp__sendbird__sendbird_list_messages"
    ],
    "ask": [
      "mcp__sendbird__sendbird_request"
    ],
    "deny": [
      "mcp__sendbird__sendbird_send_message",
      "mcp__sendbird__sendbird_create_user",
      "mcp__sendbird__sendbird_update_user",
      "mcp__sendbird__sendbird_create_group_channel"
    ]
  }
}

Tools that only read are allowed, tools that change things ask first, tools that delete or cancel are denied. It assumes the server is installed as sendbird. Review it before you use it.