The Twitter MCP Server is a comprehensive API integration platform that allows interaction with Twitter's API for various operations:
Tweet Operations: Post tweets (with or without media), reply to tweets, delete tweets, retrieve tweets by ID or in batches
User Operations: Get user information, follow/unfollow users, retrieve user timelines, followers, and following lists (some features currently have availability issues)
Engagement: Like/unlike tweets, retweet/undo retweets, and get lists of retweets and liked tweets
Search & Analytics: Search for tweets and get hashtag analytics (some features currently have availability issues)
List Management: Create lists, add/remove users from lists, and retrieve list members and user-owned lists
Uses environment variables from .env files to store Twitter API credentials securely
Uses npm for dependency management and running build/development scripts
Uses TypeScript for implementation of parameter validation and error handling
Twitter MCP Server
A Model Context Protocol server implementation for Twitter API integration.
Setup
Clone the repository
Install dependencies:
npm installCopy
.env.exampleto.envand fill in your Twitter API credentialsBuild the project:
npm run buildStart the server:
npm start
Environment Variables
Required Twitter API credentials in .env:
Available Tools
Tweet Operations
postTweet: Post a new tweet{ "text": "Your tweet text here" }postTweetWithMedia: Post a tweet with media attachment{ "text": "Your tweet text", "mediaPath": "path/to/media/file", "mediaType": "image/jpeg|image/png|image/gif|video/mp4", "altText": "Optional alt text for accessibility" }getTweetById: Get a specific tweet by ID{ "tweetId": "tweet_id", "tweetFields": ["created_at", "public_metrics"] }replyToTweet: Reply to an existing tweet{ "tweetId": "tweet_id", "text": "Your reply text" }deleteTweet: Delete a tweet{ "tweetId": "tweet_id" }
Search & Analytics
searchTweets: Search for tweets{ "query": "search query", "maxResults": 10, "tweetFields": ["created_at", "public_metrics"] }getHashtagAnalytics: Get analytics for a hashtag{ "hashtag": "hashtag", "startTime": "ISO-8601 date", "endTime": "ISO-8601 date" }
User Operations
getUserInfo: Get user information{ "username": "twitter_username", "fields": ["description", "public_metrics"] }getUserTimeline: Get user's tweets{ "username": "twitter_username", "maxResults": 10, "tweetFields": ["created_at", "public_metrics"] }getFollowers: Get user's followers{ "username": "twitter_username", "maxResults": 100, "userFields": ["description", "public_metrics"] }getFollowing: Get accounts a user follows{ "username": "twitter_username", "maxResults": 100, "userFields": ["description", "public_metrics"] }
Engagement
likeTweet: Like a tweet{ "tweetId": "tweet_id" }unlikeTweet: Unlike a tweet{ "tweetId": "tweet_id" }retweet: Retweet a tweet{ "tweetId": "tweet_id" }undoRetweet: Undo a retweet{ "tweetId": "tweet_id" }getRetweets: Get users who retweeted a tweet{ "tweetId": "tweet_id", "maxResults": 100, "userFields": ["description", "public_metrics"] }getLikedTweets: Get tweets liked by a user{ "userId": "user_id", "maxResults": 100, "tweetFields": ["created_at", "public_metrics"] }
List Management
createList: Create a new list{ "name": "List name", "description": "List description", "isPrivate": false }addUserToList: Add a user to a list{ "listId": "list_id", "username": "twitter_username" }removeUserFromList: Remove a user from a list{ "listId": "list_id", "username": "twitter_username" }getListMembers: Get members of a list{ "listId": "list_id", "maxResults": 100, "userFields": ["description", "public_metrics"] }
Error Handling
All tools return standardized error responses:
Missing parameters:
Missing required parameter: parameter_nameAPI errors: Error message from Twitter API
Not found errors: Appropriate "not found" message for the resource
Response Format
All successful responses follow this format:
Development
Build:
npm run buildStart:
npm startWatch mode:
npm run dev
Status: Working perfectly Response: Returns tweet ID Latest test: Success
Status: Working perfectly Response: Returns complete tweet data Latest test: Success
Status: Working perfectly Response: Confirmation of action Latest test: Success
Status: Working perfectly Response: Confirmation of action Latest test: Success
Status: Working perfectly Response: Returns reply tweet ID Latest test: Success
Status: Working perfectly Response: Complete user profile data Latest test: Success
Status: Working perfectly Response: Confirmation of action Latest test: Success
Status: Working perfectly Response: Confirmation of list creation Latest test: Success
Status: Working perfectly Response: Returns both owned and member lists Latest test: Success
Status: Error 400 Error: Invalid Request parameters Fix needed: Parameter validation
Status: Error 400 Error: Invalid Request parameters Fix needed: Query parameter formatting
Status: Error 400 Error: Invalid Request parameters Fix needed: Parameter validation
Error Handling:
Related MCP Servers
- -security-license-qualityProvides AI agents with comprehensive Twitter functionality through the Model Context Protocol standard, enabling reading tweets, posting content, managing interactions, and accessing timeline data with robust error handling.Last updated -117
- -security-license-qualityA Model Context Protocol server that enables AI to interact with Twitter, allowing functions like searching tweets, comparing sentiments across accounts, and retrieving timeline content.Last updated -MIT License
- -security-license-qualityA Model Context Protocol server that enables AI models and applications to interact directly with Twitter/X, providing capabilities to create posts, reply to tweets, retrieve user data, and manage account actions.Last updated -210MIT License
- -security-license-qualityA Model Context Protocol server that enables AI agents to interact with Twitter without direct API access, supporting tweet operations, user interactions, and Grok AI integration.Last updated -1117MIT License