openclaw-skill/opentwitter/SKILL.md
Twitter/X data via the 6551 API. Supports user profiles, tweet search, user tweets, follower events, deleted tweets, and KOL followers.
npx skillsauth add 6551team/opentwitter-mcp opentwitterInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
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
All requests require the header:
Authorization: Bearer $TWITTER_TOKEN
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"}'
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"}'
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 |
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}'
| 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) |
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) |
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) |
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 @) |
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 |
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:
replyStatus: The tweet being replied to (if applicable)quotedStatus: The tweet being quoted (if applicable)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) |
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 |
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 '{}'
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"}'
| Parameter | Type | Default | Description |
|-----------|--------|---------|--------------------------------|
| username| string | required| Twitter username (without @) |
Delete a Twitter user from monitoring list.
curl -s -X POST "https://ai.6551.io/open/twitter_watch_delete" \
-H "Authorization: Bearer $TWITTER_TOKEN" \
-H "Content-Type: application/json" \
-d '{"id": 123}'
| Parameter | Type | Default | Description |
|-----------|---------|---------|----------------------------------|
| id | integer | required| Monitoring record ID to delete |
Endpoint: wss://ai.6551.io/open/twitter_wss?token=YOUR_TOKEN
Subscribe to real-time events from your monitored Twitter accounts.
{
"jsonrpc": "2.0",
"id": 1,
"method": "twitter.subscribe"
}
Response:
{
"jsonrpc": "2.0",
"id": 1,
"result": {
"success": true
}
}
{
"jsonrpc": "2.0",
"id": 2,
"method": "twitter.unsubscribe"
}
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"
}
]
}
NEW_FOLLOWER - New followerNEW_UNFOLLOWER - Unfollower eventContent 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"
}
]
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)TWEET_TOPPING - Tweet pinnedDELETE - Tweet deletedSYSTEM - System eventTRANSLATE - Tweet translationCA_CREATE - CA token created{
"userId": "44196397",
"screenName": "elonmusk",
"name": "Elon Musk",
"description": "...",
"followersCount": 170000000,
"friendsCount": 500,
"statusesCount": 30000,
"verified": true
}
{
"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://..."}]
}
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}'
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}'
development
Maintainer-only workflow for handling GitHub Secret Scanning alerts on OpenClaw. Use when Codex needs to triage, redact, clean up, and resolve secret leakage found in issue comments, issue bodies, PR comments, or other GitHub content.
development
Maintainer workflow for OpenClaw releases, prereleases, changelog release notes, and publish validation. Use when Codex needs to prepare or verify stable or beta release steps, align version naming, assemble release notes, check release auth requirements, or validate publish-time commands and artifacts.
development
Run, watch, debug, and extend OpenClaw QA testing with qa-lab and qa-channel. Use when Codex needs to execute the repo-backed QA suite, inspect live QA artifacts, debug failing scenarios, add new QA scenarios, or explain the OpenClaw QA workflow. Prefer the live OpenAI lane with regular openai/gpt-5.4 in fast mode; do not use gpt-5.4-pro or gpt-5.4-mini unless the user explicitly overrides that policy.
development
End-to-end Parallels smoke, upgrade, and rerun workflow for OpenClaw across macOS, Windows, and Linux guests. Use when Codex needs to run, rerun, debug, or interpret VM-based install, onboarding, gateway smoke tests, latest-release-to-main upgrade checks, fresh snapshot retests, or optional Discord roundtrip verification under Parallels.