opentwitter
Twitter/X data via the 6551 API. Supports user profiles, tweet search, user tweets, follower events, deleted tweets, and KOL followers.
Install
Use with your agent
Install the opentwitter skill, then use it as build context. Run: npx skills add https://github.com/6551team/opentwitter-mcp --skill opentwitter. Then read the installed skill.md and follow its guidance to build or refactor my project.
Twitter/X Data Skill
Query Twitter/X data from the 6551 platform REST API. All endpoints require a Bearer token via $TWITTER_TOKEN.
Get your token: https://6551.io/mcp
Base URL: https://ai.6551.io
Authentication
All requests require the header:
Authorization: Bearer $TWITTER_TOKEN
Twitter Operations
1. Get Twitter User Info
Get user profile by username.
curl -s -X POST "https://ai.6551.io/open/twitter_user_info" \
-H "Authorization: Bearer $TWITTER_TOKEN" \
-H "Content-Type: application/json" \
-d '{"username": "elonmusk"}'
2. Get Twitter User by ID
Get user profile by numeric ID.
curl -s -X POST "https://ai.6551.io/open/twitter_user_by_id" \
-H "Authorization: Bearer $TWITTER_TOKEN" \
-H "Content-Type: application/json" \
-d '{"userId": "44196397"}'
3. Get User Tweets
Get recent tweets from a user.
curl -s -X POST "https://ai.6551.io/open/twitter_user_tweets" \
-H "Authorization: Bearer $TWITTER_TOKEN" \
-H "Content-Type: application/json" \
-d '{"username": "elonmusk", "maxResults": 20, "product": "Latest"}'
| Parameter | Type | Default | Description |
|---|---|---|---|
username | string | required | Twitter username (without @) |
maxResults | integer | 20 | Max tweets (1-100) |
product | string | "Latest" | "Latest" or "Top" |
includeReplies | boolean | false | Include reply tweets |
includeRetweets | boolean | false | Include retweets |
4. Search Twitter
Search tweets with various filters.
curl -s -X POST "https://ai.6551.io/open/twitter_search" \
-H "Authorization: Bearer $TWITTER_TOKEN" \
-H "Content-Type: application/json" \
-d '{"keywords": "bitcoin", "maxResults": 20, "product": "Top"}'
Search from specific user:
curl -s -X POST "https://ai.6551.io/open/twitter_search" \
-H "Authorization: Bearer $TWITTER_TOKEN" \
-H "Content-Type: application/json" \
-d '{"fromUser": "VitalikButerin", "maxResults": 20}'
Search by hashtag:
curl -s -X POST "https://ai.6551.io/open/twitter_search" \
-H "Authorization: Bearer $TWITTER_TOKEN" \
-H "Content-Type: application/json" \
-d '{"hashtag": "crypto", "minLikes": 100, "maxResults": 20}'
Twitter Search Parameters
| Parameter | Type | Default | Description |
|---|---|---|---|
keywords | string | - | Search keywords |
fromUser | string | - | Tweets from specific user |
toUser | string | - | Tweets to specific user |
mentionUser | string | - | Tweets mentioning user |
hashtag | string | - | Filter by hashtag (without #) |
excludeReplies | boolean | false | Exclude reply tweets |
excludeRetweets | boolean | false | Exclude retweets |
minLikes | integer | 0 | Minimum likes threshold |
minRetweets | integer | 0 | Minimum retweets threshold |
minReplies | integer | 0 | Minimum replies threshold |
sinceDate | string | - | Start date (YYYY-MM-DD) |
untilDate | string | - | End date (YYYY-MM-DD) |
lang | string | - | Language code (e.g. "en", "zh") |
product | string | "Top" | "Top" or "Latest" |
maxResults | integer | 20 | Max tweets (1-100) |
5. Get Follower Events
Get new followers or unfollowers for a user.
# Get new followers
curl -s -X POST "https://ai.6551.io/open/twitter_follower_events" \
-H "Authorization: Bearer $TWITTER_TOKEN" \
-H "Content-Type: application/json" \
-d '{"username": "elonmusk", "isFollow": true, "maxResults": 20}'
# Get unfollowers
curl -s -X POST "https://ai.6551.io/open/twitter_follower_events" \
-H "Authorization: Bearer $TWITTER_TOKEN" \
-H "Content-Type: application/json" \
-d '{"username": "elonmusk", "isFollow": false, "maxResults": 20}'
| Parameter | Type | Default | Description |
|---|---|---|---|
username | string | required | Twitter username (without @) |
isFollow | boolean | true | true=new followers, false=unfollowers |
maxResults | integer | 20 | Max events (1-100) |
6. Get Deleted Tweets
Get deleted tweets from a user.
curl -s -X POST "https://ai.6551.io/open/twitter_deleted_tweets" \
-H "Authorization: Bearer $TWITTER_TOKEN" \
-H "Content-Type: application/json" \
-d '{"username": "elonmusk", "maxResults": 20}'
| Parameter | Type | Default | Description |
|---|---|---|---|
username | string | required | Twitter username (without @) |
maxResults | integer | 20 | Max tweets (1-100) |
7. Get KOL Followers
Get which KOLs (Key Opinion Leaders) are following a user.
curl -s -X POST "https://ai.6551.io/open/twitter_kol_followers" \
-H "Authorization: Bearer $TWITTER_TOKEN" \
-H "Content-Type: application/json" \
-d '{"username": "elonmusk"}'
| Parameter | Type | Default | Description |
|---|---|---|---|
username | string | required | Twitter username (without @) |
8. Get Twitter Article by ID
Get Twitter article by ID.
curl -s -X POST "https://ai.6551.io/open/twitter_article_by_id" \
-H "Authorization: Bearer $TWITTER_TOKEN" \
-H "Content-Type: application/json" \
-d '{"id": "article_id"}'
| Parameter | Type | Default | Description |
|---|---|---|---|
id | string | required | Twitter article ID |
9. Get Tweet by ID
Get a specific tweet by its ID, including nested reply/quote tweets.
This endpoint retrieves a tweet by ID and automatically fetches any tweets it replies to or quotes, providing complete context.
curl -s -X POST "https://ai.6551.io/open/twitter_tweet_by_id" \
-H "Authorization: Bearer $TWITTER_TOKEN" \
-H "Content-Type: application/json" \
-d '{"twId": "2030318958512164966"}'
| Parameter | Type | Default | Description |
|---|---|---|---|
twId | string | required | Twitter tweet ID (numeric) |
Response includes:
- Main tweet data
replyStatus: The tweet being replied to (if applicable)quotedStatus: The tweet being quoted (if applicable)
10. Get Quote Tweets by ID
Get tweets that quote a specific tweet.
curl -s -X POST "https://ai.6551.io/open/twitter_quote_tweets_by_id" \
-H "Authorization: Bearer $TWITTER_TOKEN" \
-H "Content-Type: application/json" \
-d '{"id": "2030318958512164966", "maxResults": 20}'
| Parameter | Type | Default | Description |
|---|---|---|---|
id | string | required | Twitter tweet ID (numeric) |
maxResults | integer | 20 | Max tweets (1-100) |
11. Get Retweet Users by ID
Get users who retweeted a specific tweet.
curl -s -X POST "https://ai.6551.io/open/twitter_retweet_users_by_id" \
-H "Authorization: Bearer $TWITTER_TOKEN" \
-H "Content-Type: application/json" \
-d '{"id": "2030318958512164966"}'
| Parameter | Type | Default | Description |
|---|---|---|---|
id | string | required | Twitter tweet ID (numeric) |
cursor | string | - | Pagination cursor for next page |
12. Get Twitter Watch List
Get all Twitter monitoring users for the current user.
curl -s -X POST "https://ai.6551.io/open/twitter_watch" \
-H "Authorization: Bearer $TWITTER_TOKEN" \
-H "Content-Type: application/json" \
-d '{}'
13. Add Twitter Watch
Add a Twitter user to monitoring list.
curl -s -X POST "https://ai.6551.io/open/twitter_watch_add" \
-H "Authorization: Bearer $TWITTER_TOKEN" \
-H "Content-Type: application/json" \
-d '{"username": "elonmusk", "newTweetBol": true, "newFlwBol": false}'
| Parameter | Type | Default | Description |
|---|---|---|---|
username | string | required | Twitter username (without @) |
newTweetBol | boolean | true (server) | Monitor new tweets |
newFlwBol | boolean | false (server) | Monitor new followers |
newUnFlwBol | boolean | false (server) | Monitor unfollowers |
newTweetReplyBol | boolean | true (server) | Monitor tweet replies |
newTweetQuoteBol | boolean | true (server) | Monitor quote tweets |
newRetweetBol | boolean | true (server) | Monitor retweets |
updateNameBol | boolean | true (server) | Monitor username changes |
updateDescBol | boolean | true (server) | Monitor bio/description changes |
updateAvatarBol | boolean | true (server) | Monitor profile picture changes |
updateBannerBol | boolean | true (server) | Monitor banner image changes |
newCaBol | boolean | false (server) | Monitor CA (contract address) events |
tweetToppingBol | boolean | false (server) | Monitor tweet pinning events |
14. Delete Twitter Watch
Delete a Twitter user from monitoring list by username.
curl -s -X POST "https://ai.6551.io/open/twitter_watch_delete" \
-H "Authorization: Bearer $TWITTER_TOKEN" \
-H "Content-Type: application/json" \
-d '{"username": "elonmusk"}'
| Parameter | Type | Default | Description |
|---|---|---|---|
username | string | required | Twitter username to delete (without @) |
WebSocket Real-time Subscriptions
Endpoint: wss://ai.6551.io/open/twitter_wss?token=YOUR_TOKEN
Subscribe to real-time events from your monitored Twitter accounts.
Subscribe to Twitter Events
{
"jsonrpc": "2.0",
"id": 1,
"method": "twitter.subscribe"
}
Response:
{
"jsonrpc": "2.0",
"id": 1,
"result": {
"success": true
}
}
Unsubscribe
{
"jsonrpc": "2.0",
"id": 2,
"method": "twitter.unsubscribe"
}
Server Push - Twitter Event
When a monitored account has activity, the server pushes:
{
"jsonrpc": "2.0",
"method": "twitter.event",
"params": {
"id": 123456,
"twAccount": "elonmusk",
"twUserName": "Elon Musk",
"profileUrl": "https://twitter.com/elonmusk",
"eventType": "NEW_TWEET",
"content": "...",
"ca": "0x1234...",
"remark": "Custom note",
"createdAt": "2026-03-06T10:00:00Z"
}
}
Note: The content field structure varies by event type (see below).
**Event Types and Content Structure**:
#### Tweet Events
- `NEW_TWEET` - New tweet posted
- `NEW_TWEET_REPLY` - New reply tweet
- `NEW_TWEET_QUOTE` - New quote tweet
- `NEW_RETWEET` - Retweeted
- `CA` - Tweet with CA address
Content structure for tweet events:
```json
{
"id": "1234567890",
"text": "Tweet content...",
"createdAt": "2026-03-06T10:00:00Z",
"language": "en",
"retweetCount": 100,
"favoriteCount": 500,
"replyCount": 20,
"quoteCount": 10,
"viewCount": 10000,
"userScreenName": "elonmusk",
"userName": "Elon Musk",
"userIdStr": "44196397",
"userFollowers": 170000000,
"userVerified": true,
"conversationId": "1234567890",
"isReply": false,
"isQuote": false,
"hashtags": ["crypto", "bitcoin"],
"media": [
{
"type": "photo",
"url": "https://...",
"thumbUrl": "https://..."
}
],
"urls": [
{
"url": "https://...",
"expandedUrl": "https://...",
"displayUrl": "example.com"
}
],
"mentions": [
{
"username": "VitalikButerin",
"name": "Vitalik Buterin"
}
]
}
Follower Events
NEW_FOLLOWER- New followerNEW_UNFOLLOWER- Unfollower event
Content structure for follower events (array):
[
{
"id": 123,
"twId": 44196397,
"twAccount": "elonmusk",
"twUserName": "Elon Musk",
"twUserLabel": "Verified",
"description": "User bio...",
"profileUrl": "https://...",
"bannerUrl": "https://...",
"followerCount": 170000000,
"friendCount": 500,
"createdAt": "2026-03-06T10:00:00Z"
}
]
Profile Update Events
UPDATE_NAME- Username changed (content: new name string)UPDATE_DESCRIPTION- Bio updated (content: new description string)UPDATE_AVATAR- Profile picture changed (content: new avatar URL string)UPDATE_BANNER- Banner image changed (content: new banner URL string)
Other Events
TWEET_TOPPING- Tweet pinnedDELETE- Tweet deletedSYSTEM- System eventTRANSLATE- Tweet translationCA_CREATE- CA token created
Data Structures
Twitter User
{
"userId": "44196397",
"screenName": "elonmusk",
"name": "Elon Musk",
"description": "...",
"followersCount": 170000000,
"friendsCount": 500,
"statusesCount": 30000,
"verified": true
}
Tweet
{
"id": "1234567890",
"text": "Tweet content...",
"createdAt": "2024-02-20T12:00:00Z",
"retweetCount": 1000,
"favoriteCount": 5000,
"replyCount": 200,
"userScreenName": "elonmusk",
"hashtags": ["crypto", "bitcoin"],
"urls": [{"url": "https://..."}]
}
Common Workflows
Crypto Twitter KOL Tweets
curl -s -X POST "https://ai.6551.io/open/twitter_user_tweets" \
-H "Authorization: Bearer $TWITTER_TOKEN" \
-H "Content-Type: application/json" \
-d '{"username": "VitalikButerin", "maxResults": 10}'
Trending Crypto Tweets
curl -s -X POST "https://ai.6551.io/open/twitter_search" \
-H "Authorization: Bearer $TWITTER_TOKEN" \
-H "Content-Type: application/json" \
-d '{"keywords": "bitcoin", "minLikes": 1000, "product": "Top", "maxResults": 20}'
Notes
- Get your API token at https://6551.io/mcp
- Rate limits apply; max 100 results per request
- Twitter usernames should not include the @ symbol