Stream Chat integration
Real-time chat API by GetStream for building scalable messaging features. Supports channels, messages, users, reactions, threads, and moderation. Enables chat rooms, direct messaging, group conversations, message search, user presence, typing indicators, and read receipts. Perfect for building in-app messaging, team collaboration tools, customer support chat, social feeds with comments, and live event chat.
Say what should happen.
The workflow builds itself.
Common Stream Chat use cases
- user offboarding
- renaming channels
- sending chat messages
- updating user avatars
- user-reported content
- building threads inbox
- building user directory
- ending user suspensions
- ignoring annoying users
- adding likes to messages
What you can do with Stream Chat
Each of these is one operation on one endpoint, available both as a workflow step and as a tool an AI agent can call on its own. Nothing bundles several operations into one action, so what a run did stays readable afterwards.
Most endpoints run on the free plan. A few, mainly the ones that publish on your behalf, need a paid plan.
Moderation, 5 operations
ban_userBan userPOSTBans a user from the app or a specific channel. Banned users cannot send messages until unbanned or the ban expires. Optionally set ban duration, reason, and shadow ban mode.flag_messageFlag messagePOSTFlags a message for moderation review. Flagged messages appear in the Stream Dashboard moderation queue. Flagging does not automatically hide or remove the message.mute_userMute userPOSTMutes a user for the requesting user. Messages from muted users are still delivered but can be hidden in the UI. Muted users don't trigger push notifications. Mutes can be temporary or permanent.unban_userUnban userDELETERemoves a ban from a user. Specify the user ID and optionally the channel to unban from. After unbanning, the user can immediately send messages again.unmute_userUnmute userPOSTRemoves a mute on a user. After unmuting, messages from the user will appear normally and trigger push notifications again.
Channel, 4 operations
create_channelCreate channelPOSTCreates a new channel or returns an existing one with the same type and ID. Set channel name, image, custom data, and initial members. The created_by user automatically becomes a member.delete_channelDelete channelDELETEDeletes a channel and optionally all its messages. Supports soft delete (marks as deleted) or hard delete (permanent removal). Deleted channels no longer appear in queries and members lose access immediately.query_channelsQuery channelsPOSTQueries and retrieves a list of channels based on filter conditions. Supports filtering by channel type, members, frozen status, tags, and timestamps. Returns channel metadata, member lists, and optionally the latest messages.update_channelUpdate channelPOSTUpdates channel properties including name, image, and custom data. Can also add or remove members, assign moderators, and freeze/unfreeze the channel. Optionally sends a system message about the update.
Message, 4 operations
delete_messageDelete messageDELETEDeletes a message from a channel. Soft delete marks the message as deleted while retaining data. Hard delete permanently removes the message. Thread replies remain visible but show the parent was deleted.search_messagesSearch messagesGETSearches messages across channels using full-text search or filters. Search by message text, sender, attachments, custom fields, and timestamps. Results are ranked by relevance with pagination support.send_messageSend messagePOSTSends a message to a channel. Supports text content, attachments (images, files, videos), mentioned users, and custom data. For thread replies, include parent_id. Returns the created message with server-generated ID and timestamps.update_messageUpdate messagePOSTUpdates an existing message content. Can modify text, attachments, mentioned users, and custom fields. The message retains its position and ID. An 'edited' indicator is shown to users.
User, 4 operations
deactivate_userDeactivate userPOSTDeactivates a user account. Deactivated users cannot connect to chat or send messages. Optionally delete the user's messages and created channels. Can be reactivated later.query_usersQuery usersGETQueries users based on filter conditions. Search by ID, name, role, ban status, online status, and custom fields. Supports autocomplete for user search and pagination for large result sets.update_user_partialUpdate user partialPATCHPartially updates one or more user profiles in batch. Set or unset specific fields without replacing the entire user object. Useful for updating individual properties like name, image, or custom fields.upsert_usersUpsert usersPOSTCreates new users or updates existing users in batch. Set user ID, name, image, role, and custom data. Users are created automatically on first activity, but upsert allows pre-creating users with full profiles.
Reaction, 2 operations
delete_reactionDelete reactionDELETERemoves a reaction from a message. Specify the message ID and reaction type. Only the user who added the reaction (or moderators) can remove it.send_reactionSend reactionPOSTAdds a reaction to a message. Reactions have a type (like, love, wow, etc.) and optional score and custom data. Each user can have one reaction of each type per message. Returns updated message with reaction counts.
Reply, 1 operation
get_repliesGet repliesGETRetrieves thread replies for a parent message. Returns messages in chronological order with pagination support. Use for displaying thread conversations and loading older replies.
Thread, 1 operation
query_threadsQuery threadsPOSTQueries threads that a user participates in. Returns threads with unread replies first, then by latest reply timestamp. Useful for building a threads inbox like Slack or Discord.
Use Stream Chat from Claude Code, Cursor or Codex
Connect Stream Chat in LiveContext, create an API key in Settings, then add the LiveContext MCP server to your client. Its Stream Chat operations become tools the client can call, next to every other integration you connected.
claude mcp add --transport http livecontext https://livecontext.ai/mcp --header "X-API-Key: YOUR_API_KEY"[mcp_servers.livecontext]
url = "https://livecontext.ai/mcp"
[mcp_servers.livecontext.http_headers]
"X-API-Key" = "YOUR_API_KEY"{
"mcpServers": {
"livecontext": {
"type": "http",
"url": "https://livecontext.ai/mcp",
"headers": {
"X-API-Key": "YOUR_API_KEY"
}
}
}
}How to connect Stream Chat
- Create your workspace
Sign up free. Nothing to install.
- Connect Stream Chat once
Add your Stream Chat connection in Settings. Every tool from this integration reuses it, and secrets are encrypted at rest and visible only to you.
- Describe the job in chat
The workflow builds itself in front of you and picks the endpoints it needs. Drag the steps yourself on the canvas whenever you would rather be explicit.
Stream Chat integration FAQ
What can you do with the Stream Chat integration?
LiveContext exposes 21 operations on Stream Chat, covering moderation, channel, message and user. Common uses include user offboarding, renaming channels and sending chat messages.
