twist_inbox_getLABSCO SUMMARY
Twist triage without opening Twist.
The inbox pass — read what came in, archive what is finished, star what matters, post the answer — happens in one place, a call at a time.
What it is
A Python server for a Twist workspace. Its tools split cleanly in two: the inbox, for reading and clearing what has arrived, and threads, for creating, updating and organizing the conversations themselves.
What you get
- twist_inbox_get reads the inbox; twist_inbox_get_count reports how much is sitting in it
- twist_inbox_archive, twist_inbox_unarchive and twist_inbox_archive_all clear it, one thread at a time or everything after a timestamp
- twist_inbox_mark_all_read and twist_threads_mark_all_read settle unread state in a single call
- twist_threads_add, twist_threads_update and twist_threads_remove create and maintain threads
- twist_threads_get, twist_threads_getone and twist_threads_get_unread read a channel, a single thread, or just what is unread
- twist_threads_star, twist_threads_pin, twist_threads_mute and their reverses organize a channel
- twist_threads_move_to_channel relocates a thread; twist_threads_mark_read, twist_threads_mark_unread and twist_threads_mark_unread_for_others set read state, including for other people
Requirements
Python 3.10 or later and the uv package manager. Needs a Twist API token — the OAuth 2 test token from the Twist App console, which carries full scope for the logged-in user — plus your workspace ID.
Setup effort
Clone and run — clone the repository, then add the configuration for your client; uv runs the script from your clone, with nothing to build
USE CASES
Working through the inbox
Threads are read and archived in the same pass, so the queue shrinks while you are reading rather than afterwards.
Catching up on what you missed
Unread threads across the workspace first, then the full text of the ones that matter.
Posting an update to a channel
A new thread goes into the right channel from wherever you drafted it.
Tidying a channel that has drifted
A thread in the wrong channel is moved and the ones that matter are pinned, so the channel reads correctly next time.
Declaring inbox zero
Everything archived and marked read in two calls, optionally only what arrived after a timestamp.
Flagging something for the rest of the team
Marking a thread unread for others puts it back at the top of their inbox without writing another message.
24 tools
Listed in project docs. Your client may show a different list.
twist_inbox_archive_alltwist_inbox_archivetwist_inbox_unarchivetwist_inbox_mark_all_readtwist_inbox_get_counttwist_threads_getonetwist_threads_gettwist_threads_addtwist_threads_updatetwist_threads_removetwist_threads_startwist_threads_unstartwist_threads_pintwist_threads_unpintwist_threads_move_to_channeltwist_threads_get_unreadtwist_threads_mark_readtwist_threads_mark_unreadtwist_threads_mark_unread_for_otherstwist_threads_mark_all_readtwist_threads_clear_unreadtwist_threads_mutetwist_threads_unmuteBEFORE YOU INSTALL
What to know first
Tools you get
24 tools named in the project's documentation.
Requires
- Python 3.10+
- TWIST_API_TOKEN in your environment
- TWIST_WORKSPACE_ID in your environment
Where it runs
The documented client runs the server on your machine.
INSTALLATION
Connect your client
Clone the repository, then add the configuration for your client; uv runs the script from your clone, with nothing to build.
Server setup
git clone https://github.com/mikemc/twist-mcp-server.gitMCP Clients
Claude Desktop
{
"mcpServers": {
"twist": {
"command": "uv",
"args": [
"--directory",
"<YOUR_PATH_TO_TWIST_MCP_SERVER>",
"run",
"main.py"
],
"env": {
"TWIST_API_TOKEN": "<YOUR_TWIST_API_TOKEN>",
"TWIST_WORKSPACE_ID": "<YOUR_TWIST_WORKSPACE_ID>"
}
}
}
}