twitter-x-aio

Twitter: Access real-time Twitter/X data as soon as it's posted! With the Twitter/X AIO API, you.

Should I use this

Quality & Safety

A
Description quality
95%
Schema completeness
75%
Naming quality
76%
Poisoning risk
100%
Permission match
100%
Protocol compliance
100%

Findings (18)

  • LOWTool 'get_search_searchTerm' doesn't follow camelCase/snake_casein get_search_searchTerm
  • LOWTool 'get_trends_locationId' doesn't follow camelCase/snake_casein get_trends_locationId
  • LOWTool 'get_user_userId' doesn't follow camelCase/snake_casein get_user_userId
  • LOWTool 'get_user_userId_tweets' doesn't follow camelCase/snake_casein get_user_userId_tweets
  • LOWTool 'get_user_userId_tweetsAndReplies' doesn't follow camelCase/snake_casein get_user_userId_tweetsAndReplies
  • LOWTool 'get_user_userId_tweetsAndReplies' name length outside 3-30 rangein get_user_userId_tweetsAndReplies
  • LOWTool 'get_user_userId_likes' doesn't follow camelCase/snake_casein get_user_userId_likes
  • LOWTool 'get_user_userId_followers' doesn't follow camelCase/snake_casein get_user_userId_followers
  • LOWTool 'get_user_userId_followings_basic' doesn't follow camelCase/snake_casein get_user_userId_followings_basic
  • LOWTool 'get_user_userId_followings_basic' name length outside 3-30 rangein get_user_userId_followings_basic

Based on automated analysis of tool definitions and protocol compliance.

Context Cost

~2,475Tokens (tool definitions)
~772 BTypical response size
Moderate attention impact (1.93% of 128k context)

This is the approximate number of tokens consumed each time the server's tools are loaded into a model's context. Higher counts reduce the attention available for other tasks.

Install

One-Click Install

Add this to your `claude_desktop_config.json` file:

{
  "mcpServers": {
    "twitter-x-aio": {
      "url": "https://mcp.jojapi.com/twitter-x-aio"
    }
  }
}

Remote endpoints

https://mcp.jojapi.com/twitter-x-aiostreamable-http

What it can do

Tool inventory

Tools (23)

🟢 Read-only🟡 Write🔴 Delete⚪ Unknown
🟡get_search_searchTerm(searchTerm, count, cursor, category, filters, ...)

With the search endpoint you can search all of twitter. You just need to provide a search term. ⚠ If you have a large cursor the GET-request will limit at some length. For that you can use a POST-request which has no limits. Billing per call: 1 Credits. Agents can pay per call ($0.01 via x402/MPP, no API key).

Input Schema

{
  "type": "object",
  "properties": {
    "searchTerm": {
      "type": "string"
    },
    "count": {
      "type": "string",
      "title": "count",
      "example": "20",
      "description": "The default count is 20. You can specify a custom one here."
    },
    "cursor": {
      "type": "string",
      "title": "cursor",
      "description": "At the end of the entries array you'll find two objects with the type TimelineTimelineCursor. There is one cursor to go up (Top) and one for going down (bottom) the list."
    },
    "category": {
      "type": "string",
      "title": "category",
      "example": "Latest",
      "description": "ENUM\nTop,Latest,People,Photos,Videos"
    },
    "filters": {
      "type": "string",
      "title": "filters",
      "example": "{\"since\": \"2020-10-01\"}",
      "description": "Learn more about all filters by reading the docs or contact me on telegram @benagain :)"
    },
    "includeTimestamp": {
      "type": "string",
      "title": "includeTimestamp",
      "example": "false",
      "description": "Decide if you need a unix created_at timestamp. This will slightly increase the speed of the request."
    }
  },
  "required": [
    "searchTerm"
  ],
  "additionalProperties": false
}
🟢get_trends_locationId(locationId)

Get twitter trends for worldwide or a specific region. Billing per call: 1 Credits.

Input Schema

{
  "type": "object",
  "properties": {
    "locationId": {
      "type": "string"
    }
  },
  "required": [
    "locationId"
  ],
  "additionalProperties": false
}
🟢get_user_userId(userId)

This is the prefered method of getting any information. Receive follower counts, images and more user related data with this endpoint. Group: User. Billing per call: 1 Credits.

Input Schema

{
  "type": "object",
  "properties": {
    "userId": {
      "type": "string"
    }
  },
  "required": [
    "userId"
  ],
  "additionalProperties": false
}
🟢get_user_by_username_username(username)

Receive follower counts, images and more user related data with this endpoint. Group: User. Billing per call: 1 Credits.

Input Schema

{
  "type": "object",
  "properties": {
    "username": {
      "type": "string"
    }
  },
  "required": [
    "username"
  ],
  "additionalProperties": false
}
🟢get_user_userId_tweets(userId, count, cursor, username)

Receive all tweets ordered by most recent. You can use the cursor and count to navigate around. Group: User. Billing per call: 1 Credits.

Input Schema

{
  "type": "object",
  "properties": {
    "userId": {
      "type": "string"
    },
    "count": {
      "type": "string",
      "title": "count",
      "example": "20",
      "description": "The default count is 20. You can specify a custom one here."
    },
    "cursor": {
      "type": "string",
      "title": "cursor",
      "description": "At the end of the entries array you'll find two objects with the type TimelineTimelineCursor. There is one cursor to go up (Top) and one for going down (bottom) the list."
    },
    "username": {
      "type": "string",
      "title": "username",
      "description": "If you provide a username value it will automatically be picked and the userId is ignored. Best is to set userId to -1"
    }
  },
  "required": [
    "userId"
  ],
  "additionalProperties": false
}
🟢get_user_userId_tweetsAndReplies(userId, count, cursor, username)

Receive all tweets and replies ordered by most recent. You can use the cursor and count to navigate around. Group: User. Billing per call: 1 Credits.

Input Schema

{
  "type": "object",
  "properties": {
    "userId": {
      "type": "string"
    },
    "count": {
      "type": "string",
      "title": "count",
      "example": "20",
      "description": "The default count is 20. You can specify a custom one here."
    },
    "cursor": {
      "type": "string",
      "title": "cursor",
      "description": "At the end of the entries array you'll find two objects with the type TimelineTimelineCursor. There is one cursor to go up (Top) and one for going down (bottom) the list."
    },
    "username": {
      "type": "string",
      "title": "username",
      "description": "If you provide a username value it will automatically be picked and the userId is ignored"
    }
  },
  "required": [
    "userId"
  ],
  "additionalProperties": false
}
🟢get_user_userId_likes(userId)

Receive all likes of a user. You can use the cursor and count to navigate around. Group: User. Billing per call: 1 Credits.

Input Schema

{
  "type": "object",
  "properties": {
    "userId": {
      "type": "string"
    }
  },
  "required": [
    "userId"
  ],
  "additionalProperties": false
}
🟢get_user_userId_followers(userId, count, cursor, username)

Receive all followers of a user. You can use the cursor and count to navigate around. Group: User. Billing per call: 1 Credits.

Input Schema

{
  "type": "object",
  "properties": {
    "userId": {
      "type": "string"
    },
    "count": {
      "type": "string",
      "example": "20",
      "description": "The default count is 20. You can specify a custom one here."
    },
    "cursor": {
      "type": "string",
      "description": "At the end of the entries array you'll find two objects with the type TimelineTimelineCursor. There is one cursor to go up (Top) and one for going down (bottom) the list."
    },
    "username": {
      "type": "string",
      "description": "If you provide a username value it will automatically be picked and the userId is ignored"
    }
  },
  "required": [
    "userId"
  ],
  "additionalProperties": false
}
🟢get_user_userId_followings_basic(userId, username)

You'll receive a basic list of all followings a user has. Please provide only the userId and you'll receive the following followings data: id, username, createdDate, followings, followers. Group: User. Billing per call: 1 Credits.

Input Schema

{
  "type": "object",
  "properties": {
    "userId": {
      "type": "string"
    },
    "username": {
      "type": "string",
      "title": "username",
      "example": "elonmusk",
      "description": "If you provide a username value it will automatically be picked and the userId is ignored"
    }
  },
  "required": [
    "userId"
  ],
  "additionalProperties": false
}
🟢get_user_userId_followings(userId, count, cursor, username)

Receive all followings of a user. You can use the cursor and count to navigate around. Group: User. Billing per call: 1 Credits.

Input Schema

{
  "type": "object",
  "properties": {
    "userId": {
      "type": "string"
    },
    "count": {
      "type": "string",
      "example": "20",
      "description": "The default count is 20. You can specify a custom one here."
    },
    "cursor": {
      "type": "string",
      "description": "At the end of the entries array you'll find two objects with the type TimelineTimelineCursor. There is one cursor to go up (Top) and one for going down (bottom) the list."
    },
    "username": {
      "type": "string",
      "description": "If you provide a username value it will automatically be picked and the userId is ignored"
    }
  },
  "required": [
    "userId"
  ],
  "additionalProperties": false
}
🟢get_user_userId_media(userId)

Receive all media items ordered by most recent. You can use the cursor and count to navigate around. Group: User. Billing per call: 1 Credits.

Input Schema

{
  "type": "object",
  "properties": {
    "userId": {
      "type": "string"
    }
  },
  "required": [
    "userId"
  ],
  "additionalProperties": false
}
🟢get_user_userId_followings_ids(userId, count, cursor, username)

Get the ids of the users a certain user follows Group: User. Billing per call: 1 Credits.

Input Schema

{
  "type": "object",
  "properties": {
    "userId": {
      "type": "string"
    },
    "count": {
      "type": "string",
      "example": "20"
    },
    "cursor": {
      "type": "string"
    },
    "username": {
      "type": "string",
      "example": "spacex"
    }
  },
  "required": [
    "userId"
  ],
  "additionalProperties": false
}
🟡get_tweet_tweetId(tweetId)

Receive all tweet informations and comments by tweetId. ⚠️ For large cursors (many replies you want to fetch) you can use the POST-request to be not limited by the GET-request length limit. Group: Tweet. Billing per call: 1 Credits.

Input Schema

{
  "type": "object",
  "properties": {
    "tweetId": {
      "type": "string"
    }
  },
  "required": [
    "tweetId"
  ],
  "additionalProperties": false
}
🟢get_tweet_tweetId_favorites(tweetId, count, cursor)

Receive all likes for a tweet. Group: Tweet. Billing per call: 1 Credits.

Input Schema

{
  "type": "object",
  "properties": {
    "tweetId": {
      "type": "string"
    },
    "count": {
      "type": "string",
      "example": "20",
      "description": "The default count is 20. You can specify a custom one here."
    },
    "cursor": {
      "type": "string",
      "description": "At the end of the entries array you'll find two objects with the type TimelineTimelineCursor. There is one cursor to go up (Top) and one for going down (bottom) the list."
    }
  },
  "required": [
    "tweetId"
  ],
  "additionalProperties": false
}
🟢get_tweet_tweetId_retweets(tweetId, count, cursor)

Receive all retweets for a tweet. Group: Tweet. Billing per call: 1 Credits.

Input Schema

{
  "type": "object",
  "properties": {
    "tweetId": {
      "type": "string"
    },
    "count": {
      "type": "string",
      "example": "20"
    },
    "cursor": {
      "type": "string"
    }
  },
  "required": [
    "tweetId"
  ],
  "additionalProperties": false
}
🟢get_resolve_urls(urls)

resolve urls Group: Utilities/Misc. Billing per call: 1 Credits.

Input Schema

{
  "type": "object",
  "properties": {
    "urls": {
      "type": "string"
    }
  },
  "additionalProperties": false
}
🟡post_search_searchTerm(searchTerm)

With the search endpoint you can search all of twitter. You just need to provide a search term. This is the POST-request which allows you to send larger requests. Group: Utilities/Misc. Billing per call: 1 Credits.

Input Schema

{
  "type": "object",
  "properties": {
    "searchTerm": {
      "type": "string"
    }
  },
  "required": [
    "searchTerm"
  ],
  "additionalProperties": false
}
🟡post_tweet_tweetId(tweetId)

Receive all tweet informations and comments by tweetId. This POST-request allows you to dig deeper into the replies when the cursor is growing. Group: Utilities/Misc. Billing per call: 1 Credits.

Input Schema

{
  "type": "object",
  "properties": {
    "tweetId": {
      "type": "string"
    }
  },
  "required": [
    "tweetId"
  ],
  "additionalProperties": false
}
🟢get_misc_emojis

Receive a full list of all twitter custom emojis with the hashtag, image and more. Group: Utilities/Misc. Billing per call: 1 Credits.

Input Schema

{
  "type": "object",
  "properties": {},
  "additionalProperties": false
}
🟢get_misc_locations

This gives you a list of all available locations. Group: Utilities/Misc. Billing per call: 1 Credits.

Input Schema

{
  "type": "object",
  "properties": {},
  "additionalProperties": false
}
🟢get_username_to_id_username(username)

You'll need the userId to receive tweets, media and replies. Group: Utilities/Misc. Billing per call: 1 Credits.

Input Schema

{
  "type": "object",
  "properties": {
    "username": {
      "type": "string"
    }
  },
  "required": [
    "username"
  ],
  "additionalProperties": false
}
🟢get_user_usernames_to_ids

This endpoint receives a list of usernames and converts up to 100 of them at the same time to ids. Group: ✨ Exclusive endpoints. Billing per call: 1 Credits.

Input Schema

{
  "type": "object",
  "properties": {},
  "additionalProperties": false
}
🟢get_misc_subtitles

Get the full subtitles of a video Group: ✨ Exclusive endpoints. Billing per call: 1 Credits.

Input Schema

{
  "type": "object",
  "properties": {},
  "additionalProperties": false
}

Community

Rate this Server

Evidence

Recent observations

verifiedversion not recorded23 tools
verifiedversion not recorded23 tools