Prototype · Preview: every server in the official registry, synced every 30 minutes. Reviews and accounts come in a later step.
PopNx MCPMCP servers for people who use AI · explained in plain words

TwittrAPI

by twittrapiversion 1.2.0i★ –iComputer or cloud
Registry nameio.github.twittrapi/twittrapi-mcp

Install

Overview

Description from the maker (original English)

Read public Twitter/X data: tweets, profiles, followers, search. No X developer account.

PopNx MCP’s three pillars

These three are never merged into one score: opinions, measurements and popularity are different things.

What you can do with it

We have not written a plain-language summary for this one yet. Below are the facts we read from the registry.

  • Connection: Computer or cloud
  • Transport: stdio, Streamable HTTP
  • Category: Marketing & social media
  • You need to fill in: TWITTRAPI_API_KEY, RAPIDAPI_KEY, TWITTRAPI_X_COOKIE, TWITTRAPI_X_PROXY, TWITTRAPI_X_CHAT_PASSCODE

Install

Pick the AI app you use, then copy the settings.

Before you install

  • Basic checks: 1 of 1 passed
  • Runs on the maker’s server: what you ask it goes through their server.
  • You fill in yourself: TWITTRAPI_API_KEY, RAPIDAPI_KEY, RAPIDAPI_HOST, TWITTRAPI_BASE_URL, TWITTRAPI_RESPONSE_FORMAT, TWITTRAPI_X_COOKIE, TWITTRAPI_X_PROXY, TWITTRAPI_X_CHAT_PASSCODE

Values marked secret are keys to your account. Never share them or paste them into a chat.

You need

  • Runs in the cloudNothing to install; it connects over the internet
  • npmNode.js installed (for the npx command)

Which app do you use?

Pick your app above. We remember it, so next time the button says “Install in …”.

Works in Claude on the web, desktop and mobile:

  1. Open Settings → Connectors
  2. Press Add custom connector
  3. Paste the address below and press Add
  4. If it asks you to sign in, sign in with the maker
SettingsConnectors1+ Add2https://…3
https://mcp.twittrapi.com/mcp

Or run it on your computer

Open Claude Desktop → Settings → Developer → Edit Config, and paste this into claude_desktop_config.json

{
  "mcpServers": {
    "twittrapi": {
      "command": "npx",
      "args": [
        "-y",
        "twittrapi-mcp"
      ],
      "env": {
        "TWITTRAPI_API_KEY": "your-value",
        "RAPIDAPI_KEY": "your-value",
        "RAPIDAPI_HOST": "your-value",
        "TWITTRAPI_BASE_URL": "your-value",
        "TWITTRAPI_RESPONSE_FORMAT": "your-value",
        "TWITTRAPI_X_COOKIE": "your-value",
        "TWITTRAPI_X_PROXY": "your-value",
        "TWITTRAPI_X_CHAT_PASSCODE": "your-value"
      }
    }
  }
}

Run this in your terminal

claude mcp add --transport http twittrapi https://mcp.twittrapi.com/mcp

Or run it on your computer

claude mcp add twittrapi --env TWITTRAPI_API_KEY=your-value --env RAPIDAPI_KEY=your-value --env RAPIDAPI_HOST=your-value --env TWITTRAPI_BASE_URL=your-value --env TWITTRAPI_RESPONSE_FORMAT=your-value --env TWITTRAPI_X_COOKIE=your-value --env TWITTRAPI_X_PROXY=your-value --env TWITTRAPI_X_CHAT_PASSCODE=your-value -- npx -y twittrapi-mcp

Fill in the empty values before running it.

Open in Cursor

Or copy the settings yourself

Paste into .cursor/mcp.json in your project, or ~/.cursor/mcp.json

{
  "mcpServers": {
    "twittrapi": {
      "url": "https://mcp.twittrapi.com/mcp"
    }
  }
}

Or run it on your computer

Open in Cursor

Or copy the settings yourself

Paste into .cursor/mcp.json in your project, or ~/.cursor/mcp.json

{
  "mcpServers": {
    "twittrapi": {
      "command": "npx",
      "args": [
        "-y",
        "twittrapi-mcp"
      ],
      "env": {
        "TWITTRAPI_API_KEY": "your-value",
        "RAPIDAPI_KEY": "your-value",
        "RAPIDAPI_HOST": "your-value",
        "TWITTRAPI_BASE_URL": "your-value",
        "TWITTRAPI_RESPONSE_FORMAT": "your-value",
        "TWITTRAPI_X_COOKIE": "your-value",
        "TWITTRAPI_X_PROXY": "your-value",
        "TWITTRAPI_X_CHAT_PASSCODE": "your-value"
      }
    }
  }
}

Your browser asks to open the app, then the app shows the settings and asks you to confirm. Key values are left empty for you to fill in.

Open in VS Code

Or copy the settings yourself

Paste into .vscode/mcp.json in your project

{
  "servers": {
    "twittrapi": {
      "type": "http",
      "url": "https://mcp.twittrapi.com/mcp"
    }
  }
}

Or run it on your computer

Open in VS Code

Or copy the settings yourself

Paste into .vscode/mcp.json in your project

{
  "servers": {
    "twittrapi": {
      "type": "stdio",
      "command": "npx",
      "args": [
        "-y",
        "twittrapi-mcp"
      ],
      "env": {
        "TWITTRAPI_API_KEY": "your-value",
        "RAPIDAPI_KEY": "your-value",
        "RAPIDAPI_HOST": "your-value",
        "TWITTRAPI_BASE_URL": "your-value",
        "TWITTRAPI_RESPONSE_FORMAT": "your-value",
        "TWITTRAPI_X_COOKIE": "your-value",
        "TWITTRAPI_X_PROXY": "your-value",
        "TWITTRAPI_X_CHAT_PASSCODE": "your-value"
      }
    }
  }
}

Your browser asks to open the app, then the app shows the settings and asks you to confirm. Key values are left empty for you to fill in.

ChatGPT connects only to servers on the internet:

  1. Open ChatGPT on the web → Settings → Connectors (Apps)
  2. Press Create or Add (some plans need Developer mode under Advanced first)
  3. Paste the address below, give it a name and save
  4. If it asks you to sign in, sign in with the maker
SettingsConnectors1+ Create2https://…3
https://mcp.twittrapi.com/mcp

Menu names can differ slightly by plan and over time.

Your choice stays on this device in a cookie; no account needed.

Values you fill in

  • TWITTRAPI_API_KEY secret env
    Your TwittrAPI key. Set this or RAPIDAPI_KEY.
  • RAPIDAPI_KEY secret env
    RapidAPI key for the Twitter AIO API. Used when TWITTRAPI_API_KEY is not set.
  • RAPIDAPI_HOST env
    Host of your TwittrAPI listing on RapidAPI. Change it if you subscribed to another listing.
  • TWITTRAPI_BASE_URL env
    Override the API base URL.
  • TWITTRAPI_RESPONSE_FORMAT env
    Format of tool results: simple (compact JSON, far fewer tokens) or raw (X's full GraphQL JSON). Tools also take a format argument.
  • TWITTRAPI_X_COOKIE secret env
    Cookie of your own logged-in x.com session (auth_token, ct0, twid). With TWITTRAPI_X_PROXY set, adds the account tools (post, like, follow, DMs, lists, drafts).
  • TWITTRAPI_X_PROXY secret env
    Your proxy for the account tools, http://user:pass@host:port.
  • TWITTRAPI_X_CHAT_PASSCODE secret env
    Your X Chat passcode. Adds send_dm and message text in the DM inbox.

These settings are generated from the maker’s registry entry. If the README says otherwise, follow the README.

What it can do

We have not read this server’s tool list yet; we check endpoints in rotation.

Basic checksi

We check information anyone can see; we have not read the code. Checks that do not apply are left out of the count. · Checked Nov 7, 2026

  • ✓ Pass

    Maker matches the repo

    The registry name was verified with the GitHub account twittrapi, which owns the repo

  • … Not checked yet

    Still maintained

    We have not read this repo from GitHub yet

  • … Not checked yet

    Has a licence

    We have not read this repo from GitHub yet

  • … Not checked yet

    Endpoint responds

    Not checked yet; we check endpoints in rotation

  • … Not checked yet

    Sign-in with OAuth

    Not checked yet; we check endpoints in rotation

  • … Not checked yet

    No hidden instructions in tool descriptions

    Not checked yet; we read the tool list when we check the endpoint

Compared with others in Marketing & social mediai

  • More stars than 0% of the other 2980 servers in this category
  • Published to the registry more recently than 63% of the other 2980 servers in this category
  • Basic checks equal to or better than 100% of the other 2980 servers in this category

Compared with every active server in this category in the registry. Stars count only when the publisher owns the repo.

Common questions

Is TwittrAPI safe?

It passed 1 of 1 applicable basic checks. We have not read the code. Before adding a key or token, see what access the server asks for and use a key with only the permissions you need.

What keys or codes does it need?

You need to fill in: TWITTRAPI_API_KEY, RAPIDAPI_KEY, TWITTRAPI_X_COOKIE, TWITTRAPI_X_PROXY, TWITTRAPI_X_CHAT_PASSCODE

Does it run on my computer or in the cloud?

Either way works: install it on your computer or connect to the cloud version.

Is it still maintained?

The GitHub repo last changed –, and the latest version (1.2.0) reached the registry 19 days ago.

Which apps can use it?

Apps that support MCP, such as Claude Desktop, Claude Code, Cursor and VS Code. It connects by URL, so apps that accept remote MCP servers work too, such as ChatGPT in developer mode.

What can I use instead?

In the same category: MCP YouTube Transcript, Google Analytics MCP, BibiGPT YouTube Video Summarizer

Alternatives

Servers in the same category from other makers, sorted by stars.

Reading a card:★ GitHub starsiThree pillars: reviews · checks · usageiUpdated = latest version published to the registryi

An MCP server retrieving transcripts of YouTube videos

Runs on your computer★ 495MITUpdated 10 days ago
Install

GA4 MCP server for AI agents: schema discovery, server-side aggregation, analysis-ready defaults.

Runs on your computer★ 244MITUpdated 10 days ago
Install

README from the maker

Open the README

Copied from the maker’s repo as written. PopNx MCP has not reviewed or endorsed it. HTML, images and scripts are removed. Links lead off this site.

twittrapi-mcp – Twitter/X MCP server for Claude, Cursor and other AI agents

An MCP server for TwittrAPI, a REST API for public Twitter/X data: tweets, profiles, followers, search, lists and communities. It lets Claude, Cursor and other MCP clients read that data, from $0.065 per 1,000 calls and with no X developer account.

Get an API key: twittrapi.com/start · Pricing · Docs · Status · also available on RapidAPI

SDKs and integrations: Python · Node.js · Go · n8n · Make · Apify · LangChain · LlamaIndex · Agent skill · Examples

Not affiliated with X Corp.

Hosted server (no install)

Apps that support remote MCP servers can connect by URL instead (available with the hosted release; see twittrapi.com/docs/hosted-mcp):

https://mcp.twittrapi.com/mcp
ClientSetup
Claude.ai / Claude DesktopSettings > Connectors > Add custom connector, paste the URL, Connect, log in to TwittrAPI and allow access (OAuth)
ChatGPTSettings > Apps & Connectors > Advanced settings > Developer mode, then Create with the URL and OAuth
Claude Codeclaude mcp add --transport http twittrapi https://mcp.twittrapi.com/mcp (OAuth), or add --header "Authorization: Bearer $TWITTRAPI_API_KEY"
Cursor{"mcpServers": {"twittrapi": {"url": "https://mcp.twittrapi.com/mcp", "headers": {"X-API-KEY": "${env:TWITTRAPI_API_KEY}"}}}} in mcp.json
VS Code{"servers": {"twittrapi": {"type": "http", "url": "https://mcp.twittrapi.com/mcp"}}} in .vscode/mcp.json (OAuth)

With OAuth the app never sees your API key; calls are billed to your balance like any other call. Connected apps are listed (and can be disconnected) in the dashboard under Connected apps.

What you need

  • Node.js 20 or newer
  • A TwittrAPI key, or a RapidAPI key subscribed to the Twitter AIO API

Every tool call is one billed API call on your account.

Install

Claude Code
claude mcp add twittrapi --env TWITTRAPI_API_KEY=your-key -- npx -y twittrapi-mcp
Claude Desktop

Open Settings > Developer > Edit Config and add this to claude_desktop_config.json:

{

"mcpServers": { "twittrapi": { "command": "npx", "args": ["-y", "twittrapi-mcp"], "env": { "TWITTRAPI_API_KEY": "your-key" } } } }

Restart Claude Desktop afterwards.

Cursor

Add this to ~/.cursor/mcp.json (all projects) or .cursor/mcp.json (one project):

{

"mcpServers": { "twittrapi": { "command": "npx", "args": ["-y", "twittrapi-mcp"], "env": { "TWITTRAPI_API_KEY": "your-key" } } } }

Other clients

Any client that can start a stdio server works. The command is npx -y twittrapi-mcp.

Environment variables

VariableRequiredDescription
TWITTRAPI_API_KEYone of the two keysYour TwittrAPI key. Sent as the X-API-KEY header.
RAPIDAPI_KEYone of the two keysRapidAPI key. Used only when TWITTRAPI_API_KEY is not set.
RAPIDAPI_HOSTnoHost of your RapidAPI listing. Default twitter-aio.p.rapidapi.com.
TWITTRAPI_BASE_URLnoAPI base URL for the direct API. Default https://api.twittrapi.com.
TWITTRAPI_RESPONSE_FORMATnosimple (default) or raw. See Response format.
TWITTRAPI_X_COOKIEnoCookie of your own logged-in x.com session. Turns on the account tools together with TWITTRAPI_X_PROXY.
TWITTRAPI_X_PROXYnoYour proxy for the account tools, http://user:pass@host:port.
TWITTRAPI_X_CHAT_PASSCODEnoYour X Chat passcode. Adds send_dm, accept_dm_request, decline_dm_request and message text in list_dm_conversations.

If neither key is set, the server still starts and lists its tools, but every call returns an error explaining how to set a key.

Using RapidAPI instead

If you bought access through RapidAPI, set RAPIDAPI_KEY instead of TWITTRAPI_API_KEY:

"env": { "RAPIDAPI_KEY": "your-rapidapi-key" }

Requests then go to https://twitter-aio.p.rapidapi.com with the x-rapidapi-key and x-rapidapi-host headers. The tools and their output are the same.

Subscribed to another TwittrAPI listing on RapidAPI? Set its host: "RAPIDAPI_HOST": "twttr.p.rapidapi.com".

Tools

These tools read public data and are always available. The account tools are added when you configure your X session.

ToolWhat it does
get_user_by_usernameProfile by handle, including the numeric user ID
get_user_by_idProfile by numeric user ID
username_to_idResolve a handle to its user ID
users_by_idsProfiles for up to 500 user IDs at once
get_user_tweetsA user's tweets
get_user_tweets_and_repliesA user's tweets and replies
get_user_mediaA user's tweets with photos or videos
get_followersA user's followers
get_followingAccounts a user follows
get_verified_followersA user's verified followers
get_user_affiliatesAccounts affiliated with an organization
get_friendships_batchWhether one account follows up to 50 others, and back
get_user_about_batch"About this account" for up to 20 handles
search_tweetsSearch with X operators; Top, Latest, People, Photos or Videos
get_tweetA tweet and its reply thread
tweets_by_idsUp to 100 tweets by ID at once
get_tweet_retweetsUsers who retweeted a tweet
get_tweet_quotesTweets quoting a tweet
get_tweet_repliesOnly the replies to a tweet
get_tweet_threadThe author's own thread around a tweet
get_list_detailsList name, owner and counts
get_list_tweetsTweets from a list's members
get_list_membersMembers of a list
get_communityCommunity details
get_community_aboutA community's About page: rules, moderators, members
get_community_tweetsTweets in a community
search_communitiesFind communities by keyword
get_trendsTrending topics for a location (WOEID)
get_trend_locationsLocations that have trends, with their WOEIDs
get_spaceAn X Space: title, state, host and participants

The user timeline tools (get_user_tweets, get_followers and so on) accept either userId or username. The batch tools are billed one call per handle; tweets_by_ids is one call however many IDs.

Account tools

With TWITTRAPI_X_COOKIE and TWITTRAPI_X_PROXY set, the server also lists tools that act on your own X account:

ToolWhat it does
create_tweetPost a tweet; optional quote (quoteUrl), poll (pollChoices) and reply limit
reply_to_tweetReply to a tweet
delete_tweetDelete one of your tweets
like_tweet, unlike_tweetLike or unlike a tweet
retweet, unretweetRetweet or undo a retweet
bookmark_tweet, unbookmark_tweetAdd or remove a bookmark
follow_user, unfollow_userFollow or unfollow (by userId or username)
list_dm_conversationsYour DM inbox
send_dmSend a direct message (needs TWITTRAPI_X_CHAT_PASSCODE)
list_dm_requestsPending message requests; does not accept them or mark them as seen
accept_dm_requestAccept a one-to-one request and send the first reply (needs TWITTRAPI_X_CHAT_PASSCODE)
decline_dm_requestDelete a request from your inbox; the sender is not told (needs TWITTRAPI_X_CHAT_PASSCODE)
create_listCreate a list
add_list_member, remove_list_memberAdd or remove a list member
create_draft, list_draftsSave a draft, list your drafts
list_bookmark_folders, list_bookmark_folder_tweetsYour bookmark folders and the tweets in one (X Premium)
search_bookmarksSearch your bookmarks
list_community_membershipsCommunities you are a member of
list_articles, get_articleYour X Articles, drafts or published, and one article (X Premium)
create_article, update_articleSave a new article as a draft, change one (X Premium)
publish_article, unpublish_article, delete_articlePublish, unpublish or delete an article (X Premium)

How to get the cookie and set up a proxy: twittrapi.com/docs/x-session. The cookie needs auth_token and ct0; direct messages also need twid.

"env": {

"TWITTRAPI_API_KEY": "your-key", "TWITTRAPI_X_COOKIE": "auth_token=...; ct0=...; twid=u%3D...", "TWITTRAPI_X_PROXY": "http://user:pass@host:port" }

  • The cookie and proxy stay in the server's configuration. They are not tool arguments, so the model never sees them, and they are never logged or returned in a result.
  • Write tools are marked readOnlyHint: false (deletions and undo actions also destructiveHint: true), so clients ask before running them.
  • Each call is one billed API call, like the read tools.
  • Account tools are only available over stdio. HTTP mode and the hosted server do not offer them.
Response format

Tool results use the API's simple format by default: flat camelCase JSON with a fixed schema ({"data": [...], "nextCursor": ..., "hasNextPage": ...} for lists, {"data": {...}} for single objects). Tweets carry id, url, text, createdAt, author, counts, media, quoted, retweetOf and a few more fields; users carry username, name, description, counts and so on. That is about 60 % fewer tokens than X's raw GraphQL JSON.

To get the raw JSON instead (for cards, polls, edit history, community notes and other fields the simple format leaves out):

  • per call: the tools take an optional format argument, "simple" or "raw";
  • for the whole server: set TWITTRAPI_RESPONSE_FORMAT=raw (the format argument still wins).

A few endpoints have no simple format: get_space, get_community_about, the batch tools and the newer account tools (bookmark folders and search, communities, articles). These tools have no format argument and always return raw JSON.

Output size and pagination

Raw responses can be several hundred KB. Every tool takes an optional max_chars argument (default 50,000, range 1,000 to 1,000,000). Longer output is cut and ends with a [TRUNCATED ...] marker.

Paginated tools print the cursor above the JSON, so truncation never removes it:

next_cursor: DAABCgABGZ...

Pass next_cursor as cursor to get the next page.

{"data":{...}}

On the last page the header read

Only the beginning is shown; read the rest in the repo

Ask PopNx