Skip to main content
Glama
TwitterAPIs

twitterapis

twitter_list_add_member

Add a user to a Twitter/X List you own by providing numeric list and user IDs, then read member_count to confirm the addition. Ideal for programmatic list curation.

Instructions

Add one account to a Twitter/X List that YOUR registered X session owns, by numeric list id and numeric user id. Use it to curate a List from code, for example adding each speaker at a conference to a List as they are announced. Returns ok, action, list_id, user_id, the List's member_count read back from X after the write, and the full list object. Read member_count to confirm the change landed: it is null when X returned no list object at all, which is itself the not-applied signal. A write that does not apply (the account is already a member, the List is not yours) comes back with the SAME field layout plus a 422 and a machine-readable reason, and is not billed. Reverse with twitter_list_remove_member.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
ct0NoOptional. The account's ct0 cookie, paired with auth_token. Sent as the x-ct0 header.
list_idYesNumeric id of the List you own. Found in the list URL: x.com/i/lists/<list_id>.
user_idYesNumeric user id of the account to add. Resolve a handle to a user_id first with twitter_user_info.
proxy_urlNoOptional. Residential proxy URL to egress this call through. Recommended for writes: X soft-blocks writes from datacenter IPs as automated. Sent as the x-proxy-url header.
auth_tokenNoOptional. The account's auth_token cookie, to act AS that account for this call (must be paired with ct0). Sent as the x-auth-token header; never placed in the URL.
user_agentNoOptional. User-Agent string to send for this session. Sent as the x-user-agent header.
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Exceptionally rich behavioral disclosure beyond the annotations: exact return fields, the member_count null-as-not-applied signal, the 422-with-identical-field-layout behavior for failed writes, and a 'not billed' note for non-applied writes. The description does not contradict readOnlyHint=false or openWorldHint=true; rather, it complements them with operational detail that annotations cannot convey.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Dense single paragraph with zero filler — every sentence carries meaning (purpose, example, response format, edge-case signal, reversal). It's on the longer side and slightly run-on in the middle sentence, but the information density justifies the length. A touch of formatting (e.g., separating the reversal note) would make it perfect.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a side-effect-heavy mutation with no output schema, the description is remarkably complete: full return value list, a concrete confirmation pattern (read member_count), explicit failure modes (already a member, not your list), status code (422), and billing implications. No output schema exists, so explaining the return shape in prose is exactly what's needed and it does so thoroughly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so baseline is 3; the description adds value by clarifying both IDs are numeric and connecting them to the write action. The schema descriptions themselves are strong (URL format for list_id, cross-reference to twitter_user_info for user_id resolution, proxy recommendation for writes). Slight deduction for the description text not adding much beyond 'numeric' since the schema already documents each parameter thoroughly.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a specific verb+resource pair ('Add one account to a Twitter/X List') and clarifies scope with 'that YOUR registered X session owns' and 'by numeric list id and numeric user id'. It clearly differentiates from the sibling twitter_list_remove_member by naming it as the reverse operation, and the ownership constraint distinguishes it from list-reading tools.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Provides a concrete use case ('adding each speaker at a conference to a List as they are announced') and explicitly names twitter_list_remove_member for reversal. The ownership prerequisite is stated upfront. Loses a point because it doesn't explicitly enumerate when NOT to use it relative to other write tools (e.g., twitter_create_list), though the reverse tool reference helps.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Install Server

Other Tools

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/TwitterAPIs/twitterapis-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server