twitterapi.mcp
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@twitterapi.mcpshow mentions for @elonmusk"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
twitterapi.mcp
MCP server that exposes twitterapi.io endpoints as tools for AI agents and MCP hosts. Written in TypeScript, distributed on npm, runnable with a single npx command.
Current Tools
Tool | Description | API Endpoint | Auth |
Fetch tweets mentioning a user. |
| API key | |
Fetch a page of the conversation thread around a tweet. |
| API key | |
Create a tweet or reply. |
| API key + cookies + proxy | |
Delete one of your tweets. |
| API key + cookies + proxy |
Related MCP server: x-mcp
Quick Start
1. Get an API key
Visit https://twitterapi.io/dashboard and obtain your x-api-key.
2. Cookies + proxy for write actions
create_tweet and delete_tweet authenticate with your account's own session
cookies. From a browser logged into X, open DevTools → Application → Cookies →
https://x.com and copy the auth_token and ct0 values.
Variable | Required | Description |
| always | twitterapi.io API key |
| writes |
|
| writes |
|
| writes | Residential proxy, |
The server derives the login_cookies value twitterapi.io expects from
auth_token + ct0. These cookies expire over time (typically weeks); when a
write starts returning an auth error, refresh them from the browser.
The API key alone is enough for the read tools. Add the cookie/proxy vars only if you need write actions.
3. Add to your MCP host
Claude Desktop (%APPDATA%\Claude\claude_desktop_config.json on Windows,
~/Library/Application Support/Claude/claude_desktop_config.json on macOS):
{
"mcpServers": {
"twitterapi": {
"command": "npx",
"args": ["-y", "@pedrot95dev/twitterapi.mcp"],
"env": {
"TWITTERAPI_IO_KEY": "your_key_here",
"TWITTERAPI_IO_AUTH_TOKEN": "your_auth_token_cookie",
"TWITTERAPI_IO_CT0": "your_ct0_cookie",
"TWITTERAPI_IO_PROXY": "http://user:pass@ip:port"
}
}
}
}npx -y @pedrot95dev/twitterapi.mcp downloads and runs the latest published version. Only
Node.js (>= 18) is required — no global install needed.
Other MCP hosts (e.g. Cursor): add the same npx command + env vars in the
host's MCP settings UI or config file.
Tool: get_user_mentions
Fetch tweets that mention or reply to a user. Makes a single request per call;
page by passing cursor from a previous response's next_cursor.
Parameter | Type | Default | Description |
| string | (required) | X username, with or without |
| string | — | Start time filter (e.g. |
| string | — | End time filter |
| string | — | Pagination cursor from a previous |
|
|
| Sort mode |
| integer |
| Max tweets to return from this single request |
{
"tweets": [ ... ],
"count": 12,
"has_next_page": true,
"next_cursor": "DAADDAAB...",
"status": "success",
"msg": null
}Tool: get_tweet_thread_context
Fetch the conversation thread around a tweet. Returns the original tweet, the
intermediate replies up the chain, the tweet itself, and its direct replies.
Each returned tweet includes entities.urls with expanded links — useful for
scanning a mention's surrounding conversation for URLs.
Makes exactly one request per call (1-to-1 with the endpoint — no internal
pagination). Page through longer threads with cursor.
Parameter | Type | Default | Description |
| string | (required) | The tweet ID to get the thread context for |
| string | — | Pagination cursor from a previous |
{
"tweets": [ ... ],
"count": 6,
"has_next_page": false,
"next_cursor": "",
"status": "success",
"msg": "success"
}Note: this endpoint paginates unevenly — a page may return few or zero tweets
while has_next_page is still true. Follow next_cursor until
has_next_page is false to collect the whole thread.
Tool: create_tweet
Post a new tweet or reply. Supports quotes, media, communities, and scheduling. Requires the cookie + proxy env vars (see step 2).
Parameter | Type | Default | Description |
| string | (required) | The text content of the tweet |
| string | — | Tweet ID to reply to (makes this a reply) |
| string | — | Tweet ID to quote |
| string | — | URL for quote (alternative to |
| string | — | Post inside a specific community |
| boolean |
| Allow >280 chars (Premium accounts) |
| string[] | — | Media IDs from a prior |
| string | — | ISO-8601 future time, e.g. |
{ "tweet_id": "1234567890123456789", "status": "success", "msg": "success" }Tool: delete_tweet
Delete one of your tweets by ID. Requires the cookie + proxy env vars.
Parameter | Type | Default | Description |
| string | (required) | The ID of the tweet to delete |
{ "status": "success", "msg": "success" }Contributing
Local development, build, and testing instructions are in CONTRIBUTING.md.
License
MIT — see LICENSE.
Credits
Based on the official twitterapi-io agent skill: https://github.com/kaitoInfra/twitterapi-io API service: https://twitterapi.io
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/pedrot95dev/twitterapi.mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server