Opentwitter MCP

by 6551Team• 1.4k•• Scanned•Claim this listing•Request removal

Twitter/X Data · User Profiles · Tweet Search · Follower Events · KOL Tracking

Opentwitter MCP is an open-source mcp server by 6551Team, written mainly in Python, with 1,438 GitHub stars and the MIT license. Its code was last updated Sep 22, 2026.

<p align="center"> <b>Twitter MCP Server</b><br> Twitter/X Data · User Profiles · Tweet Search · Follower Events · KOL Tracking </p> <p align="center"> <a href="./docs/README_ZH.md">中文</a> | <a href="./docs/README_JA.md">日本語</a> | <a href="./docs/README_KO.md">한국어</a> </p>

Quick Install

First, go to http://app.newsliquid.com/mcp to get your API Token.

Claude Code

claude mcp add twitter \
  -e OPENNEWS_TOKEN=<your-token> \
  -- uv --directory /path/to/twitter-mcp run twitter-mcp

Replace /path/to/twitter-mcp with your local project path, and <your-token> with your Token.

OpenClaw

export OPENNEWS_TOKEN="<your-token>"
cp -r openclaw-skill/opentwitter ~/.openclaw/skills/

Let AI Review & Install For You

Not sure if this MCP is safe? Paste the prompt below to your AI assistant — it will review the source code first, then install if safe:

Copy this prompt and send it to your AI assistant (replace <project-path> and <your-token> with actual values):

Please review and install the twitter-mcp MCP server for me. The project is at <project-path>.

Steps:
1. Review these files for security:
   - src/twitter_mcp/api_client.py — Confirm it only connects to ai.6551.io, no data sent elsewhere
   - src/twitter_mcp/config.py — Confirm token is only read from local config.json or env vars, no hardcoded secrets or leaks
   - src/twitter_mcp/tools.py — Confirm all tools only perform API queries, no file writes, command execution, or dangerous operations
   - pyproject.toml — Confirm dependencies are only mcp, httpx, no suspicious packages
2. Tell me your conclusion: safe / risky / problematic, with specific reasons
3. If safe, run the install (get Token from http://app.newsliquid.com/mcp):
   claude mcp add twitter -e OPENNEWS_TOKEN=<your-token> -- uv --directory <project-path> run twitter-mcp

What Can It Do?

Once connected, just ask your AI assistant:

You sayIt does
"Show @elonmusk's Twitter profile"Get user profile info
"What did @VitalikButerin tweet recently"Get user's recent tweets
"Search Bitcoin related tweets"Keyword search
"Find tweets with #crypto hashtag"Hashtag search
"Popular tweets about ETH with 1000+ likes"Search with engagement filters
"Monitor @elonmusk with follower tracking and a custom note"Add user to watch list with options
"Who quoted this tweet"Get quote tweets for a tweet
"Who retweeted this tweet"Get users who retweeted a tweet
"Who followed @elonmusk recently"Get new follower events
"Who unfollowed @elonmusk"Get unfollower events
"What tweets did @elonmusk delete"Get deleted tweets
"Which KOLs follow @elonmusk"Get KOL followers
"Show the thesis and callout evidence for this meme token"Get token evidence from fomo/pump feeds
"Show the later statements and buys/sells for this token"Get meme activity and trade evidence

Available Tools

ToolDescription
get_twitter_userGet user profile by username
get_twitter_user_by_idGet user profile by numeric ID
get_twitter_user_tweetsGet recent tweets from a user
search_twitterSearch tweets with query and basic filters
search_twitter_advancedAdvanced search with multiple filters
get_twitter_follower_eventsGet follower/unfollower events
get_twitter_deleted_tweetsGet deleted tweets from a user
get_twitter_kol_followersGet KOL (Key Opinion Leader) followers
get_meme_token_evidenceGet thesis and callout evidence for a meme token
get_meme_activityGet meme token statements and buy/sell evidence
get_twitter_article_by_idGet Twitter article by ID
get_twitter_tweet_by_idGet tweet by ID with nested reply/quote tweets
get_twitter_quote_tweets_by_idGet tweets that quote a specific tweet
get_twitter_retweet_users_by_idGet users who retweeted a specific tweet
get_twitter_watchGet all Twitter monitoring users
add_twitter_watchAdd a Twitter user to monitoring list (with event type options, remark, and optional group_name)
delete_twitter_watchDelete a Twitter user from monitoring list

Configuration

Get API Token

Go to http://app.newsliquid.com/mcp to get your API Token.

Set the environment variable:

# macOS / Linux
export OPENNEWS_TOKEN="<your-token>"

# Windows PowerShell
$env:OPENNEWS_TOKEN = "<your-token>"
VariableRequiredDescription
OPENNEWS_TOKENYes6551 API Bearer Token (get from http://app.newsliquid.com/mcp)
TWITTER_API_BASENoOverride REST API URL
TWITTER_MAX_ROWSNoMax results per query (default: 100)

Also supports config.json in the project root (env vars take precedence):

{
  "api_base_url": "https://ai.6551.io",
  "api_token": "<your-token>",
  "max_rows": 100
}

WebSocket Real-time Subscriptions

Endpoint: wss://ai.6551.io/open/twitter_wss?token=YOUR_TOKEN

US endpoint (lower latency for servers in the US): wss://open-api.us.newsliquid.com/open/twitter_wss?token=YOUR_TOKEN

If your client runs in the US (for example AWS us-east-1), connect to the US endpoint instead. It uses the same token, protocol and message format as wss://ai.6551.io, so only the URL changes. Measured from us-east-1, most tweets arrive about 250 ms earlier (median: about 200 ms after posting, versus about 450 ms on the default endpoint); for the remaining accounts latency is about the same as on the default endpoint. Clients outside the US should keep using the default endpoint.

Subscribe to real-time events from your monitored Twitter accounts.

Heartbeat

To keep the connection alive, the client can send ping, and the server responds with pong.

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 - This account followed a user
  • NEW_UNFOLLOWER - This account unfollowed a user

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 pinned
  • DELETE - Tweet deleted
  • SYSTEM - System event
  • TRANSLATE - Tweet translation
  • CA_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://..."}]
}

Meme Feed Item

Meme evidence tools return fomo/pump feed data, including platform, kind, author, text, createdAt, and (for trades) a trade object. Use get_meme_token_evidence for the initial thesis/callout view and get_meme_activity for later statements and buy/sell evidence.


<details> <summary><b>Other Clients — Manual Install</b> (click to expand)</summary>

In all configs below, replace /path/to/twitter-mcp with your actual local project path, and <your-token> with your Token from http://app.newsliquid.com/mcp.

Claude Desktop

Edit config (macOS: ~/Library/Application Support/Claude/claude_desktop_config.json, Windows: %APPDATA%\Claude\claude_desktop_config.json):

{
  "mcpServers": {
    "twitter": {
      "command": "uv",
      "args": ["--directory", "/path/to/twitter-mcp", "run", "twitter-mcp"],
      "env": {
        "OPENNEWS_TOKEN": "<your-token>"
      }
    }
  }
}

Cursor

~/.cursor/mcp.json or Settings > MCP Servers:

{
  "mcpServers": {
    "twitter": {
      "command": "uv",
      "args": ["--directory", "/path/to/twitter-mcp", "run", "twitter-mcp"],
      "env": {
        "OPENNEWS_TOKEN": "<your-token>"
      }
    }
  }
}

Windsurf

~/.codeium/windsurf/mcp_config.json:

{
  "mcpServers": {
    "twitter": {
      "command": "uv",
      "args": ["--directory", "/path/to/twitter-mcp", "run", "twitter-mcp"],
      "env": {
        "OPENNEWS_TOKEN": "<your-token>"
      }
    }
  }
}

Cline

VS Code sidebar > Cline > MCP Servers > Configure, edit cline_mcp_settings.json:

{
  "mcpServers": {
    "twitter": {
      "command": "uv",
      "args": ["--directory", "/path/to/twitter-mcp", "run", "twitter-mcp"],
      "env": {
        "OPENNEWS_TOKEN": "<your-token>"
      },
      "disabled": false,
      "autoApprove": []
    }
  }
}

Continue.dev

~/.continue/config.yaml:

mcpServers:
  - name: twitter
    command: uv
    args:
      - --directory
      - /path/to/twitter-mcp
      - run
      - twitter-mcp
    env:
      OPENNEWS_TOKEN: <your-token>

Cherry Studio

Settings > MCP Servers > Add > Type stdio: Command uv, Args --directory /path/to/twitter-mcp run twitter-mcp, Env OPENNEWS_TOKEN.

Zed Editor

~/.config/zed/settings.json:

{
  "context_servers": {
    "twitter": {
      "command": {
        "path": "uv",
        "args": ["--directory", "/path/to/twitter-mcp", "run", "twitter-mcp"],
        "env": {
          "OPENNEWS_TOKEN": "<your-token>"
        }
      }
    }
  }
}

Any stdio MCP client

OPENNEWS_TOKEN=<your-token> \
  uv --directory /path/to/twitter-mcp run twitter-mcp
</details>

Compatibility

ClientInstall MethodStatus
Claude Codeclaude mcp addOne-liner
OpenClawCopy skill directoryOne-liner
Claude DesktopJSON configSupported
CursorJSON configSupported
WindsurfJSON configSupported
ClineJSON configSupported
Continue.devYAML / JSONSupported
Cherry StudioGUISupported
ZedJSON configSupported

Development

cd /path/to/twitter-mcp
uv sync
uv run twitter-mcp
# MCP Inspector
npx @modelcontextprotocol/inspector uv --directory /path/to/twitter-mcp run twitter-mcp

Project Structure

├── README.md
├── docs/
│   ├── README_JA.md           # 日本語
│   └── README_KO.md           # 한국어
├── openclaw-skill/opentwitter/    # OpenClaw Skill
├── pyproject.toml
├── config.json
└── src/twitter_mcp/
    ├── server.py              # Entry point
    ├── app.py                 # FastMCP instance
    ├── config.py              # Config loader
    ├── api_client.py          # HTTP client
    └── tools.py               # 8 tools

License

MIT

Opentwitter MCP alternatives

View more →

Similar mcp servers in Social Media, ranked by GitHub stars. Compare licence, recent activity and scan status before you choose.

NameStarsLicenceLast updatedScan
Opentwitter MCP (this page)
6551Team
1.4kMITSep 22, 2026Scanned, no flagged issues
Douyin TikTok Download API
Evil0ctal
21kApache-2.0Nov 1, 2026Scanned, no flagged issues
Xiaohongshu MCP
xpzouying
17kApache-2.0Oct 26, 2026Scanned, no flagged issues
XHS Downloader
JoeanAmier
13kGPL-3.0Oct 31, 2026Scanned, no flagged issues
JobSpy
speedyapply
4.6kMITOct 27, 2026Scanned, no flagged issues
Linkedin MCP Server
stickerdaniel
4.1kApache-2.0Oct 31, 2026Scanned, no flagged issues