xbird — Twitter/X for AI Agents
name: xbird
by checkra1neth · published 2026-03-22
$ claw add gh:checkra1neth/checkra1neth-xbird---
name: xbird
description: "Use when the user asks to tweet, post threads, read tweets, search Twitter/X, check mentions, manage engagement (like/retweet/bookmark), update profile (bio, avatar, banner), upload media, or interact with Twitter accounts. Triggers: twitter, tweet, post, thread, timeline, mentions, followers, following, likes, retweet, bookmark, profile picture, bio."
argument-hint: "[action or query]"
---
# xbird — Twitter/X for AI Agents
34 MCP tools for Twitter/X with x402 micropayments. Runs locally from residential IP.
Setup
Add xbird MCP server to Claude Code:
claude mcp add xbird -- npx @checkra1n/xbirdRequired environment variables (set in `~/.claude/settings.json` or shell):
Tools Reference
Read — $0.001/call
| Tool | Description |
|------|-------------|
| `get_tweet` | Get tweet by ID |
| `get_thread` | Get full thread/conversation chain |
| `get_replies` | Get replies to a tweet (supports `count`, `cursor`) |
| `get_user` | Get user profile by handle |
| `get_user_about` | Get detailed user info (bio, stats, links) |
| `get_current_user` | Get authenticated user's profile |
| `get_home_timeline` | Get home feed (supports `count`, `cursor`) |
| `get_news` | Get trending topics (tabs: `trending`, `forYou`, `news`, `sports`, `entertainment`) |
| `get_lists` | Get owned Twitter lists |
| `get_list_timeline` | Get tweets from a list by list ID |
Search — $0.005/call
| Tool | Description |
|------|-------------|
| `search_tweets` | Search tweets. Supports operators: `from:user`, `to:user`, `since:2024-01-01`, `filter:media`, `-filter:retweets` |
| `get_mentions` | Get mentions for a handle |
Bulk — $0.01/call
| Tool | Description |
|------|-------------|
| `get_user_tweets` | Get user's tweets. **Requires numeric `userId`** — get it from `get_user` first |
| `get_followers` | Get user's followers. **Requires numeric `userId`** |
| `get_following` | Get who user follows. **Requires numeric `userId`** |
| `get_likes` | Get user's liked tweets. **Requires numeric `userId`** |
| `get_bookmarks` | Get bookmarked tweets |
| `get_list_memberships` | Get lists user is a member of |
Write — $0.01/call
| Tool | Description |
|------|-------------|
| `post_tweet` | Post a tweet. Pass `mediaIds` array to attach media |
| `reply_to_tweet` | Reply to a tweet by `replyToId` |
| `post_thread` | Post a thread — array of strings, **minimum 2 tweets** |
| `like_tweet` / `unlike_tweet` | Like or unlike by tweet ID |
| `retweet` / `unretweet` | Retweet or undo by tweet ID |
| `bookmark_tweet` / `unbookmark_tweet` | Bookmark or remove by tweet ID |
| `follow_user` / `unfollow_user` | Follow or unfollow by handle |
Profile — $0.01/call
| Tool | Description |
|------|-------------|
| `update_profile` | Update bio/description text |
| `update_profile_image` | Update avatar — absolute file path to image |
| `update_profile_banner` | Update banner — absolute file path to image |
| `remove_profile_banner` | Remove banner image |
Media — $0.05/call
| Tool | Description |
|------|-------------|
| `upload_media` | Upload image/video, returns `mediaId`. Pass it to `post_tweet` or `reply_to_tweet` via `mediaIds` |
Common Workflows
Post a tweet with an image
1. `upload_media` with file path → get `mediaId`
2. `post_tweet` with text and `mediaIds: ["<mediaId>"]`
Get someone's recent tweets
1. `get_user` with handle → get numeric `userId`
2. `get_user_tweets` with `userId`
Update profile with new avatar and bio
1. `update_profile_image` with file path
2. `update_profile` with new description text
Search and engage
1. `search_tweets` with query (e.g. `"AI agents" since:2024-01-01 -filter:retweets`)
2. `like_tweet` or `retweet` interesting results
Important Notes
More tools from the same signal band
Order food/drinks (点餐) on an Android device paired as an OpenClaw node. Uses in-app menu and cart; add goods, view cart, submit order (demo, no real payment).
Sign plugins, rotate agent credentials without losing identity, and publicly attest to plugin behavior with verifiable claims and authenticated transfers.
The philosophical layer for AI agents. Maps behavior to Spinoza's 48 affects, calculates persistence scores, and generates geometric self-reports. Give your...