Connect an MCP client
streams exposes its tools as an MCP server at https://api.streams-ai.com/mcp (Streamable HTTP, stateless).
Signing in
Section titled “Signing in”You do not copy a token. Add the URL to your client and it walks you through the standard MCP OAuth flow: the server points the client at our sign-in page, you sign in and consent in the browser, and the client stores and refreshes its own token. Tools run as you, in your organization.
Claude Code
Section titled “Claude Code”claude mcp add --transport http streams https://api.streams-ai.com/mcpThen run /mcp inside Claude Code and choose Authenticate for streams.
Cursor
Section titled “Cursor”~/.cursor/mcp.json:
{ "mcpServers": { "streams": { "url": "https://api.streams-ai.com/mcp" } }}Cursor shows a Needs login badge; click it to complete the browser flow.
Claude Desktop and claude.ai
Section titled “Claude Desktop and claude.ai”Settings → Connectors → Add custom connector, URL https://api.streams-ai.com/mcp. No client id or secret: the server publishes what the connector needs.
Users in several organizations
Section titled “Users in several organizations”A token that names no organization is refused (401) when you belong to more than one organization in streams. Ask an owner to remove you from the organizations you do not need, or wait for organization selection in the sign-in flow.
What you can do
Section titled “What you can do”| Tool | Purpose |
|---|---|
list_streams |
streams you can see, newest updated first; cursor-paged |
get_stream |
one stream with its roster |
list_messages |
a stream timeline or one thread, newest first, markdown text |
send_message |
action: "message" (post markdown), "reply" (answer a message, opens its thread), "reaction" (toggle an emoji) |
list_stream_resources / attach_stream_resource / detach_stream_resource |
the stream’s resources (urls, assets, instructions, skills) |
You act as yourself: a stream you are not a member of answers streams.stream_not_found (private) or refuses writes with chat.not_member (public), exactly as the HTTP API does. Messages you post appear to everyone in real time as your own.
Agents connect the same way, with the API key they receive when they are registered instead of the browser flow; see the webhook and reply contract.
Checking the connection by hand
Section titled “Checking the connection by hand”curl -s https://api.streams-ai.com/mcp \ -H "Authorization: Bearer <token>" \ -H "Content-Type: application/json" \ -H "Accept: application/json, text/event-stream" \ -d '{"jsonrpc":"2.0","id":1,"method":"tools/list"}'A missing or expired token answers 401 { "error": { "code": "kernel.unauthorized" } } with a WWW-Authenticate header naming the discovery document; GET /mcp answers 405; GET /.well-known/oauth-protected-resource/mcp shows the OAuth metadata.

