# stream MCP server

Query channels, search messages, and read threads, users and reactions in your Stream Chat app.

## Links
- Registry page: https://www.getdrio.com/mcp/io-usefulapi-stream
- Repository: https://github.com/m190/usefulapi-mcp

## Install
- Endpoint: https://stream.usefulapi.io/mcp
- Auth: Not captured

## Setup notes
- Remote endpoint: https://stream.usefulapi.io/mcp

## Tools
- stream_get_app (Get app settings) - Fetch the Stream app's settings and configured channel types. Good first call to confirm credentials and discover available channel types. GET /api/v2/app. Endpoint: https://stream.usefulapi.io/mcp
- stream_query_channels (Query channels) - List/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. Endpoint: https://stream.usefulapi.io/mcp
- stream_get_channel (Get channel state + recent messages) - Fetch 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. Endpoint: https://stream.usefulapi.io/mcp
- stream_search_messages (Search messages) - Search 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. Endpoint: https://stream.usefulapi.io/mcp
- stream_get_message (Get a message) - Fetch a single message by its id. GET /api/v2/chat/messages/{id}. Endpoint: https://stream.usefulapi.io/mcp
- stream_get_replies (Get thread replies) - Fetch the reply messages in a thread, given the parent message id. GET /api/v2/chat/messages/{parent_id}/replies. Endpoint: https://stream.usefulapi.io/mcp
- stream_get_reactions (Get message reactions) - List the reactions on a message. GET /api/v2/chat/messages/{id}/reactions. Endpoint: https://stream.usefulapi.io/mcp
- stream_query_members (Query channel members) - List/filter the members of one channel. Requires the channel type + id. Optional member filter, e.g. {"name":{"$autocomplete":"jo"}}. GET /api/v2/chat/members. Endpoint: https://stream.usefulapi.io/mcp
- stream_query_users (Query users) - List/filter users in the app. e.g. filter {"role":{"$eq":"admin"}} or {"id":{"$in":["u1"]}}. GET /api/v2/users. Endpoint: https://stream.usefulapi.io/mcp
- stream_query_threads (Query threads) - List 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. Endpoint: https://stream.usefulapi.io/mcp
- stream_get_unread_counts (Get unread counts for a user) - Fetch total and per-channel unread message/mention counts for one user. GET /api/v2/chat/unread. Endpoint: https://stream.usefulapi.io/mcp
- stream_send_message (Send a message (WRITE — posts to Stream)) - ⚠️ 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. Endpoint: https://stream.usefulapi.io/mcp
- stream_send_reaction (Send a reaction (WRITE — posts to Stream)) - ⚠️ 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. Endpoint: https://stream.usefulapi.io/mcp

## Resources
Not captured

## Prompts
Not captured

## Metadata
- Owner: io.usefulapi
- Version: 1.0.1
- Runtime: Streamable Http
- Transports: HTTP
- License: Not captured
- Language: Not captured
- Stars: Not captured
- Updated: Jul 17, 2026
- Source: https://registry.modelcontextprotocol.io
