{"serverId":"mcp-registry/com.jojapi/twitter-x-aio","tools":[{"name":"get_misc_emojis","fixed":{"name":"get_misc_emojis","description":"Receive a full list of all twitter custom emojis with the hashtag, image and more. Group: Utilities/Misc. Billing per call: 1 Credits.","inputSchema":{"type":"object","properties":{},"additionalProperties":false},"annotations":{"readOnlyHint":true},"title":"Twitter hashtag emojis"},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":71,"tokensAfter":71},{"name":"get_misc_locations","fixed":{"name":"get_misc_locations","description":"This gives you a list of all available locations. Group: Utilities/Misc. Billing per call: 1 Credits.","inputSchema":{"type":"object","properties":{},"additionalProperties":false},"annotations":{"readOnlyHint":true},"title":"Location (for trends)"},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":63,"tokensAfter":63},{"name":"get_misc_subtitles","fixed":{"name":"get_misc_subtitles","description":"Get the full subtitles of a video Group: ✨ Exclusive endpoints. Billing per call: 1 Credits.","inputSchema":{"type":"object","properties":{},"additionalProperties":false},"annotations":{"readOnlyHint":true},"title":"Video Subtitles"},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":60,"tokensAfter":60},{"name":"get_resolve_urls","fixed":{"name":"get_resolve_urls","description":"resolve urls Group: Utilities/Misc. Billing per call: 1 Credits.","inputSchema":{"type":"object","properties":{"urls":{"type":"string"}},"additionalProperties":false},"annotations":{"readOnlyHint":true},"title":"resolve urls"},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":59,"tokensAfter":59},{"name":"get_search_searchTerm","fixed":{"name":"get_search_searchTerm","description":"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).","inputSchema":{"type":"object","required":["searchTerm"],"properties":{"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."},"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 :)"},"category":{"type":"string","title":"category","example":"Latest","description":"ENUM\nTop,Latest,People,Photos,Videos"},"searchTerm":{"type":"string"},"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."}},"additionalProperties":false},"annotations":{"readOnlyHint":true},"title":"Search"},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":380,"tokensAfter":380},{"name":"get_trends_locationId","fixed":{"name":"get_trends_locationId","description":"Get twitter trends for worldwide or a specific region. Billing per call: 1 Credits.","inputSchema":{"type":"object","required":["locationId"],"properties":{"locationId":{"type":"string"}},"additionalProperties":false},"annotations":{"readOnlyHint":true},"title":"Trends"},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":74,"tokensAfter":74},{"name":"get_tweet_tweetId","fixed":{"name":"get_tweet_tweetId","description":"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.","inputSchema":{"type":"object","required":["tweetId"],"properties":{"tweetId":{"type":"string"}},"additionalProperties":false},"annotations":{"readOnlyHint":true},"title":"Tweet Details"},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":113,"tokensAfter":113},{"name":"get_tweet_tweetId_favorites","fixed":{"name":"get_tweet_tweetId_favorites","description":"Receive all likes for a tweet. Group: Tweet. Billing per call: 1 Credits.","inputSchema":{"type":"object","required":["tweetId"],"properties":{"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."},"tweetId":{"type":"string"}},"additionalProperties":false},"annotations":{"readOnlyHint":true},"title":"Tweet Likes"},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":163,"tokensAfter":163},{"name":"get_tweet_tweetId_retweets","fixed":{"name":"get_tweet_tweetId_retweets","description":"Receive all retweets for a tweet. Group: Tweet. Billing per call: 1 Credits.","inputSchema":{"type":"object","required":["tweetId"],"properties":{"count":{"type":"string","example":"20"},"cursor":{"type":"string"},"tweetId":{"type":"string"}},"additionalProperties":false},"annotations":{"readOnlyHint":true},"title":"Tweet Retweets"},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":91,"tokensAfter":91},{"name":"get_user_by_username_username","fixed":{"name":"get_user_by_username_username","description":"Receive follower counts, images and more user related data with this endpoint. Group: User. Billing per call: 1 Credits.","inputSchema":{"type":"object","required":["username"],"properties":{"username":{"type":"string"}},"additionalProperties":false},"annotations":{"readOnlyHint":true},"title":"User Details by username"},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":85,"tokensAfter":85},{"name":"get_user_userId","fixed":{"name":"get_user_userId","description":"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.","inputSchema":{"type":"object","required":["userId"],"properties":{"userId":{"type":"string"}},"additionalProperties":false},"annotations":{"readOnlyHint":true},"title":"User Details by userId"},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":96,"tokensAfter":96},{"name":"get_user_userId_followers","fixed":{"name":"get_user_userId_followers","description":"Receive all followers of a user. You can use the cursor and count to navigate around. Group: User. Billing per call: 1 Credits.","inputSchema":{"type":"object","required":["userId"],"properties":{"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."},"userId":{"type":"string"},"username":{"type":"string","description":"If you provide a username value it will automatically be picked and the userId is ignored"}},"additionalProperties":false},"annotations":{"readOnlyHint":true},"title":"User Followers by userId"},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":215,"tokensAfter":215},{"name":"get_user_userId_followings","fixed":{"name":"get_user_userId_followings","description":"Receive all followings of a user. You can use the cursor and count to navigate around. Group: User. Billing per call: 1 Credits.","inputSchema":{"type":"object","required":["userId"],"properties":{"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."},"userId":{"type":"string"},"username":{"type":"string","description":"If you provide a username value it will automatically be picked and the userId is ignored"}},"additionalProperties":false},"annotations":{"readOnlyHint":true},"title":"User Followings by userId"},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":215,"tokensAfter":215},{"name":"get_user_userId_followings_basic","fixed":{"name":"get_user_userId_followings_basic","description":"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.","inputSchema":{"type":"object","required":["userId"],"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"}},"additionalProperties":false},"annotations":{"readOnlyHint":true},"title":"Basic user followings by userId"},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":164,"tokensAfter":164},{"name":"get_user_userId_followings_ids","fixed":{"name":"get_user_userId_followings_ids","description":"Get the ids of the users a certain user follows Group: User. Billing per call: 1 Credits.","inputSchema":{"type":"object","required":["userId"],"properties":{"count":{"type":"string","example":"20"},"cursor":{"type":"string"},"userId":{"type":"string"},"username":{"type":"string","example":"spacex"}},"additionalProperties":false},"annotations":{"readOnlyHint":true},"title":"User Followings Ids"},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":108,"tokensAfter":108},{"name":"get_user_userId_likes","fixed":{"name":"get_user_userId_likes","description":"Receive all likes of a user. You can use the cursor and count to navigate around. Group: User. Billing per call: 1 Credits.","inputSchema":{"type":"object","required":["userId"],"properties":{"userId":{"type":"string"}},"additionalProperties":false},"annotations":{"readOnlyHint":true},"title":"User Likes by userId"},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":83,"tokensAfter":83},{"name":"get_user_userId_media","fixed":{"name":"get_user_userId_media","description":"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.","inputSchema":{"type":"object","required":["userId"],"properties":{"userId":{"type":"string"}},"additionalProperties":false},"annotations":{"readOnlyHint":true},"title":"Media by userId"},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":88,"tokensAfter":88},{"name":"get_user_userId_tweets","fixed":{"name":"get_user_userId_tweets","description":"Receive all tweets ordered by most recent. You can use the cursor and count to navigate around. Group: User. Billing per call: 1 Credits.","inputSchema":{"type":"object","required":["userId"],"properties":{"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."},"userId":{"type":"string"},"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"}},"additionalProperties":false},"annotations":{"readOnlyHint":true},"title":"Tweets by userId"},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":239,"tokensAfter":239},{"name":"get_user_userId_tweetsAndReplies","fixed":{"name":"get_user_userId_tweetsAndReplies","description":"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.","inputSchema":{"type":"object","required":["userId"],"properties":{"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."},"userId":{"type":"string"},"username":{"type":"string","title":"username","description":"If you provide a username value it will automatically be picked and the userId is ignored"}},"additionalProperties":false},"annotations":{"readOnlyHint":true},"title":"Tweets and Replies by userId"},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":237,"tokensAfter":237},{"name":"get_user_usernames_to_ids","fixed":{"name":"get_user_usernames_to_ids","description":"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.","inputSchema":{"type":"object","properties":{},"additionalProperties":false},"annotations":{"readOnlyHint":true},"title":"[✨ EXCLUSIVE!] Usernames to Ids"},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":80,"tokensAfter":80},{"name":"get_username_to_id_username","fixed":{"name":"get_username_to_id_username","description":"You'll need the userId to receive tweets, media and replies. Group: Utilities/Misc. Billing per call: 1 Credits.","inputSchema":{"type":"object","required":["username"],"properties":{"username":{"type":"string"}},"additionalProperties":false},"annotations":{"readOnlyHint":true},"title":"Convert username to userId"},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":83,"tokensAfter":83},{"name":"post_search_searchTerm","fixed":{"name":"post_search_searchTerm","description":"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.","inputSchema":{"type":"object","required":["searchTerm"],"properties":{"searchTerm":{"type":"string"}},"additionalProperties":false},"annotations":{"readOnlyHint":false,"destructiveHint":false,"idempotentHint":false},"title":"Search for large cursors"},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: false, destructiveHint: false, idempotentHint: false (inferred from the name).","verify":true}],"tokensBefore":111,"tokensAfter":111},{"name":"post_tweet_tweetId","fixed":{"name":"post_tweet_tweetId","description":"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.","inputSchema":{"type":"object","required":["tweetId"],"properties":{"tweetId":{"type":"string"}},"additionalProperties":false},"annotations":{"readOnlyHint":false,"destructiveHint":false,"idempotentHint":false},"title":"Tweet Details for large cursors"},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: false, destructiveHint: false, idempotentHint: false (inferred from the name).","verify":true}],"tokensBefore":103,"tokensAfter":103}],"toolsChanged":23,"tokensSaved":0,"todo":[{"tool":"get_resolve_urls","params":["urls"]},{"tool":"get_search_searchTerm","params":["searchTerm"]},{"tool":"get_trends_locationId","params":["locationId"]},{"tool":"get_tweet_tweetId","params":["tweetId"]},{"tool":"get_tweet_tweetId_favorites","params":["tweetId"]},{"tool":"get_tweet_tweetId_retweets","params":["count","cursor","tweetId"]},{"tool":"get_user_by_username_username","params":["username"]},{"tool":"get_user_userId","params":["userId"]},{"tool":"get_user_userId_followers","params":["userId"]},{"tool":"get_user_userId_followings","params":["userId"]},{"tool":"get_user_userId_followings_basic","params":["userId"]},{"tool":"get_user_userId_followings_ids","params":["count","cursor","userId","username"]},{"tool":"get_user_userId_likes","params":["userId"]},{"tool":"get_user_userId_media","params":["userId"]},{"tool":"get_user_userId_tweets","params":["userId"]},{"tool":"get_user_userId_tweetsAndReplies","params":["userId"]},{"tool":"get_username_to_id_username","params":["username"]},{"tool":"post_search_searchTerm","params":["searchTerm"]},{"tool":"post_tweet_tweetId","params":["tweetId"]}],"note":"Deterministic fixes. Changes marked verify need a human look before shipping (renames, inferred annotations, inferred types, removed text). Parameter descriptions in `todo` need to be written by someone who knows the API."}