TwitGhost
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@TwitGhostsearch tweets about AI"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
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
Related MCP server: X MCP Server
Installation
Prerequisites
Python 3.10+
A Twitter/X account (free tier works fine)
Via Smithery (recommended)
npx -y @smithery/cli install mcp-twitghost --client claudeManual (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.jsonRestart 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 |
| Your X handle | Yes |
| Email on your X account | Yes |
| Your X password | Yes |
| 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 tweets by query. |
| Get tweets from a user's timeline |
| Your For You feed |
| Your Following feed |
| Post a tweet. Supports media, replies, and @mentions |
| Delete a tweet by ID |
| Send a DM to a user. Optional media attachment. |
| 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/twikitIf it still shows d60/twikit, reinstall:
pip uninstall twikit
pip install git+https://github.com/unclecode/twikit.gitCloudflare / 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.jsonRestart 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 certifiCredits
Based on
adhikasp/mcp-twikit— original MCP Twitter serverUses
unclecode/twikitfork for X API compatibilityBuilt with FastMCP and the MCP protocol
License
MIT
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Latest Blog Posts
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/arvinmoj/twitghost-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server