A side-by-side look at the TwittrAPI and Uluesky MCP servers: transport, auth, tools, quality signals, and the config to install either one in Claude, Cursor, Windsurf or VS Code.
Verdict: choose TwittrAPI for social media work as a local process; choose Uluesky for social media as a local process. You can also run both side by side in one mcpServers block.
TWITTRAPI_API_KEY, RAPIDAPI_KEY, RAPIDAPI_HOST, TWITTRAPI_BASE_URL, TWITTRAPI_RESPONSE_FORMAT, TWITTRAPI_X_COOKIE, TWITTRAPI_X_PROXY, TWITTRAPI_X_CHAT_PASSCODE.get_user_by_username, get_user_by_id, username_to_id.get_profile, get_posts, search_posts.Rows where the two servers differ are marked.
| Spec | T TwittrAPI | |
|---|---|---|
| Category | Social Media | Social Media |
| Quality signal | 56/100 · Good | 53/100 · Good |
| Install command | Confirmed | Confirmed |
| Transport | Local subprocess (stdio) | Local subprocess (stdio) |
| Auth | API key required | Not declared |
| Pricing | BYOK (pay the provider) | Not declared |
| Required env vars | TWITTRAPI_API_KEYRAPIDAPI_KEYRAPIDAPI_HOSTTWITTRAPI_BASE_URLTWITTRAPI_RESPONSE_FORMATTWITTRAPI_X_COOKIETWITTRAPI_X_PROXYTWITTRAPI_X_CHAT_PASSCODE | None listed |
| Verified owner | Community listing | Community listing |
| GitHub stars | 0 | 0 |
| Directory activity | 0 views 0 installs 0 upvotes | 1 views 0 installs 0 upvotes |
| Tools | 28 | 8 |
| Full listing | View TwittrAPI | View Uluesky |
get_user_by_usernameProfile by handle, including the numeric user IDget_user_by_idProfile by numeric user IDusername_to_idResolve a handle to its user IDusers_by_idsProfiles for up to 500 user IDs at onceget_user_tweetsA user's tweetsget_user_tweets_and_repliesA user's tweets and repliesget_user_mediaA user's tweets with photos or videosget_followersA user's followersget_followingAccounts a user followsget_verified_followersA user's verified followerssearch_tweetsSearch with X operators; Top, Latest, People, Photos or Videosget_tweetA tweet and its reply threadget_profileLook up a Bluesky user's profile by handle (e.g., "alice.bsky.social"). Returns display name, bio, follower/following counts, avatar, and verification status.get_postsFetch recent posts from a Bluesky user's timeline. Returns post text, timestamps, likes, reposts, reply counts, and threaded replies.search_postsSearch Bluesky posts by keyword or phrase. Returns matching posts with author handles, timestamps, engagement metrics, and content.Requires bsky_handle and bsky_app_password in the gateway URL query params.get_feedGet posts from a Bluesky feed (e.g., "discover", "what's-hot"). Returns recent posts with authors, timestamps, and engagement counts.get_followersGet a user's followers on Bluesky by handle. Returns follower profiles including handles, display names, bios, and follower counts.get_followsGet accounts a Bluesky user follows by handle. Returns followed profiles with handles, display names, bios, and descriptions.get_threadFetch a post thread by URI. Returns the parent post and all replies in conversation order with timestamps, authors, and engagement data.resolve_handleConvert a Bluesky handle to its DID (decentralized identifier). Returns the DID for programmatic account lookups.Paste either block (or both) into your client config, e.g. claude_desktop_config.json or ~/.cursor/mcp.json. We only show a config when the install command is confirmed.
{
"mcpServers": {
"twittrapi": {
"command": "npx",
"args": [
"-y",
"twittrapi-mcp"
],
"env": {
"TWITTRAPI_API_KEY": "YOUR_TWITTRAPI_API_KEY_HERE",
"RAPIDAPI_KEY": "YOUR_RAPIDAPI_KEY_HERE",
"RAPIDAPI_HOST": "YOUR_RAPIDAPI_HOST_HERE",
"TWITTRAPI_BASE_URL": "YOUR_TWITTRAPI_BASE_URL_HERE",
"TWITTRAPI_RESPONSE_FORMAT": "YOUR_TWITTRAPI_RESPONSE_FORMAT_HERE",
"TWITTRAPI_X_COOKIE": "YOUR_TWITTRAPI_X_COOKIE_HERE",
"TWITTRAPI_X_PROXY": "YOUR_TWITTRAPI_X_PROXY_HERE",
"TWITTRAPI_X_CHAT_PASSCODE": "YOUR_TWITTRAPI_X_CHAT_PASSCODE_HERE"
}
}
}
}
{
"mcpServers": {
"uluesky": {
"command": "npx",
"args": [
"-y",
"@pipeworx/mcp-bluesky"
]
}
}
}