Get X user posts
x_tweetsGet raw public X User and Tweet objects for a handle or profile URL.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| url | Yes | ||
| cursor | No |
Output Schema
| Name | Required | Description | Default |
|---|---|---|---|
No arguments | |||
x_tweetsGet raw public X User and Tweet objects for a handle or profile URL.
| Name | Required | Description | Default |
|---|---|---|---|
| url | Yes | ||
| cursor | No |
| Name | Required | Description | Default |
|---|---|---|---|
No arguments | |||
Changes observed during successful MCP inspections.
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the annotations, the description only says the objects are "raw" and "public," which hints at unfiltered API payloads. It discloses nothing about pagination (a cursor param exists), rate limits, or auth requirements for an openWorldHint tool. It also sits in tension with readOnlyHint=false: the verb "Get" reads as a pure retrieval, so an agent cannot tell whether calling it has side effects.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single efficient sentence with no waste, and the key content (verb + resource + accepted input) is front-loaded. It is concise to a fault: the space saved is spent on nothing that would help an agent choose or call it.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The output schema covers return shape, so return values need no prose. But with 0% schema coverage and no sibling differentiation, the description leaves an agent unable to decide between x_tweets, x_tweet, and x_profile, and unable to paginate via cursor — gaps the definition should fill.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must carry the burden. "Handle or profile URL" usefully clarifies what the required url field accepts, but the cursor parameter — the only other input and the one governing pagination — is completely unmentioned in both schema and description.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
"Get raw public X User and Tweet objects" names a retrieval verb and the resource types, which is better than a tautology. But it does not distinguish itself from the sibling tools x_profile and x_tweet, and it is unclear whether x_tweets lists a user's posts or returns a user-plus-tweets bundle, since the name says tweets and the description says "User and Tweet objects."
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No when-to-use guidance at all: nothing says when to pick this over x_profile, x_tweet, or the generic api_request sibling. The only contextual hint is "handle or profile URL," which implies input shapes rather than selection criteria.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Add one secure layer between your agents and this server.