X MCP Server
Enables AI assistants to automate Twitter/X actions through the X API v2, supporting over 50 tools for posting, searching, user management, and more.
README
X MCP Server 🐦
A powerful Model Context Protocol (MCP) Server for interacting with the X (Twitter) API v2. This server enables AI assistants like ChatGPT, Claude, and other MCP-compatible clients to automate Twitter/X actions.
Note: This server is limited to endpoints available in the Free tier of X API.
📋 Table of Contents
- Features
- Getting X API Credentials
- Installation
- Configuration
- Connecting to AI Clients
- Available Tools
- Rate Limits
- License
✨ Features
- 54+ automation tools for X/Twitter
- Post, delete, search, and interact with tweets
- User management (follow, mute, block)
- Lists, bookmarks, and spaces support
- Media upload (images/videos)
- Detailed rate limit handling
- Easy integration with AI assistants
🔑 Getting X API Credentials
To use this MCP server, you need X API credentials. Follow these steps:
Step 1: Create a Developer Account
- Go to developer.x.com
- Sign in with your X (Twitter) account
- Click "Sign up for Free Account" (or apply for elevated access if needed)
- Complete the developer agreement and verification
Step 2: Create a Project & App
- Navigate to Developer Portal → Projects & Apps
- Click "+ Add Project"
- Name your project (e.g., "MCP Automation")
- Select use case: "Exploring the API" or "Making a bot"
- Click "+ Add App" within your project
- Name your app (e.g., "X-MCP-Server")
Step 3: Generate API Keys
- In your App settings, go to "Keys and Tokens"
- Under Consumer Keys, click "Regenerate" to get:
API_KEY(API Key / Consumer Key)API_SECRET(API Secret / Consumer Secret)
- Under Authentication Tokens, generate:
ACCESS_TOKEN(Access Token)ACCESS_TOKEN_SECRET(Access Token Secret)
- Under Bearer Token, generate:
BEARER_TOKEN
Step 4: Enable App Permissions
- Go to User authentication settings
- Enable OAuth 1.0a
- Set App permissions to "Read and Write"
- Add a Callback URL (e.g.,
http://localhost:3000/callback) - Save changes
⚠️ Important: Keep your credentials secure! Never commit them to version control.
💻 Installation
Prerequisites
- Python 3.10+
- uv (recommended) or pip
Install with uv (Recommended)
# Clone the repository
git clone https://github.com/Lnxtanx/x-mcp-server.git
cd x-mcp-server
# Install dependencies
uv sync
Install with pip
# Clone the repository
git clone https://github.com/Lnxtanx/x-mcp-server.git
cd x-mcp-server
# Create virtual environment
python -m venv .venv
source .venv/bin/activate # On Windows: .venv\Scripts\activate
# Install dependencies
pip install fastmcp tweepy python-dotenv
⚙️ Configuration
Step 1: Create Environment File
Copy the template and add your credentials:
cp .env.template .env
Step 2: Add Your Credentials
Edit .env with your X API credentials:
API_KEY=your_api_key_here
API_SECRET=your_api_secret_here
ACCESS_TOKEN=your_access_token_here
ACCESS_TOKEN_SECRET=your_access_token_secret_here
BEARER_TOKEN=your_bearer_token_here
🤖 Connecting to AI Clients
Claude Desktop
Add this configuration to your claude_desktop_config.json:
Windows: %APPDATA%\Claude\claude_desktop_config.json
macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
{
"mcpServers": {
"x-api": {
"command": "uv",
"args": [
"run",
"--directory",
"C:/path/to/x-mcp-server",
"fastmcp",
"run",
"main.py"
]
}
}
}
Replace C:/path/to/x-mcp-server with your actual installation path.
After adding, restart Claude Desktop. You'll see the X API tools available in Claude.
ChatGPT / OpenAI
ChatGPT doesn't natively support MCP, but you can connect via:
Option 1: MCP Bridge/Proxy
Use an MCP-to-REST bridge to expose tools as API endpoints:
# Run MCP server with HTTP transport
uv run fastmcp dev main.py --transport http --port 8000
Then configure ChatGPT to call your endpoints via Custom GPT Actions or function calling.
Option 2: LangChain Integration
from langchain_openai import ChatOpenAI
from langchain_mcp import MCPClient
# Connect to local MCP server
mcp_client = MCPClient("http://localhost:8000")
tools = mcp_client.get_tools()
# Use with ChatGPT
llm = ChatOpenAI(model="gpt-4")
llm_with_tools = llm.bind_tools(tools)
Other MCP Clients
Running the Server Locally
# Development mode (with inspector)
uv run fastmcp dev main.py
# Production mode
uv run fastmcp run main.py
SSE Transport (for web clients)
uv run fastmcp run main.py --transport sse --port 8080
Stdio Transport (for CLI clients)
uv run fastmcp run main.py --transport stdio
🛠️ Available Tools (54 total)
Tweets
| Tool | Description | Rate Limit |
|---|---|---|
create_tweet |
Post a new tweet | 17/24h |
delete_tweet |
Delete a tweet | 17/24h |
get_tweet |
Get tweet by ID | 1/15min |
get_tweets |
Get multiple tweets | 1/15min |
search_recent_tweets |
Search tweets (7 days) | 1/15min |
get_user_tweets |
Get user's timeline | 1/15min |
get_user_mentions |
Get mentions | 1/15min |
get_home_timeline |
Get home feed | 1/15min |
Engagement
| Tool | Description | Rate Limit |
|---|---|---|
like_tweet / unlike_tweet |
Like/unlike | 1/15min |
retweet / unretweet |
Retweet/undo | 1/15min |
bookmark_tweet / remove_bookmark |
Bookmark | 1/15min |
Users
| Tool | Description | Rate Limit |
|---|---|---|
get_me |
Get authenticated user | 25/24h |
get_user_by_username |
Lookup by handle | 3/15min |
follow_user / unfollow_user |
Follow/unfollow | 1/15min |
mute_user / unmute_user |
Mute/unmute | 1/15min |
Lists & Media
| Tool | Description |
|---|---|
create_list / delete_list / update_list |
Manage lists |
add_list_member / remove_list_member |
List members |
upload_media |
Upload images/videos |
⏱️ Rate Limits (Free Tier)
| Operation | Limit |
|---|---|
| Create/Delete Tweet | 17 requests / 24 hours |
| Get Authenticated User | 25 requests / 24 hours |
| Lookup by Username | 3 requests / 15 mins |
| Most Other Endpoints | 1 request / 15 mins |
❌ Not Available in Free Tier
- Direct Messages
- Trends by WOEID
- User Search
- Full Archive Search
- Filtered Stream
📝 Tips for Free Tier
- Cache responses – With 1 req/15 min limits, cache everything
- Batch requests – Use multi-ID endpoints when possible
- Use username lookup – Has 3 req/15 min (better than most)
- Post sparingly – Only 17 tweets/day allowed
📄 License
This project is licensed under the VivekMind License.
Created by Lnxtanx
🤝 Contributing
Contributions are welcome! Please feel free to submit a Pull Request.
📞 Support
- Issues: GitHub Issues
- Creator: @Lnxtanx
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.
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.
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.
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.