TwitterTools MCP

io.github.steleyv1.2.0Updated Oct 7, 2026

Fetch public X posts and threads; count and split text with X's real rules. No login, no tracking.

Overview

AI-generated overview

Lets an assistant fetch public X posts and threads, and count or split text using X's character rules.

What it does
Exposes five tools: get_tweet fetches a public post by URL or ID with text, author and direct media CDN links; get_thread unrolls a thread in order, flagging partial results; count_chars measures text against X's 280-character limit with CJK counted double and links as 23; split_thread breaks long text into numbered limit-fitting posts; parse_tweet_url converts a URL or ID into ID, handle, posting time and canonical permalink. The two fetch tools call a stateless remote API that resolves public posts through X's syndication endpoint; the other three run offline.
When to use it
Useful when an assistant needs to read public X posts or threads without logging in, or to draft and split posts that fit X's real character counting rules. Worth adding for social media research, content drafting, or link parsing workflows.
Requirements
Runs locally over stdio via npx (npm package twittertools-mcp) and needs Node 18 or newer. Network access is required for get_tweet and get_thread, which call the default API base at twittertools.com unless the optional TWITTERTOOLS_API_BASE environment variable points at a self-hosted instance. No accounts or API keys.
Before you install
The fetch tools send the requested post URLs or IDs to the configured API base, which by default is a third-party service; set TWITTERTOOLS_API_BASE to keep lookups on your own infrastructure. The server is described as stateless with no telemetry, and the API keeps only aggregate anonymous counters. Media is not proxied, so returned CDN links are fetched by the client directly.

Installation

In SourceWeft

  1. Open TwitterTools MCP in the dashboard and add it to a workspace.
  2. Enable the server for the chats that should use its tools.

Desktop only via STDIO. STDIO servers start a local process, so they need the SourceWeft desktop host.

Other MCP clients

Follow the launch instructions in the repository.

README

twittertools-mcp

Model Context Protocol server for TwitterTools — brings the toolkit to AI agents (Claude, ChatGPT, Cursor, ZCode, …). No login, no tracking, no API keys. Listed in the official MCP Registry as io.github.steley/twittertools-mcp.

Tools

ToolWhat it does
get_tweetFetch a public post by URL or ID: text, author, media with direct CDN URLs
get_threadUnroll a thread into its posts, in order (partial results are flagged)
count_charsMeasure text against X's real 280-character limit (CJK ×2, links = 23)
split_threadSplit long text into numbered, limit-fitting posts
parse_tweet_urlURL/ID → ID, author handle, posting time, canonical permalink

get_tweet / get_thread call the stateless twittertools.com API, which resolves public posts through X's free syndication endpoint. The other three run entirely offline. Media is not proxied: tweet results carry the direct pbs.twimg.com / video.twimg.com URLs, which any client can fetch on its own.

The package has zero dependencies: the MCP protocol layer is hand-rolled (line-delimited JSON-RPC over stdio), so the entire supply-chain surface is the couple hundred lines in this directory — verifiable against Socket or any scanner.

Install

sh
# Claude Codeclaude mcp add twittertools -- npx -y twittertools-mcp

Or add it to any client that reads an mcpServers config (Claude Desktop's claude_desktop_config.json, Cursor's .cursor/mcp.json, …):

json
{  "mcpServers": {    "twittertools": {      "command": "npx",      "args": ["-y", "twittertools-mcp"]    }  }}

Requires Node 18+.

Tip: npx resolves the latest version from the registry on every launch (instant once cached, a few seconds the very first time). For zero startup delay, npm i -g twittertools-mcp once and set "command": "twittertools-mcp".

Self-hosting

Point TWITTERTOOLS_API_BASE at your own instance of server/downloader_server.py to keep lookups entirely on your infrastructure:

json
{ "command": "npx", "args": ["-y", "twittertools-mcp"], "env": { "TWITTERTOOLS_API_BASE": "https://your-instance.example" } }

Privacy

The server is stateless: nothing is stored, no telemetry, no accounts. It talks only to the configured API base. The API itself is rate-limited per IP and keeps only aggregate, anonymous counters — see twittertools.com/privacy.

Development

sh
npm installcd .. && npx vitest run mcp   # unit + stdio protocol tests (offline, mock API)

MIT — same as the main project.

Source: mcp/README.md at commit 5540d11

Tools

0
Tool metadata has not been indexed yet.

Version history

1
  1. v1.2.0LatestOct 7, 2026