thread-storm

thread-storm

MCP server for publishing threads to Threads and Twitter/X simultaneously from Claude Code. Journal your thoughts, convert them to viral threads, and post everywhere at once.

Category
Visit Server

README

Thread Storm

MCP server for publishing threads to Threads and Twitter/X simultaneously from Claude Code. Journal your thoughts, convert them to viral threads, and post everywhere at once.

Features

13 tools available via MCP:

Threads (9 tools)

Tool Description
threads_get_profile Fetch Threads profile info
threads_get_posts List recent posts with pagination
threads_get_post_details Get full details for a specific post
threads_get_post_insights Engagement metrics (views, likes, replies, reposts, quotes, shares)
threads_get_replies Direct replies to a specific post
threads_search Keyword search across Threads
threads_get_account_insights Account-level metrics
threads_publish_text Publish a text post (optional reply)
threads_publish_thread Publish a multi-post thread

Twitter/X (3 tools)

Tool Description
twitter_get_profile Fetch Twitter profile info
twitter_publish_text Post a tweet (optional reply)
twitter_publish_thread Post a tweet thread

Cross-Platform (1 tool)

Tool Description
storm_publish_thread Publish to BOTH Threads and Twitter simultaneously

Prerequisites

  • Python 3.12+
  • uv
  • A Meta developer app with Threads API access
  • A Twitter/X developer app with Read+Write permissions

Quick Start

  1. Clone the repo:

    git clone https://github.com/asadhuddleduck/thread-storm.git
    cd thread-storm
    
  2. Install dependencies:

    uv sync
    
  3. Add to your .mcp.json:

    {
      "mcpServers": {
        "thread-storm": {
          "command": "uv",
          "args": ["run", "--python", "3.12", "--directory", "/path/to/thread-storm", "thread-storm"],
          "env": {
            "THREADS_ACCESS_TOKEN": "your-threads-token",
            "THREADS_APP_SECRET": "your-threads-app-secret",
            "TWITTER_API_KEY": "your-twitter-api-key",
            "TWITTER_API_SECRET": "your-twitter-api-secret",
            "TWITTER_ACCESS_TOKEN": "your-twitter-access-token",
            "TWITTER_ACCESS_TOKEN_SECRET": "your-twitter-access-token-secret"
          }
        }
      }
    }
    
  4. Restart Claude Code. All 13 tools will be available.

Environment Variables

Variable Platform Description
THREADS_ACCESS_TOKEN Threads Long-lived token from Meta's User Token Generator
THREADS_APP_SECRET Threads App secret from Meta developer app
TWITTER_API_KEY Twitter OAuth 1.0a consumer API key
TWITTER_API_SECRET Twitter OAuth 1.0a consumer API secret
TWITTER_ACCESS_TOKEN Twitter OAuth 1.0a user access token
TWITTER_ACCESS_TOKEN_SECRET Twitter OAuth 1.0a user access token secret

Architecture

src/thread_storm/
  threads_client.py   — Threads HTTP client (GET via urllib, POST via curl)
  twitter_client.py   — Twitter client via tweepy (OAuth 1.0a)
  server.py           — FastMCP server with 13 tool definitions

Threads Publishing Flow

  1. Create media container (POST)
  2. Poll container status until FINISHED (2s intervals)
  3. Publish container (POST)
  4. Wait 10s propagation delay before next reply

Twitter Publishing Flow

  1. Post tweet (POST /2/tweets)
  2. Post next tweet with in_reply_to_tweet_id
  3. No polling or delays needed

storm_publish_thread

Runs both platforms in parallel using ThreadPoolExecutor. Twitter finishes in seconds while Threads takes 1-2 minutes for a 9-post thread.

Token Management (Threads)

Threads tokens expire after 60 days. Auto-refresh kicks in at day 30:

  1. Token saved to ~/.threads-mcp/token.json on first use
  2. After day 30, exchanged for a fresh 60-day token
  3. New token saved to both token.json and .mcp.json

Twitter OAuth 1.0a tokens do not expire.

Rate Limits

  • Threads publishing: 250 posts per 24 hours
  • Threads search: 500 queries per 7 days
  • Twitter publishing: 500 tweets per month (Free tier)

License

MIT

Recommended Servers

playwright-mcp

playwright-mcp

A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.

Official
Featured
TypeScript
Magic Component Platform (MCP)

Magic Component Platform (MCP)

An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.

Official
Featured
Local
TypeScript
Audiense Insights MCP Server

Audiense Insights MCP Server

Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.

Official
Featured
Local
TypeScript
VeyraX MCP

VeyraX MCP

Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.

Official
Featured
Local
graphlit-mcp-server

graphlit-mcp-server

The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.

Official
Featured
TypeScript
Kagi MCP Server

Kagi MCP Server

An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.

Official
Featured
Python
E2B

E2B

Using MCP to run code via e2b.

Official
Featured
Neon Database

Neon Database

MCP server for interacting with Neon Management API and databases

Official
Featured
Exa Search

Exa Search

A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.

Official
Featured
Qdrant Server

Qdrant Server

This repository is an example of how to create a MCP server for Qdrant, a vector search engine.

Official
Featured