twist — Claude Code MCP server: channels, threads, messages
Bridges your Twist workspace and an AI agent: list channels, open threads, post messages through MCP tools. Handy when discussion lives in Twist but you work from the chat.
claude mcp add twist -e TWIST_BEARER_TOKEN=<TWIST_BEARER_TOKEN> -e TWIST_WORKSPACE_ID=<TWIST_WORKSPACE_ID> -- npx -y twist-mcp-serverWhat twist does
Under the hood it talks to the Twist REST API and exposes six tools. get_channels and get_channel map the workspace, get_threads and get_thread pull discussions with their messages, create_thread starts a new topic in a channel, and add_message_to_thread appends to an existing one. List calls come with pagination.
Two credentials gate everything: a Twist bearer token and the workspace ID, passed as TWIST_BEARER_TOKEN and TWIST_WORKSPACE_ID. Miss either and the server has nothing to talk to. Node.js v24.2.0 is the version the project asks for, so an older runtime is a risk.
PulseMCP maintains the code; it is not an official Twist product. Message and thread bodies accept Markdown, which makes agent-written updates readable. Development and testing happened on macOS with Claude Desktop — other MCP clients should work, though the README only promises that they should.
What it helps with
- see which channels exist in a Twist workspace
- pull the messages out of a thread
- open a new discussion in a channel from the agent chat
- append a link or status update to an existing thread
- look up a channel by ID and check its topic
Example prompts for the agent
- List every channel in my Twist workspace
- Start a thread in channel
ch_456about the new API design - Post the docs link into thread
th_999
How to install twist
Platform CLI
claude mcp add twist -e TWIST_BEARER_TOKEN=<TWIST_BEARER_TOKEN> -e TWIST_WORKSPACE_ID=<TWIST_WORKSPACE_ID> -- npx -y twist-mcp-serverReplace <…> with your own values
Platform CLI
codex mcp add twist --env TWIST_BEARER_TOKEN=<TWIST_BEARER_TOKEN> --env TWIST_WORKSPACE_ID=<TWIST_WORKSPACE_ID> -- npx -y twist-mcp-serverReplace <…> with your own values
Config file
{
"mcpServers": {
"twist": {
"command": "npx",
"args": [
"-y",
"twist-mcp-server"
],
"env": {
"TWIST_BEARER_TOKEN": "<TWIST_BEARER_TOKEN>",
"TWIST_WORKSPACE_ID": "<TWIST_WORKSPACE_ID>"
}
}
}
}Replace <…> with your own values
Config file
{
"servers": {
"twist": {
"type": "stdio",
"command": "npx",
"args": [
"-y",
"twist-mcp-server"
],
"env": {
"TWIST_BEARER_TOKEN": "<TWIST_BEARER_TOKEN>",
"TWIST_WORKSPACE_ID": "<TWIST_WORKSPACE_ID>"
}
}
}
}Replace <…> with your own values
Platform CLI
gemini mcp add -e TWIST_BEARER_TOKEN=<TWIST_BEARER_TOKEN> -e TWIST_WORKSPACE_ID=<TWIST_WORKSPACE_ID> twist npx -y twist-mcp-serverReplace <…> with your own values
Step by step, with commands for each platform: How to add an MCP server to Claude Code, Codex, Cursor, VS Code, Gemini CLI and more
Questions about twist
How do I install twist in Claude Code?
Run claude mcp add twist -e TWIST_BEARER_TOKEN=<TWIST_BEARER_TOKEN> -e TWIST_WORKSPACE_ID=<TWIST_WORKSPACE_ID> -- npx -y twist-mcp-server with your own token and workspace ID filled in.
What does twist do?
It gives the agent tools to read Twist channels and threads, create new threads and post messages. Six MCP tools sit on top of the Twist REST API.
What do I need before running twist?
A Twist bearer token, your workspace ID and Node.js v24.2.0. The token and ID go in as environment variables when you register the server.