x-ai-mcp
# x-ai-mcp
X (Twitter) MCP server with Grok-powered intelligence. Personal account access + AI analysis in one package.
**20 tools:** 16 X API tools for reading/writing + 4 Grok intelligence tools for real-time analysis.
## Setup
### 1. Install
```bash
git clone https://github.com/olivier-motium/x-ai-mcp.git
cd x-ai-mcp
python -m venv .venv && source .venv/bin/activate
pip install -e .
```
### 2. Configure
Copy `.env.example` to `.env` and fill in:
```bash
# Required — X API bearer token (read-only operations)
X_BEARER_TOKEN=your_bearer_token
# Required — your X user ID
X_USER_ID=your_user_id
# Optional — OAuth for write ops (posting, DMs)
# Run: python scripts/auth_flow.py
X_CLIENT_ID=your_client_id
# Optional — xAI key for intelligence tools
XAI_API_KEY=your_xai_key
```
### 3. Get OAuth tokens (for write operations)
```bash
python scripts/auth_flow.py
```
Opens browser, authorizes your account, saves `token.json`. Tokens auto-refresh.
### 4. Add to Claude Code
```bash
claude mcp add x-ai \
-e X_BEARER_TOKEN=xxx \
-e X_USER_ID=xxx \
-e XAI_API_KEY=xxx \
-- python -m src.server
```
## Tools
### X API — Timeline & Tweets
| Tool | Description |
|------|-------------|
| `x_home_timeline` | Your home timeline |
| `x_user_tweets` | A user's recent tweets |
| `x_get_tweet` | Get a specific tweet |
| `x_post_tweet` | Post a tweet (OAuth) |
| `x_delete_tweet` | Delete your tweet (OAuth) |
| `x_search_tweets` | Search recent tweets (7 days) |
### X API — DMs
| Tool | Description |
|------|-------------|
| `x_list_dms` | Recent DM messages |
| `x_read_dm` | Read a DM conversation |
| `x_send_dm` | Send a DM (OAuth) |
### X API — Social
| Tool | Description |
|------|-------------|
| `x_bookmarks` | Your bookmarked tweets |
| `x_liked_tweets` | Liked tweets (you or others) |
| `x_like_tweet` | Like a tweet (OAuth) |
| `x_user_info` | User profile details |
| `x_followers` | List followers |
| `x_following` | List following |
### Intelligence — Grok-powered
| Tool | Description |
|------|-------------|
| `x_analyze_topic` | Real-time analysis of any topic on X |
| `x_daily_digest` | AI-powered daily briefing |
| `x_summarize_thread` | Summarize a tweet thread |
| `x_analyze_account` | Deep analysis of any X account |
## Daily Digest (standalone)
```bash
# Default (AI/tech focus)
python scripts/daily_digest.py
# Custom focus
python scripts/daily_digest.py --focus "crypto markets"
# Save to file
python scripts/daily_digest.py --focus "AI agents" --output digest.md
```
Cron it for daily briefings:
```bash
0 9 * * * cd /path/to/x-ai-mcp && .venv/bin/python scripts/daily_digest.py >> ~/digests.log
```
## Architecture
```
Bearer Token (read) ──┐
OAuth 2.0 PKCE (r/w) ─┤──→ X API v2 ──→ 16 MCP tools
│
xAI API Key ───────────┤──→ Grok (x_search + chat) ──→ 4 intelligence tools
│
Logfire (optional) ────┘──→ Observability dashboard
```
- **X client:** async httpx, auto rate-limit retry, OAuth token refresh
- **Grok client:** Chat Completions API for analysis, Responses API with x_search for real-time X data
- **Output:** Plain text, never raw JSON. Tweets formatted as `[date time] @user: text (metrics)`
## License
MIT
TDQS
Scored across 23 tools
Most tools have distinct purposes with clear boundaries, such as x_analyze_account for account analysis and x_post_tweet for tweeting. However, there is some overlap between x_dm_inbox and x_list_dms (both list DM conversations) and between x_dm_send and x_send_dm (both send DMs), which could cause minor confusion for an agent.
All tool names follow a consistent snake_case pattern with a clear 'x_' prefix, and most use descriptive verb_noun combinations (e.g., x_analyze_account, x_search_tweets). The naming is highly predictable and uniform across all 23 tools.
With 23 tools, the count is on the higher side for a Twitter/X-focused server, bordering on heavy. While it covers many aspects of the platform, it might feel overwhelming or slightly over-scoped compared to more streamlined servers, but it's not extreme.
The tool set provides comprehensive coverage for the Twitter/X domain, including account analysis, tweeting (post, delete, like), DMs (send, read, manage), user info, timelines, search, and advanced features like summarization and digests. There are no obvious gaps, and it supports full CRUD-like operations for tweets and DMs.