Twist AI MCP Server
OfficialServer Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| TWIST_API_KEY | Yes | Your Twist API key. | |
| TWIST_CREATE_THREAD_DISPLAY_IN_INBOX | No | Set to true to unarchive every newly-created thread so it appears in the author's Inbox. | false |
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
| Capability | Details |
|---|---|
| tools | {
"listChanged": true
} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| user-infoA | Get comprehensive user information including user ID, name, email, timezone, bot status, default workspace, and away mode status. |
| awayA | Manage the current user's away status. Supports getting, setting, and clearing away mode with types: parental, vacation, sickleave, other. |
| get-workspacesA | Get all workspaces that the user belongs to. Returns a list of workspaces with their IDs, names, creators, creation dates, and optional default channels, conversations, and plan information. |
| get-usersA | Get users from a workspace. Retrieves all workspace users by default, or specific users if userIds array is provided. Supports optional case-insensitive search filtering by name or email. |
| get-groupsA | Get groups from a workspace. Retrieves all workspace groups by default, or specific groups if groupIds array is provided. Supports optional case-insensitive search filtering by group name. Use this before passing group IDs to tools that support group notifications. |
| fetch-inboxA | Fetch inbox view with threads, conversations, unread counts, and unread IDs. Provides a complete picture of the inbox state. Use archiveFilter "all" to include threads marked as done alongside active threads. |
| load-threadB | Load a thread with its metadata and comments. Supports filtering by timestamp and pagination. |
| load-conversationA | Load a conversation (direct message) with its metadata and messages. Supports filtering by timestamp and pagination. |
| search-contentA | Search across a workspace for threads, comments, and messages. Supports filtering by channels, authors, dates, and mentions. |
| get-mentionsA | Fetch threads, comments, and messages that mention the current user. Supports filtering by channel, author, and date range. Use this instead of search-content when no keyword query is needed. |
| build-linkA | Build valid Twist URLs for threads, comments, conversations, or messages. Provide workspace_id and either (conversation_id + optional message_id) OR (thread_id + optional channel_id + optional comment_id). |
| create-threadB | Create a new thread in a workspace channel. Requires a channel ID, title, and content. Optionally notify specific users or groups. |
| create-conversationA | Start a direct or group conversation with one or more users and post an initial message. Reuses the existing conversation if one already exists for the same set of users. |
| update-objectA | Update an existing Twist object. |
| delete-objectA | Permanently delete a Twist object. |
| replyA | Post a reply to a thread (as a comment) or conversation (as a message). Thread replies notify everyone who has interacted with the thread by default unless specific user recipients, groups, or a notifyAudience are provided. |
| reactA | Add or remove an emoji reaction on a thread, comment, or conversation message. Use targetType to specify the type of object (thread, comment, or message) and targetId for the ID. |
| mark-doneA | Mark threads or conversations as done. Supports individual IDs or bulk operations (mark all in workspace/channel). For threads: can mark as read, archive in inbox, or clear all unread. For conversations: can mark as read and archive. |
| list-channelsA | List channels in a workspace. By default returns only active channels; set includeArchived to true to also include archived channels. Returns channel IDs, names, descriptions, visibility (public/private), archive status, creators, creation dates, URLs, and colors. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
TDQS
Scored across 19 tools
Each tool targets a distinct resource or action: user self-management, workspace lookups, inbox/thread/conversation loading, search/mentions, creation, update/delete, replies, reactions, and done state. Even similar tools like get-mentions and search-content are clearly differentiated by intent.
The tool names are readable and mostly action-oriented, but retrieval verbs are inconsistent: get-workspaces, fetch-inbox, load-thread, search-content, and list-channels all describe read operations. Names like user-info and away break the verb-noun pattern entirely.
At 19 tools, the set sits in the borderline 16-25 range and feels somewhat heavy. Most tools have legitimate purposes, but a few could potentially be consolidated or omitted without losing core functionality.
The core collaboration workflows are well covered: reading inbox/threads/conversations, searching, creating threads/conversations, replying, updating/deleting objects, reacting, and marking done. Minor gaps exist around channel/workspace administration and group management, but agents can accomplish most typical tasks.