Stream MCP by usefulapi

io.usefulapiPublished by usefulapi.ioOfficial publisherv1.36.4Updated Nov 7, 2026

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

The publisher's own server: Ably MCP by usefulapi

VerifiedStreamable HTTPWeb executableCommunication & CollaborationBusiness & Commerce

Overview

AI-generated overview

Hosted MCP server for a Stream Chat app: lets an assistant query channels, search messages, read threads and users, and post messages or reactions.

What you can do
  • Inspect the app: fetch app settings and channel types, query channels, users, channel members and threads
  • Read messages: get a single message, a channel's recent messages, thread replies and reactions
  • Search messages across channels by full-text query or message filter
  • Check unread message and mention counts for a user
  • Write to Stream: send a message to a channel and add a reaction, attributed to an existing user
  • Manage usage: check the monthly call meter, request a feature, upgrade or cancel the subscription
When to use it
Useful when you want an assistant to answer questions about activity in a Stream Chat app — finding messages, checking unread counts, reviewing threads — or to post replies and reactions from the chat client without switching apps.
Requirements
Remote endpoint at stream.usefulapi.io/mcp; no local install. Sign-in is via OAuth, and the login page asks for your Stream API key and secret, which are validated and stored per user. Add only the URL to the client config, not an Authorization header or API key. A free plan allows 50 tool calls per month.
Before you install
You hand over your Stream API key and secret to a third-party hosted service, which stores them per user. Two tools write to Stream (sending messages and reactions) attributed to an existing user, so confirm before use. Paid plans cost money: Pro at $9/month or $90/year and Pro+ at $39/month or $390/year, billed through a Stripe Checkout link; cancellation runs to the end of the paid period with no refund for the current period. The get-channel tool uses a get-or-create endpoint, so it may…

Installation

In SourceWeft

  1. Open Stream MCP by usefulapi in the dashboard and add it to a workspace.
  2. Enable the server for the chats that should use its tools.

Web executable via Streamable HTTP. Remote servers run from the web runtime once configured in a workspace.

Use with an agent

Paste this prompt into Claude Code, Codex, Cursor or another agent — or into SourceWeft chat. The agent reads this server's install guide, shows you its publisher, endpoint and sign-in, and adds it to your client once you agree. Keys never go into a command.

Read https://sourceweft.com/mcp/io.usefulapi%2Fstream/install.md and connect the MCP server it describes to my client. Before changing any config, show me its publisher, endpoint and sign-in method and wait for my OK. Never put an API key in a command or in a file I would commit; ask me where it should come from.

Read the install guide the agent follows

Other MCP clients

Add this to your client's mcpServers config.

{
  "mcpServers": {
    "stream-by-usefulapi": {
      "type": "http",
      "url": "https://stream.usefulapi.io/mcp"
    }
  }
}

README

Stream MCP by usefulapi

Bring your Stream Chat app into your AI workflow — query channels, search messages, and post replies from Claude, Cursor, or any MCP client. Hosted, no local install — connect with your Stream API key + secret.

Live endpoint: https://stream.usefulapi.io/mcp · Homepage: https://usefulapi.io/stream

Connect

  • Claude (claude.ai, Desktop): open Customize → Connectors, click + Add → Add custom connector, and paste https://stream.usefulapi.io/mcp.
  • Claude Code: claude mcp add --transport http stream https://stream.usefulapi.io/mcp, then run /mcp to log in.
  • VS Code: Add to VS Code.
  • Cursor and other clients: add the URL as a remote MCP server:
json
{  "mcpServers": {    "stream": {      "url": "https://stream.usefulapi.io/mcp"    }  }}

Add only the URL. Do not add an Authorization header or an API key to the client config: the server signs you in with OAuth, and the login page asks for your Stream credentials.

Step-by-step setup, where to find your credentials, and FAQ: https://usefulapi.io/stream/

On first connect you'll paste your Stream API key and secret. It's validated, stored per-user, and scoped to you.

Tools

ToolTypeWhat it does
stream_get_appreadGet app settings
stream_query_channelsreadQuery channels
stream_get_channelreadGet channel state + recent messages
stream_search_messagesreadSearch messages
stream_get_messagereadGet a message
stream_get_repliesreadGet thread replies
stream_get_reactionsreadGet message reactions
stream_query_membersreadQuery channel members
stream_query_usersreadQuery users
stream_query_threadsreadQuery threads
stream_get_unread_countsreadGet unread counts for a user
stream_send_messagewriteSend a message (WRITE — posts to Stream)
stream_send_reactionwriteSend a reaction (WRITE — posts to Stream)
stream_usage_statusmetaUsage status (free-tier meter)
stream_request_featuremetaRequest a missing feature
stream_upgrademetaUpgrade to Pro or Pro+
stream_cancel_subscriptionmetaCancel the Pro subscription

read tools are read-only; write tools mutate data (clients should confirm them); meta tools report usage, manage your subscription or send a feature request.

Pricing

PlanPriceLimit
Free$050 tool calls / month
Pro$9/mo or $90/yr (2 months free)Unlimited*

*Pro has a fair use limit of 10,000 tool calls a month on this server. For more, write to [email protected].

Pro covers this server only. Subscribe with stream_upgrade (it returns a Stripe Checkout link). Cancel any time with stream_cancel_subscription: Pro continues to the end of the paid period, with no refund for the current period, and running stream_upgrade before then undoes the cancel. Or write to [email protected].

License

MIT — see LICENSE. Documentation only; the server is hosted.

Source: servers/stream/README.md at commit 4046075

Tools

13

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.

Takes no parameters.

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.

Parameterssortlimitfilteroffsetmessage_limit

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.

Parametersidrequiredtyperequiredmessages_limit

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.

Parametersnextsortlimitqueryfilterrequiredmessage_filter

stream_get_message

Get a message

Fetch a single message by its id. GET /api/v2/chat/messages/{id}.

Parametersidrequiredshow_deleted

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.

Parameterslimitparent_idrequired

stream_get_reactions

Get message reactions

List the reactions on a message. GET /api/v2/chat/messages/{id}/reactions.

Parametersidrequiredlimitoffset

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.

Parametersidrequiredsorttyperequiredlimitfilteroffset

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.

Parameterssortlimitfilteroffset

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.

Parameterssortlimituser_idreply_limit

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.

Parametersuser_idrequired

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.

Parametersidrequiredtextrequiredtyperequireduser_idrequiredmentioned_users

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.

Parametersidrequireduser_idrequiredreaction_typerequired

Version history

21
  1. v1.36.4LatestNov 7, 2026
  2. v1.35.3Nov 5, 2026
  3. v1.35.2Nov 5, 2026
  4. v1.35.1Nov 4, 2026
  5. v1.35.0Nov 3, 2026
  6. v1.34.1Nov 3, 2026
  7. v1.33.0Nov 1, 2026
  8. v1.31.0Oct 31, 2026
  9. v1.30.0Oct 31, 2026
  10. v1.29.2Oct 30, 2026
  11. v1.29.0Oct 30, 2026
  12. v1.24.0Oct 26, 2026
  13. v1.21.3Oct 25, 2026
  14. v1.21.0Oct 25, 2026
  15. v1.20.0Oct 24, 2026
  16. v1.17.0Oct 23, 2026
  17. v1.16.4Oct 22, 2026
  18. v1.16.3Oct 21, 2026
  19. v1.11.1Oct 9, 2026
  20. v1.10.0Oct 9, 2026
  21. v1.0.1Sep 16, 2026

Score

100% of the applicable checks met

How complete this listing is, computed from the registry entry, the endpoint and public sources. Not a rating of the server and not a statement that it is safe or working today: reachability is a dated check, and no installs or reviews go into the score.

  • Reached in the last 30 daysRequired25 pts
  • Auth declaredRequired10 pts
  • Tools listedRequired15 pts
  • DescriptionRequired15 pts
  • Logo10 pts
  • Documentation15 pts
  • License10 pts

Other Usefulapi integrations