# Twist MCP

> Twist MCP Server manages your entire team's asynchronous dialogue through any AI agent. It gives you full control over workspaces, channels, threads, comments, and one-on-one DMs without context switching. Use it to read specific conversations, create announcement threads, or modify direct messages right from your chat interface.

## Overview
- **Category:** collaboration-tools
- **Price:** Free
- **Tags:** asynchronous-messaging, team-collaboration, workspace-management, thread-management, direct-messaging

## Description

You gotta connect your team’s chat hub—Twist—to your AI agent using this server. It lets you manage every damn thing happening in your asynchronous dialogue without ever leaving your current screen and switching context. You'll get full control over everything: the big workspaces, the specific channels, the little threads, comments, and even those private one-on-one DMs.

**Finding Your Place**

To figure out where everybody is talking, you start by mapping the whole setup. Use `list_workspaces` to get a list of all the top-level organizations running in Twist, returning their names and IDs so you know your boundaries. From there, if you need to see what smaller groups exist within that organization, run `list_channels`. This pulls back every open channel ID for a given workspace, letting you map out the entire organizational structure before you even start talking.

**Managing People**

If you need to know who's actually in these chats—the roster of people involved—you call `list_workspace_users`. This tool gives you a clean list of every individual member belonging to that specific workspace. You can use those user IDs later when you send private messages.

**Starting and Updating Discussions**

When it comes to the actual conversations, you've got options for everything. If you need to kick off a whole new discussion—maybe an announcement or a big topic everyone needs to read—you execute `create_thread`. You just gotta provide a title and the initial body text, and bam, you're in a brand-new async topic within any specific channel.

Existing topics need attention too. If the main idea changes, you can change it using `update_thread`, which lets you modify either the thread’s core content or its title by giving it that unique thread ID. Want to add more detail without starting a new chat? You use `create_comment`. Just feed it the specific thread ID and what you wanna say, and it posts a reply right into the existing conversation flow.

**Handling Private Chat (DMs)**

Private chats are handled differently. If you need to check out what's been said between two people, `list_direct_messages` fetches all messages from that specific one-on-one conversation using its unique ID. You can read everything there.

You wanna reply? Use `send_direct_message`. Just give it the conversation ID and your content, and you send a new private message to another user or group. If someone messes up something they sent, or if *you* send something wrong, don't sweat it; you can use `update_direct_message` which lets you modify the content of any direct message that already went out, all you need is its unique message ID.

By running these tools—from mapping workspaces with `list_workspaces` and finding user IDs with `list_workspace_users`, to starting a deep topic with `create_thread` or quietly modifying a private chat using `update_direct_message`—your AI agent lets you manage all of Twist’s dialogue directly. You read threads, send DMs, update titles, and post comments without ever leaving the environment.

## Tools

### create_comment
Posts a reply or comment into an existing conversation thread when provided with the thread ID and content.

### create_thread
Starts a brand new asynchronous discussion topic in a specific channel, requiring a title and initial body text.

### list_channels
Retrieves a list of open organizational channels within the specified workspace ID.

### list_direct_messages
Fetches all messages from a specific one-on-one direct conversation using its unique conversation ID.

### list_threads
Lists every active discussion thread contained within a given channel ID.

### list_workspace_users
Returns a list of all individual members belonging to a defined workspace.

### list_workspaces
Identifies and returns the names and IDs of active, bounded Twist Workspaces.

### send_direct_message
Sends a new, private message to another user or conversation group using the conversation ID and desired content.

### update_direct_message
Modifies the content of a direct message that was previously sent, requiring only the message's unique ID.

### update_thread
Changes the title or core content of an existing discussion thread using its specific thread ID.

## Prompt Examples

**Prompt:** 
```
Summarize all responses in the 'Q3 Pipeline' thread to see where we landed.
```

**Response:** 
```
I've pulled 12 responses from the 'Q3 Pipeline' thread. The team decided to focus on Enterprise features and push the Analytics sprint to Q4. Sara mentioned the scoping doc is finalized. Should I prepare a comment indicating your alignment?
```

**Prompt:** 
```
Post a new thread to the #bugs channel describing the latency issue in the EU region.
```

**Response:** 
```
I've created a new thread titled '[SEV-2] Extremely high latency on EU DB shards'. The content is fully formatted, including your ping logs and initial analysis. Thread ID is 44351.
```

**Prompt:** 
```
Check all my PMs with Mark and see if he shared his Figma files yesterday.
```

**Response:** 
```
I've reviewed your direct messages with Mark. Yesterday afternoon, he mentioned sharing a link via Figma, and left the exact URL 'figma.com/design/xyz'. No physical attachments dot-zip were detected.
```

## Capabilities

### Find organizational structure
List all workspaces and channels to map out your team's communication boundaries.

### Manage user groups
Identify all members within a specific workspace using `list_workspace_users`.

### Start new discussions
`create_thread` lets you post an announcement or deep topic into any channel.

### Update conversations
Modify the title or content of an existing discussion thread using `update_thread`.

### Handle private chats
Access, read, and respond to 1-on-1 direct messages via `list_direct_messages` and `send_direct_message`.

## Use Cases

### The missed decision point
A product manager needs the final outcome from a deep discussion about pricing. Instead of scrolling through 50 comments, they ask their agent to run `list_threads` and then summarize the 'Pricing' thread. The agent pulls all data and reports: 'The team settled on Tier B features.' They use this info immediately in an email.

### Catching up with a colleague
A remote employee hasn't talked to their manager, Mark, since last week. Rather than scheduling a call, they ask the agent to check `list_direct_messages` for conversations with Mark. The agent reports the key points and even drafts a follow-up using `send_direct_message`, saving time.

### Announcing new policy
The operations team needs to announce a new security protocol change across 5 departments. They instruct their agent: 'Use `list_channels` for the main department channels, then run `create_thread` in each one with the full markdown guide.' The announcement is structured and tracked.

### Correcting a mistake
An engineer sends an initial debugging message to a lead but misses a crucial file ID. Later, they realize it. They prompt their agent: 'Run `update_direct_message` on that message.' The agent finds the exact message by ID and updates the content with the correct details.

## Benefits

- Keep context local. Instead of jumping to Twist, you ask your AI client to run `list_threads` and get a summary right where you are working. No more tab switching.
- Handle deep conversations efficiently. Need to talk about the Q3 scope? Use `create_thread` to spin up a structured announcement that everyone can track without cluttering general channels.
- Keep DMs clean. If your PM sends a long message, use `list_direct_messages` to read the whole context immediately and then use `send_direct_message` for your reply—all in one go.
- Structured updates are easy. Use `update_thread` when a decision changes or a document link is finalized. You update the thread title once, and everyone sees it instantly.
- Map your team's structure quickly. Run `list_workspaces` followed by `list_channels` to get an immediate overview of all active groups and departments.

## How It Works

The bottom line is you can talk to your communication platform using natural language prompts instead of clicking through menus.

1. Subscribe to the server on Vinkius Marketplace.
2. Enter your Twist API Token into the Developer Portal.
3. Connect your AI client (like Cursor or Claude) to start sending commands.

## Frequently Asked Questions

**How do I find out what departments my company has using Twist MCP Server?**
Run `list_workspaces`. This tool identifies all top-level organizational Workspaces and gives you a map of your overall team structure.

**Can I read old private chats with list_direct_messages?**
Yes. You run `list_direct_messages` by providing the conversation ID, and it pulls all messages from that specific one-on-one chat history.

**How do I start a formal announcement thread in Twist MCP Server?**
Use `create_thread`. You provide the target channel ID, a title, and the initial content. This ensures your announcement is structured for easy tracking.

**What if I need to change the topic name of an old thread? Do I use update_thread?**
Yes, that's what `update_thread` does. You simply provide the existing thread ID and the new title or content you want to push out.

**What steps do I take to authenticate my agent and use tools like create_comment?**
You must subscribe to the server and provide your Twist API Token via the Developer Portal. This token authorizes all actions, letting your AI client access data securely.

**How do I use list_workspace_users if I need a roster of everyone in my department?**
The tool provides a complete list of all active member accounts within the specified workspace. You get user IDs and names, letting you build out communication groups.

**If I want to start an announcement thread but need background context, should I use list_threads first?**
Yes. Before calling create_thread, run list_threads with the channel ID. This shows all existing discussions and helps you frame your new topic accurately.

**I sent a wrong message in DMs; how do I use update_direct_message to fix it?**
You need the specific message ID for that chat. Pass this ID along with the corrected text, and the tool overwrites the old content instantly.

**Can my AI automatically create a new thread with bug report details in the #dev channel?**
Yes. Once you invoke the agent to query the channel ID for '#dev', it can execute the thread creation workflow and post an entire Markdown-formatted issue payload perfectly directly to the interface.

**Is it possible to correct a message typo via the agent?**
Yes! Twist is unique in allowing asynchronous editing. By providing your exact Message ID, the AI agent can overwrite and patch up your old text block retaining timeline flow naturally.

**Can the agent fetch recent threaded responses to summarize an ongoing project decision?**
Absolutely. It pulls in heavy threads natively. Give the agent a thread ID and request a summarization—it will digest long chains of conversation and outline the top project consensus within seconds avoiding you long reading phases.