Skip to content

Available MCP tools

The server exposes 14 read-only tools. You do not call these yourself — you ask your assistant a question and it picks the tool. This page is here so you know what it can reach, and what each call costs you.

All tools

ToolPurposePaginated
Users
get_user_by_usernameLook up a profile by handle
get_user_by_idLook up a profile by numeric ID
search_usersFind profiles by name or handle
Tweets
get_tweetFetch a single post
get_tweet_threadFetch a thread from any post in ityes
get_tweet_commentsFetch replies to a postyes
Timelines
get_user_tweetsA user’s own postsyes
get_user_tweets_and_repliesA user’s posts including repliesyes
get_user_mentionsPosts mentioning a useryes
get_list_tweetsPosts from a listyes
Social graph
get_user_followersWho follows a useryes
get_user_followingWho a user followsyes
check_is_followingWhether one user follows another
Search
search_tweetsSearch postsyes

A note on IDs

Twitter/X IDs are passed as strings, not numbers — they are large enough to lose precision when handled as floating-point numbers, which silently corrupts them. Your assistant handles this; it matters if you are reading the output yourself.

Four tools need a numeric user ID rather than a handle: get_user_tweets, get_user_tweets_and_replies, get_user_followers and get_user_following. If you give your assistant a handle, it will typically call get_user_by_username first to resolve it, which is an additional billed call.

Users

get_user_by_username

Look up a profile by handle.

ParameterRequiredNotes
usernameyesHandle with or without a leading @. 1–15 characters, letters, digits and underscores.

Returns a single user object.

get_user_by_id

Look up a profile by numeric user ID.

ParameterRequiredNotes
user_idyesNumeric ID as a string.

Returns a single user object.

search_users

Find profiles by name or handle — useful when you know roughly who someone is but not their exact handle.

ParameterRequiredNotes
queryyesMax 100 characters.

Returns a list of user objects. Not paginated.

Tweets

get_tweet

Fetch a single post, including engagement counts.

ParameterRequiredNotes
tweet_idyesNumeric ID as a string.

Returns a single tweet object.

get_tweet_thread

Fetch a thread given the ID of any post in it. Returns posts in order.

ParameterRequiredNotes
tweet_idyesNumeric ID as a string.
cursornoFrom a previous call’s next_cursor. Omit for the first page.

Returns tweets and next_cursor.

get_tweet_comments

Fetch replies to a post — up to 20 per page.

ParameterRequiredNotes
tweet_idyesNumeric ID as a string.
cursornoFrom a previous call’s next_cursor.

Returns tweets and next_cursor.

Timelines

get_user_tweets

A user’s own posts, newest first, excluding replies. Up to 20 per page.

ParameterRequiredNotes
user_idyesNumeric ID as a string — not a handle.
cursornoFrom a previous call’s next_cursor.

Returns tweets and next_cursor.

get_user_tweets_and_replies

The same, but including the user’s replies.

ParameterRequiredNotes
user_idyesNumeric ID as a string — not a handle.
cursornoFrom a previous call’s next_cursor.

Returns tweets and next_cursor.

get_user_mentions

Posts mentioning a given user, newest first.

ParameterRequiredNotes
usernameyesHandle with or without a leading @.
cursornoFrom a previous call’s next_cursor.

Returns tweets and next_cursor.

get_list_tweets

Posts from a Twitter/X list, newest first.

ParameterRequiredNotes
list_idyesNumeric list ID as a string.
cursornoFrom a previous call’s next_cursor.

Returns tweets and next_cursor.

Social graph

get_user_followers

One page of a user’s followers. Expensive — see the warning above.

ParameterRequiredNotes
user_idyesNumeric ID as a string — not a handle.
cursornoFrom a previous call’s next_cursor.

Returns users and next_cursor.

get_user_following

One page of the accounts a user follows. Expensive — see the warning above.

ParameterRequiredNotes
user_idyesNumeric ID as a string — not a handle.
cursornoFrom a previous call’s next_cursor.

Returns users and next_cursor.

check_is_following

Whether one user follows another. The cheap way to answer a question about a specific pair of accounts.

ParameterRequiredNotes
source_user_idyesNumeric ID of the account that might be following.
target_user_idyesNumeric ID of the account that might be followed.

Returns source_user_id, target_user_id and is_following.

search_tweets

Search posts. This is the most capable tool on the server.

ParameterRequiredNotes
queryyesMax 512 characters. Supports advanced search operators.
typenoLatest (default) or Top.
cursornoFrom a previous call’s next_cursor.

Returns tweets and next_cursor.

The query supports the full range of Twitter search operatorsfrom:, to:, since:, until:, min_faves:, min_retweets:, filter:links, -filter:replies, exact phrases, and combinations:

from:elonmusk min_faves:1000 since:2026-01-01

Using operators is usually much cheaper than a broad keyword search, because it takes one well-targeted call instead of several vague ones. Telling your assistant the operators you want is worth doing.

What the tools return

Results are trimmed compared with the REST API. Each object carries the fields below and nothing else — the raw payloads include large amounts of data that would fill an assistant’s context window without helping it answer.

If you need full fidelity, use the REST API directly.

Fields that are empty upstream are omitted rather than returned as null.

Tweet fields

id, text, created_at, author, reply_count, retweet_count, like_count, quote_count, view_count, bookmark_count, is_retweet, quoted_tweet_id, in_reply_to_tweet_id, conversation_id, lang, urls, media

author is a reduced user object — id, username, name, verified, followers_count — rather than a full profile, because the full profile repeated on every post in a page is the single largest source of wasted space.

Quoted and retweeted posts appear as IDs (quoted_tweet_id) rather than nested objects. Your assistant can fetch them with get_tweet if it needs them.

User fields

id, username, name, description, location, url, created_at, followers_count, following_count, tweet_count, listed_count, verified, protected, profile_image_url

Errors

Tool errors come back as readable messages rather than status codes, and tell the assistant whether retrying is worthwhile.

SituationWhat happens
User or post not foundThe assistant is told it does not exist. This is an answer, not a failure.
Out of creditThe assistant is told to stop and that you need to top up. It will not retry.
Rate limit reachedThe assistant is told to stop and let you know to slow down.
Upstream errorThe assistant is told the request failed and was not billed.

See Errors for the equivalent REST behaviour.