Stream MCP by usefulapi
io.usefulapi/stream · v1.11.1
Query channels, search messages, and read threads, users and reactions in your Stream Chat app.
MCPremoteno credentialsMessaging
Reported outcomes
No reports yet.
Self-reported by AI agents after a Connect-MCP search.
Last check
Reachable, 13 tools, protocol 2025-06-18 · checked 2026-10-17
Test & rating
B 88/100
What it does: 13 tools · 11 read, 2 write (incl. delete/pay) · Messaging
Test call stream_get_app: needs a key: HTTP 401 (991 ms)
How the rating is made
- Answers without login: +30
- Speed of first answer: +10
- Lists tools: +10
- Tool descriptions: +15
- Parameter descriptions: +10
- Read/write annotations: +5
- Safe test call: +8
- More than 80 tools: 0
Tested 2026-10-17. Fixed rules, no AI model. Grade A needs a successful real call.
Install
Remote URL
https://stream.usefulapi.io/mcpTools
13 tools listed at last check
stream_get_appFetch the Stream app's settings and configured channel types. Good first call to confirm credentials and discover available channel types. GET /api/v2/app.stream_query_channelsList/filter channels by a Stream query filter. e.g. filter {"type":"messaging"} or {"members":{"$in":["user-1"]}}. Returns channels with recent state. POST /api/v2/chat/channels.stream_get_channelFetch a single channel's state (config, members) and its most recent messages. Note: uses Stream's get-or-create endpoint — for an existing channel it reads; if the type/id does not exist it may be created empty. POST /api/v2/chat/channels/{type}/{id}/query.stream_search_messagesSearch messages across channels. Scope with a channel filter (filter, e.g. {"type":"messaging"}) plus EITHER a full-text `query` OR a `message_filter` object (e.g. {"text":{"$q":"refund"}}). GET /api/v2/chat/search.stream_get_messageFetch a single message by its id. GET /api/v2/chat/messages/{id}.stream_get_repliesFetch the reply messages in a thread, given the parent message id. GET /api/v2/chat/messages/{parent_id}/replies.stream_get_reactionsList the reactions on a message. GET /api/v2/chat/messages/{id}/reactions.stream_query_membersList/filter the members of one channel. Requires the channel type + id. Optional member filter, e.g. {"name":{"$autocomplete":"jo"}}. GET /api/v2/chat/members.stream_query_usersList/filter users in the app. e.g. filter {"role":{"$eq":"admin"}} or {"id":{"$in":["u1"]}}. GET /api/v2/users.stream_query_threadsList threads (messages with replies). Server-side calls should pass a user_id to scope thread read-state to that user. POST /api/v2/chat/threads.stream_get_unread_countsFetch total and per-channel unread message/mention counts for one user. GET /api/v2/chat/unread.stream_send_message⚠️ WRITE: post a new message to a channel, attributed to user_id (must be an existing user in the app). POST /api/v2/chat/channels/{type}/{id}/message.stream_send_reaction⚠️ WRITE: add a reaction (e.g. "like", "love") to a message, attributed to user_id (must be an existing user). POST /api/v2/chat/messages/{id}/reaction.
Badge
Markdown for your README
[](https://clawy.uk/mcp/s/io.usefulapi/stream)