twikit-mcp
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| TWIKIT_CT0 | Yes | the ct0 cookie value | |
| TWIKIT_PROXY | No | e.g. http://user:pass@host:port | |
| TWIKIT_LANGUAGE | No | default en-US | en-US |
| TWIKIT_AUTH_TOKEN | Yes | the auth_token cookie value | |
| TWIKIT_MCP_RATE_LIMIT | No | Set to off (or 0/false) to disable throttling entirely | on |
| TWIKIT_MCP_RATE_LIMIT_PER_MINUTE | No | Max tool calls per minute | 30 |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": false
} |
| prompts | {
"listChanged": false
} |
| resources | {
"subscribe": false,
"listChanged": false
} |
| experimental | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| whoamiA | Return the authenticated account's own user id (confirms the session works). |
| rate_limit_statusA | Report the current client-side rate-limit configuration. Does not require auth and does not consume a rate-limit token. Configure via TWIKIT_MCP_RATE_LIMIT (on/off) and TWIKIT_MCP_RATE_LIMIT_PER_MINUTE. |
| get_userA | Look up a user profile by @handle (screen name), e.g. "jack". |
| get_user_by_idB | Look up a user profile by their numeric user id. |
| search_usersA | Search for user accounts matching a query. Paginated via |
| get_user_tweetsB | Get a user's tweets. |
| get_user_followersA | List accounts that follow the given user id. Paginated via |
| get_user_followingA | List accounts the given user id follows. Paginated via |
| follow_userB | Follow the account with the given user id. |
| unfollow_userC | Unfollow the account with the given user id. |
| block_userC | Block the account with the given user id. |
| mute_userC | Mute the account with the given user id. |
| get_tweetA | Fetch a single tweet by its id, including engagement counts and media. |
| search_tweetsA | Search tweets. Supports X search operators, e.g. 'from:nasa filter:media -is:retweet'. |
| get_home_timelineB | Get the authenticated user's home timeline ('for_you' or 'following'). |
| get_retweetersB | List accounts that retweeted the given tweet. Paginated via |
| get_favoritersA | List accounts that liked the given tweet. Paginated via |
| post_tweetA | Post a tweet. Set |
| delete_tweetA | Delete one of your own tweets by id. |
| like_tweetA | Like (favorite) a tweet by id. |
| unlike_tweetB | Remove your like from a tweet by id. |
| retweetC | Retweet a tweet by id. |
| undo_retweetB | Undo a retweet by tweet id. |
| bookmark_tweetB | Bookmark a tweet by id. |
| get_trendsC | Get current trends for a category. |
| send_direct_messageB | Send a direct message to a user id. |
| get_dm_historyA | Get direct-message history with a user id. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
TDQS
Scored across 27 tools
Each tool targets a distinct resource+action combination, such as get_user vs get_user_by_id vs search_users, which are clearly separated by lookup key. Opposite actions like like/unlike and retweet/undo_retweet are unambiguous, leaving no confusion about tool purpose.
The set largely follows a consistent verb_noun pattern, e.g., search_users, get_tweet, post_tweet, like_tweet. Minor deviations like whoami and rate_limit_status, plus inconsistent DM naming (get_dm_history vs send_direct_message), slightly weaken the pattern but it remains readable.
With 27 tools, the set is above the 25-tool threshold, feeling heavy and potentially overwhelming for an agent. While each tool has a purpose, the count is excessive for a focused client, and some operations could be merged or omitted.
The core Twitter workflows are well covered, including tweets, users, follows, likes, retweets, DMs, and trends. However, missing reverse operations like unbookmark_tweet and the lack of a get_user_likes method create minor dead ends for common interaction patterns.