TwitGhost
Enables interacting with Twitter/X through natural language, including searching tweets, posting, sending DMs, and managing timelines via any MCP client.
README
TwitGhost
A Model Context Protocol (MCP) server for interacting with Twitter/X. Search tweets, post tweets, send DMs, manage your timeline — all through natural language with any MCP client (Claude, Code, Cursor, etc.).
Why TwitGhost? This is a maintained fork of
adhikasp/mcp-twikitthat uses theunclecode/twikitfork instead ofd60/twikit, fixing theKEY_BYTE/Cryptography_Hashererrors that have been blocking authentication with current X API versions.
Features
- Search tweets — by keyword, with Top or Latest sorting
- User timeline — get tweets from any user
- Home timeline — For You and Following feeds
- Post tweets — with media, replies, and mentions
- Delete tweets — by ID
- Send DMs — direct messages with optional media
- Delete DMs — by message ID
Installation
Prerequisites
- Python 3.10+
- A Twitter/X account (free tier works fine)
Via Smithery (recommended)
npx -y @smithery/cli install mcp-twitghost --client claude
Manual (uvx)
{
"mcpServers": {
"twitghost": {
"command": "uvx",
"args": ["--from", "git+https://github.com/arvinmoj/mcp-twitghost", "mcp-twitghost"],
"env": {
"TWITTER_USERNAME": "@yourusername",
"TWITTER_EMAIL": "you@example.com",
"TWITTER_PASSWORD": "your-password"
}
}
}
}
Manual (pip)
git clone https://github.com/arvinmoj/mcp-twitghost.git
cd mcp-twitghost
pip install .
Then configure in your MCP client:
{
"mcpServers": {
"twitghost": {
"command": "mcp-twitghost",
"env": {
"TWITTER_USERNAME": "@yourusername",
"TWITTER_EMAIL": "you@example.com",
"TWITTER_PASSWORD": "your-password"
}
}
}
}
Authentication
TwitGhost supports two authentication modes, checked in order:
1. Browser Cookies (recommended — bypasses Cloudflare/rate limits)
If you export cookies from your browser session, TwitGhost loads them directly. This bypasses the Cloudflare WAF block that often breaks password login.
Cookie path: ~/.twitghost/cookies.json
How to export:
- Log in to X in your browser
- Install a cookie exporter extension (e.g., "Get cookies.txt" or "Export Cookie JSON")
- Export cookies as JSON to
~/.twitghost/cookies.json - Restart your MCP client
Required cookies for a working session:
auth_token— primary authct0— CSRF tokentwid— user IDguest_id— guest identifier__cf_bm— Cloudflare bypass
Cookies expire ~30 days. When they do, re-export from your browser.
2. Credentials (fallback)
If no cookies file is found, TwitGhost falls back to username/email/password login:
| Env Variable | Description | Required |
|---|---|---|
TWITTER_USERNAME |
Your X handle | Yes |
TWITTER_EMAIL |
Email on your X account | Yes |
TWITTER_PASSWORD |
Your X password | Yes |
USER_AGENT |
Optional browser UA | No |
⚠️ Known issue: password login may fail with
CloudflareorKEY_BYTEerrors. If this happens, switch to browser cookies.
Available Tools
| Tool | Description |
|---|---|
search_twitter |
Search tweets by query. sort_by: Top or Latest |
get_user_tweets |
Get tweets from a user's timeline |
get_timeline |
Your For You feed |
get_latest_timeline |
Your Following feed |
post_tweet |
Post a tweet. Supports media, replies, and @mentions |
delete_tweet |
Delete a tweet by ID |
send_dm |
Send a DM to a user. Optional media attachment. |
delete_dm |
Delete a DM by message ID |
Rate Limits
Built-in client-side rate limiting to avoid hitting Twitter's server-side caps:
| Endpoint | Limit | Window |
|---|---|---|
| Tweets | 300 tweets | 15 min |
| DMs | 1,000 messages | 15 min |
Troubleshooting
KEY_BYTE or Cryptography_Hasher error
This is a known issue with the original d60/twikit package and newer X API endpoints. TwitGhost uses the unclecode/twikit fork which fixes this. Make sure you installed the right dependency:
pip show twikit
# Source should show unclecode/twikit
If it still shows d60/twikit, reinstall:
pip uninstall twikit
pip install git+https://github.com/unclecode/twikit.git
Cloudflare / 403 error on login
Twitter's Cloudflare WAF blocks many automated logins. Use browser cookies instead:
- Export cookies from a logged-in browser session
- Save to
~/.twitghost/cookies.json - Restart TwitGhost
Cookie file exists but auth fails
Cookies expire after ~30 days. Re-export from your browser.
Cannot connect to host / SSL errors
Ensure your Python installation has up-to-date SSL certificates:
pip install --upgrade certifi
Credits
- Based on
adhikasp/mcp-twikit— original MCP Twitter server - Uses
unclecode/twikitfork for X API compatibility - Built with FastMCP and the MCP protocol
License
MIT
Recommended Servers
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.
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.
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.
VeyraX MCP
Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.
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.
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.
E2B
Using MCP to run code via e2b.
Neon Database
MCP server for interacting with Neon Management API and databases
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.
Qdrant Server
This repository is an example of how to create a MCP server for Qdrant, a vector search engine.