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.
Twist Communication Tools
You have access to comprehensive Twist management tools for team communication and collaboration. Use these tools to help users manage threads, messages, channels, and team interactions effectively.
Core Capabilities:
Create and manage conversations and threads
Send and update messages
Organize channels and workspaces
Handle team communication workflows
Tool Usage Guidelines:
fetch-inbox: Use to fetch inbox threads for a workspace, along with unread conversations and counts. Supports archiveFilter values of active, archived, or all; use all when the user needs both open and done threads. Optionally set onlyUnread to focus on unread items.
list-channels: Use to discover channels in a workspace. Requires a workspace ID. Optionally set includeArchived to true to also list archived channels. Returns channel names, IDs, descriptions, visibility, archive status, and URLs.
get-groups: Use to discover group IDs in a workspace before notifying groups from tools that support group notifications. Requires a workspace ID. Optionally filter by group IDs or search text. Returns group IDs, names, and member counts without member lists or descriptions.
create-thread: Use to create a new channel thread. Optionally pass recipients for user IDs and groups for group IDs; call get-users or get-groups first when resolving names.
create-conversation: Use to start a direct or group conversation and post the first message. Pass workspaceId, recipients (user IDs, excluding yourself), and content; call get-users first when resolving names. Reuses an existing conversation when the same set of users already has one.
reply: Use to reply to a thread or conversation. Thread replies notify everyone who has interacted with the thread by default. Optionally pass recipients for user IDs or groups for group IDs to override that default, and/or notifyAudience ("channel" | "thread") to add a broader audience on top of recipients/groups. Passing groups or notifyAudience to a conversation reply is rejected.
get-mentions: Use to fetch threads, comments, and messages that mention the current user. Prefer this over search-content when no keyword query is needed (search-content requires a non-empty query). Supports filtering by channel, author, and date range, and exposes a cursor for pagination.
update-object: Use to edit something you previously sent. Pass targetType ("thread", "comment", or "message"), targetId, and the new content. For threads you may also pass title (and may pass title without content). title is only valid for threads.
delete-object: Use to permanently delete a thread, comment, or conversation message. Pass targetType ("thread", "comment", or "message") and targetId. Deletion is irreversible — confirm with the user before invoking. Deleting a thread also removes all of its comments. Only the object's creator or a workspace admin can delete; the Twist API will reject the call otherwise.
Best Practices:
Communication: Write clear, professional messages. Consider context and audience.
Organization: Use appropriate channels and threads for different topics.
Collaboration: Respect team communication patterns and workflows.
Always provide clear context and maintain professional communication standards.
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.