com.jojapi/twitter-x-aio
REMOTE · MCP.JOJAPI.COM · SCANNED OCT 4
Twitter: Access real-time Twitter/X data as soon as it's posted! With the Twitter/X AIO API, you.
Available components
How this component scores in each security and reliability category. Every signal is checked automatically against the live server, and we only credit what we can confirm. How we score → Why this is hard to score →
Endpoint Security57
- The endpoint's TLS certificate is valid, in date, and uses a strong key. View diagnostics → Pass
- Authorisation not fully verified: no authorisation is required to call this server, and 23 tool(s) never declared a destructiveHint. The MCP spec treats an absent hint as destructive by default, so we cannot call this surface safe. See how to fix → View diagnostics → Unverified
- HTTPS is enforced; there's no plaintext access path. View diagnostics → Pass
- HSTS check failed: the Strict-Transport-Security header is absent. See how to fix → View diagnostics → Fail
- DNSSEC check failed: this domain isn't protected by DNSSEC. See how to fix → View diagnostics → Fail
Transport & Reachability100
- Verified streamable-http transport via a live MCP handshake. View diagnostics → Pass
Schema Quality & AI Usability70
- AI-judged instruction clarity (good).Pass
- Tool/resource definitions use about 1893 tokens (~82/item across 23 items; 23 tools + 0 resources), lean.Pass
- Usage-examples check failed: none of the tools include examples. See how to fix → Fail
Stability & Change Management100
- No destabilizing schema changes in the last 30 days.Pass
Tool Coverage82
- 100% of tools have a non-trivial description (not blank, and not just the tool's name).Pass
- 45% of tool parameters carry a description.Partial
Tool Safety100
- No prompt-injection markers were found in the server instructions, tool names or descriptions we captured.Pass
- We read all 23 captured tool definition(s), and no name or description among them implies an irreversible operation.Pass
- An AI judge read all 24 captured unit(s) of tool text and found none that tries to manipulate the model reading it.Pass
Capabilities60
- Spec-recency check failed: implements MCP spec 2025-06-18; the latest is 2026-07-28. See how to fix → Fail
How do I install the com.jojapi/twitter-x-aio MCP server?
com.jojapi/twitter-x-aio is a hosted endpoint at https://mcp.jojapi.com/twitter-x-aio, so there is nothing to install locally. Ready-made configuration for Claude, Cursor, VS Code, Codex and 5 more is on this page, copied from each client's own documentation.
remote · mcp.jojapi.com
claude mcp add --transport http com-jojapi-twitter-x-aio 'https://mcp.jojapi.com/twitter-x-aio'
{
"mcpServers": {
"com-jojapi-twitter-x-aio": {
"url": "https://mcp.jojapi.com/twitter-x-aio"
}
}
} {
"servers": {
"com-jojapi-twitter-x-aio": {
"type": "http",
"url": "https://mcp.jojapi.com/twitter-x-aio"
}
}
} [mcp_servers.com-jojapi-twitter-x-aio] url = "https://mcp.jojapi.com/twitter-x-aio"
{
"$schema": "https://opencode.ai/config.json",
"mcp": {
"com-jojapi-twitter-x-aio": {
"type": "remote",
"url": "https://mcp.jojapi.com/twitter-x-aio",
"enabled": true
}
}
} openclaw mcp add com-jojapi-twitter-x-aio --url 'https://mcp.jojapi.com/twitter-x-aio' --transport streamable-http
mcp_servers:
com-jojapi-twitter-x-aio:
url: "https://mcp.jojapi.com/twitter-x-aio" {
"McpServers": {
"com-jojapi-twitter-x-aio": {
"Transport": "http",
"Url": "https://mcp.jojapi.com/twitter-x-aio"
}
}
} assistant mcp add com-jojapi-twitter-x-aio -t streamable-http -u 'https://mcp.jojapi.com/twitter-x-aio'
{
"mcpServers": {
"com-jojapi-twitter-x-aio": {
"type": "http",
"url": "https://mcp.jojapi.com/twitter-x-aio"
}
}
} The mcpServers block is a cross-client convention. Remote transports vary, so check your client's docs.
Every change we have recorded for this component, newest first. Security-relevant changes are always shown. ▲ marks a change for the better, ▼ a change for the worse; unmarked changes are neutral.
- 28 Sept 26 0
- We updated how we score, so this day's move reflects our rubric, not a change to the server See what changed → functional
- 25 Sept 26 0
- We updated how we score, so this day's move reflects our rubric, not a change to the server See what changed → functional
- 18 Sept 26 0
- Stability: 0.97 → pass security
- 17 Sept 26 +1
No change was recorded against any check on this day. Stability & Change Management went from 93 to 97. That category is still filling its 30-day observation window: 28 days of observed history at the previous scan, 29 at this one. The score rises as the window fills, whether or not the server changes.
- 15 Sept 26 0
- Tool “get_search_searchTerm” rewrote its description, which is the text the model reads security
- 14 Sept 26 +1
No change was recorded against any check on this day. Stability & Change Management went from 83 to 87. That category is still filling its 30-day observation window: 25 days of observed history at the previous scan, 26 at this one. The score rises as the window fills, whether or not the server changes.
- 12 Sept 26 +1
No change was recorded against any check on this day. Stability & Change Management went from 77 to 80. That category is still filling its 30-day observation window: 23 days of observed history at the previous scan, 24 at this one. The score rises as the window fills, whether or not the server changes.
- 10 Sept 26 +1
No change was recorded against any check on this day. Stability & Change Management went from 70 to 73. That category is still filling its 30-day observation window: 21 days of observed history at the previous scan, 22 at this one. The score rises as the window fills, whether or not the server changes.
Diagnostic detail from the automated scan of this channel: what the scanner observed at each step, so you can see exactly where a check passed or failed. It is informational only and never changes the trust score.
Captured 7 Oct 2026 · Probed https://mcp.jojapi.com/twitter-x-aio
TLS valid
Negotiated TLS 1.3 with TLS_AES_128_GCM_SHA256 .
| Subject | Issuer | Valid from | Valid until | Key | Signature | Serial |
|---|---|---|---|---|---|---|
| CN=mcp.jojapi.com | CN=WE1,O=Google Trust Services,C=US | 19 Aug 2026 | 17 Nov 2026 | ECDSA 256 | ECDSA-SHA256 | 6bf56e5f5706ef0d0eece5dccb581199 |
| SANs: mcp.jojapi.com | ||||||
| CN=WE1,O=Google Trust Services,C=US (CA) | CN=GTS Root R4,O=Google Trust Services LLC,C=US | 13 Dec 2023 | 20 Feb 2029 | ECDSA 256 | ECDSA-SHA384 | 7ff31977972c224a76155d13b6d685e3 |
| CN=GTS Root R4,O=Google Trust Services LLC,C=US (CA) | CN=GlobalSign Root CA,OU=Root CA,O=GlobalSign nv-sa,C=BE | 15 Nov 2023 | 28 Jan 2028 | ECDSA 384 | SHA256-RSA | 7fe530bf331343bedd821610493d8a1b |
Background: What to check on a remote MCP endpoint →
DNSSEC insecure
Validation of mcp.jojapi.com. — Not signed
| Zone | DS | Keys | Algorithms | Outcome |
|---|---|---|---|---|
| . | trust_anchor | 20326, 38696 | 8, 8 | Verified |
| com. | present | 19718 | 13 | Verified |
| jojapi.com. | absent | Unsigned (proven) parent-signed NSEC/NSEC3 proves an unsigned delegation |
Authentication No authorisation required
The endpoint answered without asking for a token. Anyone who knows the URL can reach it.
| Result | No authorisation required |
|---|---|
| HTTP status | 200 |
Background: How OAuth 2.1 works in the 2026 MCP spec →
Transports 2 probes
| Transport | URL | Outcome | Status | Location |
|---|---|---|---|---|
| streamable-http | https://mcp.jojapi.com/twitter-x-aio | Verified | 200 | |
| http (plaintext) | http://mcp.jojapi.com/twitter-x-aio | HTTPS enforced | 301 | https://mcp.jojapi.com/twitter-x-aio |
The tools this component advertises to a client, with an estimated token cost for each. Expand a tool to see its parameters and schema. The per-tool counts are indicative and are not scored directly; the schema's total context footprint is one signal in Schema Quality & AI Usability. A tool's description is untrusted text the model reads on every call, which is what makes this list a security surface and not just an inventory: how tool poisoning works →
get_misc_emojis Twitter hashtag emojis ~41
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 present but exposes no named parameters.
No output schema declared.
No examples provided.
get_misc_locations Location (for trends) ~33
This gives you a list of all available locations. Group: Utilities/Misc. Billing per call: 1 Credits.
Input schema present but exposes no named parameters.
No output schema declared.
No examples provided.
get_misc_subtitles Video Subtitles ~32
Get the full subtitles of a video Group: ✨ Exclusive endpoints. Billing per call: 1 Credits.
Input schema present but exposes no named parameters.
No output schema declared.
No examples provided.
get_resolve_urls resolve urls ~33
resolve urls Group: Utilities/Misc. Billing per call: 1 Credits.
| Name | Type | Req | Description |
|---|---|---|---|
| urls | string | – | – |
No output schema declared.
No examples provided.
get_search_searchTerm Search ~230
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).
| Name | Type | Req | Description |
|---|---|---|---|
| category | string | – | ENUM Top,Latest,People,Photos,Videos |
| count | string | – | The default count is 20. You can specify a custom one here. |
| cursor | string | – | 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 | string | – | Learn more about all filters by reading the docs or contact me on telegram @benagain :) |
| includeTimestamp | string | – | Decide if you need a unix created_at timestamp. This will slightly increase the speed of the request. |
| searchTerm | string | yes | – |
No output schema declared.
No examples provided.
get_trends_locationId Trends ~37
Get twitter trends for worldwide or a specific region. Billing per call: 1 Credits.
| Name | Type | Req | Description |
|---|---|---|---|
| locationId | string | yes | – |
No output schema declared.
No examples provided.
get_tweet_tweetId Tweet Details ~74
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.
| Name | Type | Req | Description |
|---|---|---|---|
| tweetId | string | yes | – |
No output schema declared.
No examples provided.
get_tweet_tweetId_favorites Tweet Likes ~107
Receive all likes for a tweet. Group: Tweet. Billing per call: 1 Credits.
| Name | Type | Req | Description |
|---|---|---|---|
| count | string | – | The default count is 20. You can specify a custom one here. |
| cursor | string | – | 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 | string | yes | – |
No output schema declared.
No examples provided.
get_tweet_tweetId_retweets Tweet Retweets ~56
Receive all retweets for a tweet. Group: Tweet. Billing per call: 1 Credits.
| Name | Type | Req | Description |
|---|---|---|---|
| count | string | – | – |
| cursor | string | – | – |
| tweetId | string | yes | – |
No output schema declared.
No examples provided.
get_user_by_username_username User Details by username ~44
Receive follower counts, images and more user related data with this endpoint. Group: User. Billing per call: 1 Credits.
| Name | Type | Req | Description |
|---|---|---|---|
| username | string | yes | – |
No output schema declared.
No examples provided.
get_user_userId User Details by userId ~55
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.
| Name | Type | Req | Description |
|---|---|---|---|
| userId | string | yes | – |
No output schema declared.
No examples provided.
get_user_userId_followers User Followers by userId ~140
Receive all followers of a user. You can use the cursor and count to navigate around. Group: User. Billing per call: 1 Credits.
| Name | Type | Req | Description |
|---|---|---|---|
| count | string | – | The default count is 20. You can specify a custom one here. |
| cursor | string | – | 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 | string | yes | – |
| username | string | – | If you provide a username value it will automatically be picked and the userId is ignored |
No output schema declared.
No examples provided.
get_user_userId_followings User Followings by userId ~141
Receive all followings of a user. You can use the cursor and count to navigate around. Group: User. Billing per call: 1 Credits.
| Name | Type | Req | Description |
|---|---|---|---|
| count | string | – | The default count is 20. You can specify a custom one here. |
| cursor | string | – | 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 | string | yes | – |
| username | string | – | If you provide a username value it will automatically be picked and the userId is ignored |
No output schema declared.
No examples provided.
get_user_userId_followings_basic Basic user followings by userId ~97
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.
| Name | Type | Req | Description |
|---|---|---|---|
| userId | string | yes | – |
| username | string | – | If you provide a username value it will automatically be picked and the userId is ignored |
No output schema declared.
No examples provided.
get_user_userId_followings_ids User Followings Ids ~64
Get the ids of the users a certain user follows Group: User. Billing per call: 1 Credits.
| Name | Type | Req | Description |
|---|---|---|---|
| count | string | – | – |
| cursor | string | – | – |
| userId | string | yes | – |
| username | string | – | – |
No output schema declared.
No examples provided.
get_user_userId_likes User Likes by userId ~50
Receive all likes of a user. You can use the cursor and count to navigate around. Group: User. Billing per call: 1 Credits.
| Name | Type | Req | Description |
|---|---|---|---|
| userId | string | yes | – |
No output schema declared.
No examples provided.
get_user_userId_media Media by userId ~51
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.
| Name | Type | Req | Description |
|---|---|---|---|
| userId | string | yes | – |
No output schema declared.
No examples provided.
get_user_userId_tweets Tweets by userId ~151
Receive all tweets ordered by most recent. You can use the cursor and count to navigate around. Group: User. Billing per call: 1 Credits.
| Name | Type | Req | Description |
|---|---|---|---|
| count | string | – | The default count is 20. You can specify a custom one here. |
| cursor | string | – | 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 | string | yes | – |
| username | string | – | If you provide a username value it will automatically be picked and the userId is ignored. Best is to set userId to -1 |
No output schema declared.
No examples provided.
get_user_userId_tweetsAndReplies Tweets and Replies by userId ~145
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.
| Name | Type | Req | Description |
|---|---|---|---|
| count | string | – | The default count is 20. You can specify a custom one here. |
| cursor | string | – | 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 | string | yes | – |
| username | string | – | If you provide a username value it will automatically be picked and the userId is ignored |
No output schema declared.
No examples provided.
get_user_usernames_to_ids [✨ EXCLUSIVE!] Usernames to Ids ~49
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 present but exposes no named parameters.
No output schema declared.
No examples provided.
get_username_to_id_username Convert username to userId ~45
You'll need the userId to receive tweets, media and replies. Group: Utilities/Misc. Billing per call: 1 Credits.
| Name | Type | Req | Description |
|---|---|---|---|
| username | string | yes | – |
No output schema declared.
No examples provided.
post_search_searchTerm Search for large cursors ~65
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.
| Name | Type | Req | Description |
|---|---|---|---|
| searchTerm | string | yes | – |
No output schema declared.
No examples provided.
post_tweet_tweetId Tweet Details for large cursors ~61
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.
| Name | Type | Req | Description |
|---|---|---|---|
| tweetId | string | yes | – |
No output schema declared.
No examples provided.
What is the com.jojapi/twitter-x-aio MCP server?
com.jojapi/twitter-x-aio is an MCP server listed in the public MCP registry as com.jojapi/twitter-x-aio. Twitter: Access real-time Twitter/X data as soon as it's posted! With the Twitter/X AIO API, you. This page covers its hosted endpoint (https://mcp.jojapi.com/twitter-x-aio).
Is the com.jojapi/twitter-x-aio MCP server safe to use?
com.jojapi/twitter-x-aio scores 74 out of 100 on VerifyMCP. That is a record of what we were able to check automatically, not an endorsement. The category breakdown on this page shows every signal behind the number, including the ones we could not confirm.
What tools does the com.jojapi/twitter-x-aio MCP server expose?
com.jojapi/twitter-x-aio exposes 23 tools: get_search_searchTerm, get_trends_locationId, get_user_userId, get_user_by_username_username, get_user_userId_tweets, and 18 more. Their descriptions and schemas cost roughly 1,801 tokens of context every time the server is loaded.
Does the com.jojapi/twitter-x-aio MCP server require authentication?
No. We connected to com.jojapi/twitter-x-aio without credentials and it answered, so anything it exposes is reachable by anyone who knows the address.
Is the com.jojapi/twitter-x-aio MCP server still maintained?
com.jojapi/twitter-x-aio is still listed as active in the MCP registry. We last reached this channel on 4 October 2026. Those dates come from our own scans of the registry and the channel itself, not from anything the publisher announced.