Skip to main content
Glama

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault
SE_TOOLSETSNoComma-separated toolsets to load, e.g. `bot,commands,loyalty`.all
SE_JWT_TOKENNoJWT token from your StreamElements dashboard. Sent as `Bearer <jwt>`. One of SE_JWT_TOKEN or SE_OAUTH_TOKEN is required.
SE_READ_ONLYNo`true` loads only read-only tools: nothing that creates, changes, deletes or posts.false
SE_CHANNEL_IDNo24-character hex channel id that tools use when `channel` is omitted. Default: looked up via `/channels/me`.
SE_TIMEOUT_MSNoPer-request timeout in milliseconds.15000
SE_OAUTH_TOKENNoOAuth2 access token. Sent as `oAuth <token>`. Ignored (with a warning) if SE_JWT_TOKEN is also set. One of SE_JWT_TOKEN or SE_OAUTH_TOKEN is required.
SE_MAX_RESPONSE_CHARSNoLonger responses are truncated, with a note to page through them using `limit`/`offset`.100000

Instructions

Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.

This server publishes no instructions, or was last inspected before Glama recorded them.

Capabilities

Features and capabilities supported by this server

Protocol revision2025-11-25

CapabilityDetails
tools
{
  "listChanged": true
}

Tools

Functions exposed to the LLM to take actions

NameDescription
channels_meA

Get the StreamElements channel that owns the configured token: channel id (_id), username, display name, provider (twitch/youtube/...), avatar and more. Use it to find your channel id.

channels_getB

Get public details of a StreamElements channel by channel id or channel name.

channels_get_detailsB

Get extended details for a channel (profile, settings and linked provider information).

channels_emotesA

List the emotes usable on a channel: Twitch, BetterTTV (BTTV) and FrankerFaceZ (FFZ).

channels_socketC

POST /channels/{channel}/socket. StreamElements documents this endpoint without any description; it appears to relate to the channel's realtime socket connection. Only use it if you know what it does.

channels_revoke_access_tokenA

DELETE /channels/{channel}/accesstoken. Undocumented; it appears to revoke the channel's access token. WARNING: this may invalidate the token this server is using, so every later call fails until you put a new token in SE_JWT_TOKEN / SE_OAUTH_TOKEN. Only run it if the user explicitly asks for it.

users_currentA

Get the StreamElements user account behind the token, including the channels it can access.

users_channelsB

List the channels the current StreamElements user can access.

users_accessA

List the channel's access list: users who have been granted access to manage this channel.

bot_getA

Get the StreamElements chat bot's status on the channel: whether it has joined, is muted, its language and name.

bot_joinC

Make the StreamElements bot join the channel's chat.

bot_leaveA

Make the StreamElements bot leave (part) the channel's chat. Commands and timers stop working until it rejoins.

bot_muteA

Mute the bot: it stays in chat but stops sending messages.

bot_unmuteA

Unmute the bot so it sends messages in chat again.

bot_sayB

Send a message to the channel's chat as the StreamElements bot. Visible to everyone in chat.

bot_set_languageB

Set the language the bot uses for its built-in responses.

bot_levels_listB

List users that have a custom bot permission level on the channel. StreamElements permission levels: 100 everyone, 250 subscriber, 300 regular, 400 VIP, 500 moderator, 1000 super moderator, 1500 broadcaster.

bot_levels_addA

Give a user a custom bot permission level. StreamElements permission levels: 100 everyone, 250 subscriber, 300 regular, 400 VIP, 500 moderator, 1000 super moderator, 1500 broadcaster.

bot_levels_removeA

Remove a user's custom bot permission level, returning them to their default level.

bot_counter_getB

Get the current value of a named bot counter (the counters that commands update and print with ${count}).

bot_modules_listC

List the chat bot's modules (built-in games and features such as 8ball, roulette, duel and heist) with their settings.

commands_listB

List the channel's custom chat bot commands with their replies, cooldowns, costs and access levels.

commands_createC

Create a custom chat bot command.

commands_list_publicB

List the channel's public commands, as shown on its public StreamElements command page.

commands_list_defaultA

List the bot's built-in default commands (e.g. !points, !followage) and their settings on the channel.

commands_update_defaultA

Change the settings of a built-in default command, e.g. { "enabled": false } or { "cooldown": { "user": 30, "global": 5 }, "accessLevel": 500 }. Get ids from commands_list_default.

commands_getB

Get one custom command by id.

commands_updateA

Update a custom command. The API may treat this as a full replacement, so the safest approach is to send every field from commands_get with your changes applied.

commands_deleteB

Permanently delete a custom command.

timers_listA

List the channel's bot timers (messages the bot posts on a schedule).

timers_createB

Create a bot timer that posts a message every N minutes, optionally only after enough chat activity.

timers_getC

Get one bot timer by id.

timers_updateA

Update a bot timer. The API may treat this as a full replacement, so the safest approach is to send every field from timers_get with your changes applied.

timers_deleteB

Permanently delete a bot timer.

filters_listA

Get the channel's spam filter configuration: the caps, links, emotes, symbols, paragraph and banphrases filters (under botFilters), banned phrase groups, and activity-feed word filtering.

filters_update_settingsA

Replace the channel's spam filter document. The API documents the body as { banphrases, filter }. Get the current document with filters_list, change it, and send it back. To change one filter, filters_update is simpler.

filters_updateA

Update one bot spam filter. settings is that filter's object as returned under botFilters. by filters_list, e.g. for caps: { "enabled": true, "timeout": { "length": 300 }, "settings": { "limit": 50, "min": 8, "percent": 60 }, "exclude": 300 }.

filters_test_messageB

Check whether a message would be caught by the channel's spam filters. StreamElements documents the body only as { origin, data } with no further detail.

filters_banphrases_createA

Create a new, empty banned phrase group. Add phrases to it afterwards with filters_banphrases_update.

filters_banphrases_updateA

Update a banned phrase group (its name, phrases, enabled state and timeout). Send the group as returned in filters_list's banphrases list, with your changes applied.

filters_banphrases_deleteA

Permanently delete a banned phrase group and all of its phrases.

filters_banphrase_searchC

Get the details of a banned phrase by its id.

loyalty_get_settingsA

Get the channel's loyalty (points) settings: currency name, points per interval (amount), subscriber multiplier, per-event bonuses (follow, tip, subscriber, cheer, host) and ignored users.

loyalty_update_settingsA

Update the channel's loyalty settings. StreamElements does not document the body. Send the document shape returned by loyalty_get_settings (at least its loyalty object) with your changes applied.

loyalty_statsB

Get the channel's StreamElements statistics for a period (year, month, week or day) around a date.

points_get_userB

Get a viewer's current points, all-time points and watchtime on the channel.

points_get_user_rankC

Get a viewer's rank on the channel's points leaderboard.

points_addB

Add points to a viewer's current balance, or remove points with a negative amount.

points_reset_userA

Reset a viewer's current points by removing them from the points table. Cannot be undone.

points_add_alltimeB

Add to a viewer's all-time points total, or subtract with a negative amount.

points_reset_user_alltimeB

Reset a viewer's all-time points. Cannot be undone.

points_list_alltimeB

List viewers ranked by all-time points.

points_list_topB

List viewers ranked by current points (the points leaderboard).

points_list_watchtimeB

List viewers ranked by watchtime.

points_bulk_updateA

Change points for many viewers at once. mode 'add' adds each amount to the balance; 'set' replaces the balance.

points_reset_allA

Reset the points of EVERY viewer on the channel for a leaderboard context. Cannot be undone. Only run it if the user explicitly asks.

store_items_listB

List the channel's loyalty store items (name, cost, stock, cooldowns, redemption settings).

store_items_createC

Add an item that viewers can redeem with loyalty points.

store_items_getC

Get one store item by id.

store_items_updateA

Update a store item. The API may treat this as a full replacement, so the safest approach is to send every field from store_items_get with your changes applied.

store_items_deleteB

Permanently delete a store item.

store_redemptions_listB

List store redemptions, newest first. Set pending=true to see only redemptions still to be fulfilled.

store_redemptions_searchC

Search store redemptions by text, with optional date range, pending filter and sort.

store_redemptions_mineA

List the store redemptions made by the token owner on this channel.

store_redemptions_getA

Get one store redemption by id, including the viewer's answers to the item's questions.

store_redemptions_updateB

Update a store redemption, e.g. { "completed": true } to mark it fulfilled.

store_redemptions_deleteA

Permanently delete a store redemption record.

tips_listB

List the channel's tips (donations), with optional filters by date range, tipper, email and message.

tips_createA

Create a tip record on the channel, e.g. to import a donation received elsewhere. This writes to the channel's real tip history.

tips_topB

List the channel's top tippers with tip count, total, average, and first/last tip dates.

tips_leaderboardC

Get the channel's tips leaderboard.

tips_moderation_listA

List tips held for moderation before they are shown on stream.

tips_getB

Get one tip by id, with the tipper, amount, currency, message and status.

activities_listB

List the channel's activity feed (follows, subs, tips, cheers, raids, hosts, redemptions and more), newest first, filtered by type, date range and minimum amounts.

activities_topC

List the channel's top cheerers or tippers for a period.

activities_getC

Get one activity by id.

activities_updateB

Update an activity. StreamElements documents this endpoint only as 'Update activity' and gives no body format; pass the fields to change in changes.

activities_replayA

Replay an activity's alert on the channel's overlays, e.g. to re-show a follow or tip alert on stream.

songrequests_playing_globalA

Get the song currently playing in a media request room, looked up by provider and room instead of channel. StreamElements does not document these parameters.

songrequests_youtube_lookupB

Look up a YouTube video by id, or search YouTube by phrase, as the media request system sees it.

songrequests_get_settingsB

Get the channel's media (song) request settings: limits, costs, moderation and allowed sources.

songrequests_get_public_settingsA

Get the public subset of the channel's media request settings.

songrequests_queueB

Get the media request queue with full video details.

songrequests_queue_publicA

Get the media request queue for public display, without video details.

songrequests_addB

Add a YouTube video to the channel's media request queue.

songrequests_removeB

Remove a song from the media request queue. Get song ids from songrequests_queue.

songrequests_pendingA

List media requests waiting in the moderation queue.

songrequests_playlistA

Get the songs on the channel's playlist, which plays when the request queue is empty.

songrequests_player_statusB

Get the media player's current state (playing or paused, volume and so on).

songrequests_player_controlC

Play or pause the channel's media request player.

songrequests_historyB

List previously played media requests.

songrequests_playingB

Get the song currently playing on the channel.

songrequests_nextC

Get the next song in the media request queue.

contests_listA

List the channel's contests (points betting on outcomes), including the active one.

contests_createA

Create a contest where viewers bet loyalty points on an outcome. Start it with contests_start.

contests_historyC

List the channel's previous contests.

contests_getB

Get one contest by id, with its options, totals and state.

contests_updateB

Update a contest that has not started yet.

contests_deleteA

DELETE /contests/{channel}/{contestId}. StreamElements labels it 'Close contest', the same as contests_close. Prefer contests_close to end a running contest and contests_refund to return bets.

contests_startA

Start a created contest so viewers can place bets.

contests_betA

Place a bet on a contest option as the token owner.

contests_list_betsC

List the bets placed on a contest.

contests_draw_winnerA

Settle a contest by choosing the winning outcome, which pays out points. StreamElements does not document the body; it presumably names the winning option, e.g. { "winnerId": "" }.

contests_refundB

Cancel a contest and refund every participant's bet.

contests_closeA

Close betting on a running contest, so no new bets are accepted, before picking a winner.

giveaways_listB

List the channel's giveaways, including the active one.

giveaways_createA

Create a giveaway where viewers buy tickets with loyalty points. Start it with giveaways_start.

giveaways_historyB

List the channel's previous giveaways.

giveaways_getB

Get one giveaway by id, optionally with its entrants.

giveaways_create_by_idA

POST /giveaways/{channel}/{giveawayId}. StreamElements labels it 'Create a new Giveaway' and says the id may refer to the ongoing giveaway; the body format is undocumented. Prefer giveaways_create to create one.

giveaways_updateC

Update a giveaway's settings.

giveaways_deleteB

Permanently delete a giveaway.

giveaways_list_entrantsB

List the users who joined a giveaway and their tickets.

giveaways_startC

Start a giveaway so viewers can join.

giveaways_draw_winnerB

Draw a random winner from the giveaway's entrants. Each call draws another winner.

giveaways_completeA

Mark a giveaway as complete once winners are settled.

giveaways_reopenA

Reopen a closed giveaway so viewers can join again.

giveaways_refundB

Cancel a giveaway and refund every entrant's tickets.

giveaways_closeA

Close entries on a running giveaway, so no new tickets are accepted, before drawing a winner.

sessions_getA

Get the channel's session data: latest follower/subscriber/tip/cheer, and the session, week, month and total counters that overlay widgets display.

sessions_updateA

Overwrite session data values, e.g. to correct a counter shown on overlays. Send the fields to change, keyed as they appear in sessions_get's data.

sessions_get_settingsB

Get the channel's session settings, such as when the session resets and which events count toward it.

sessions_update_settingsA

Update the channel's session settings. Get the current settings with sessions_get_settings, change them, and send them back.

sessions_resetA

Reset the channel's session data (session counters and latest events). Cannot be undone.

sessions_topB

Get the top events (e.g. biggest tips or cheers) aggregated over an interval.

overlays_listA

List the channel's overlays, optionally filtered by name or type.

overlays_getA

Get one overlay with all of its widgets and their settings. Responses can be large.

overlays_reloadA

Reload all of the channel's overlays, like refreshing every overlay browser source.

overlays_actionB

Control alerts on the channel's overlays: pause or play the alert queue, mute or unmute alert sounds, or reload.

overlays_createA

Create a new overlay on the channel, empty by default. Undocumented endpoint: not in the official API reference, so it may change without notice. To copy an overlay, pass the widgets from overlays_get.

overlays_deleteA

Permanently delete an overlay and all of its widgets. Browser sources pointing at it stop working. Undocumented endpoint: not in the official API reference, so it may change without notice.

chatstats_globalB

Get global chat statistics across all channels that StreamElements chat stats tracks.

chatstats_searchB

Search the channels tracked by chat stats by channel name.

chatstats_getC

Get a channel's chat stats summary by channel name.

chatstats_epmC

Get a channel's 'emotes per minute' chat stats.

chatstats_statsB

Get a channel's detailed chat stats: top chatters, emotes, commands, hashtags and more.

chatstats_itemB

Get the chat stats for one item in a category, e.g. one emote or one chatter.

themes_listB

Browse the StreamElements theme gallery (ready-made overlay and alert packages).

themes_getB

Get one theme from the StreamElements gallery by id.

overlays_updateA

Change an overlay's name, canvas settings or individual widgets (position, size, visibility, text, colors and other widget fields). Fetches the current overlay, applies only the given changes and saves it back, so widgets you don't mention are kept intact. Use overlays_get first to find widget ids and field names. Undocumented endpoint (PUT /overlays/{channel}/{overlayId}): not in the official API reference, so it may change without notice.

Prompts

Interactive templates invoked by user choice

NameDescription

No prompts

Resources

Contextual data attached and managed by the client

NameDescription

No resources

TDQS

B3/5.0

Scored across 140 tools

Disambiguation3/5

Many tools target distinct resources, but overlaps exist: contests_delete is documented as the same as contests_close, giveaways_create vs giveaways_create_by_id, and several get/details variants (channels_get, channels_get_details, channels_me). Descriptions often note preferences, which helps, but an agent could still misselect among near-duplicates.

Naming Consistency4/5

Names follow a mostly consistent snake_case resource_action pattern (giveaways_draw_winner, points_get_user, store_items_create). Minor deviations like channels_me, channels_socket, and long names like channels_revoke_access_token are readable but slightly break the verb_noun convention.

Tool Count1/5

140 tools is an extreme mismatch for a single MCP server; the rubric marks 50+ as extreme. Many tools could be consolidated or scoped to sub-servers, and the sheer count makes discovery and selection impractical.

Completeness4/5

The surface covers a huge portion of the StreamElements API across giveaways, contests, commands, timers, filters, loyalty, points, store, tips, activities, overlays, and chat stats. Minor gaps remain, such as no obvious tool to approve/deny moderated tips or update bot module settings, but core lifecycle operations are present.

Maintenance

ActivityMaintained
ResponsivenessNo issues