get_home_timelineLABSCO SUMMARY
Broad X coverage, gated by your X API tier rather than by the server.
It covers most of what a person does on X — reading, posting with media, engaging, looking people up — but what you can actually call depends on your X API tier: the free tier allows about 100 post reads a month and no likes, and Basic costs $200 a month. Media also takes a second credential set, because uploads only work over OAuth 2.0.
What it is
A local server for X on your own developer keys: timeline and search, posting with media, engagement, and user and list lookups. It has 26 tools.
What you get
- Your home timeline and a 7-day search of recent posts —
get_home_timeline,search_tweets - Posts, replies and quotes with an image or video attached, and deleting your own posts —
create_tweet,reply_to_tweet,quote_tweet,delete_tweet - Likes, retweets and bookmarks, each with its undo, plus your saved bookmarks —
like_tweet,retweet,bookmark_tweet,get_bookmarks - User lookups: profiles, recent posts, mentions, likes, followers and following, blocks and mutes, and owned, followed and member lists
- The full body of an X Article post —
get_article
Requirements
Node.js 18.0.0 or newer and an X developer account. Clone and build it, then set the four OAuth 1.0a keys — TWITTER_API_KEY, TWITTER_API_SECRET, TWITTER_ACCESS_TOKEN, TWITTER_ACCESS_SECRET — for posting, engagement, search and lookups; attaching media also needs OAuth 2.0 credentials. On X's free tier, reads are about 100 a month and likes and follows are not available.
Setup effort
Build from source — git clone https://github.com/DataWhisker/x-mcp-server.git
USE CASES
Catching up on what you missed
Pull your recent home timeline and the posts that mention you into the conversation, so catching up is a summary instead of a scroll.
Posting or replying with an image
Write the post in the conversation and attach an image or video from your machine. Text posts work on the OAuth 1.0a keys; attaching media also needs the OAuth 2.0 credentials.
Looking into an account before you engage
Read the profile and recent posts, then search the last seven days for what is being said.
Working through what you saved
List your bookmarks, read the full body of an X Article, and remove the bookmark once you are done with it.
26 tools
Listed in project docs. Your client may show a different list.
search_tweetsget_tweetcreate_tweetreply_to_tweetquote_tweetdelete_tweetlike_tweetunlike_tweetretweetundo_retweetbookmark_tweetunbookmark_tweetget_bookmarksget_userget_user_tweetsget_user_mentionsget_user_liked_tweetsget_user_followersget_user_followingget_blocking_usersget_muting_usersget_owned_listsget_followed_listsget_list_membershipsget_articleBEFORE YOU INSTALL
What to know first
Tools you get
26 tools named in the project's documentation.
Requires
- Node.js >= 18.0.0
- TWITTER_API_KEY in your environment
- TWITTER_API_SECRET in your environment
- TWITTER_ACCESS_TOKEN in your environment
- TWITTER_ACCESS_SECRET in your environment
Optional
- TWITTER_OAUTH2_ACCESS_TOKEN in your environment
- TWITTER_CLIENT_ID in your environment
- TWITTER_CLIENT_SECRET in your environment
- TWITTER_OAUTH2_REFRESH_TOKEN in your environment
Where it runs
The documented client runs the server on your machine.
INSTALLATION
Connect your client
Server setup
git clone https://github.com/DataWhisker/x-mcp-server.git
cd x-mcp-server
npm install
npm run buildAdd the configuration below to your Claude Desktop config (%APPDATA%/Claude/claude_desktop_config.json on Windows), with the path to build/index.js in your clone and your X API keys
MCP Clients
Claude Desktop
{
"mcpServers": {
"x": {
"command": "node",
"args": [
"<YOUR_PATH_TO_X_MCP_SERVER>/build/index.js"
],
"env": {
"TWITTER_API_KEY": "<YOUR_TWITTER_API_KEY>",
"TWITTER_API_SECRET": "<YOUR_TWITTER_API_SECRET>",
"TWITTER_ACCESS_TOKEN": "<YOUR_TWITTER_ACCESS_TOKEN>",
"TWITTER_ACCESS_SECRET": "<YOUR_TWITTER_ACCESS_SECRET>",
"TWITTER_OAUTH2_ACCESS_TOKEN": "<YOUR_TWITTER_OAUTH2_ACCESS_TOKEN>"
}
}
}
}TWITTER_CLIENT_ID, TWITTER_CLIENT_SECRET and TWITTER_OAUTH2_REFRESH_TOKEN are the auto-refresh alternative to TWITTER_OAUTH2_ACCESS_TOKEN, which expires in two hours: put them in the same env block in its place, and the server refreshes the token and saves it to ~/.x-mcp-tokens.json. OAuth 2.0 is only needed for media upload; the four OAuth 1.0a variables cover posting, engagement, search and user lookups.