Skip to main content
Glama
crazyrabbitLTC

Twitter MCP Server

getListMembers

Retrieve members from a specific Twitter list using the list ID, with options to define result limits and include additional user details for enriched insights.

Instructions

Get members of a Twitter list

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
listIdYesThe ID of the list
maxResultsNoThe maximum number of results to return (default: 100, max: 100)
userFieldsNoAdditional user fields to include in the response

Implementation Reference

  • Main handler function that implements the core logic for the getListMembers tool, fetching list members via TwitterClient and formatting the response.
    export async function handleGetListMembers( client: TwitterClient | null, args: GetListMembersArgs ): Promise<HandlerResponse> { if (!client) { return createMissingTwitterApiKeyResponse('getListMembers'); } try { const options = { max_results: args.maxResults, pageLimit: args.pageLimit, 'user.fields': args.userFields }; const members = await client.getListMembers(args.listId, options); if (!members.data || !Array.isArray(members.data) || members.data.length === 0) { return createResponse(`No members found for list ${args.listId}`); } const memberCount = members.meta?.result_count || members.data.length; let responseText = `Found ${memberCount} members in list ${args.listId}:\n\n`; members.data.forEach((member) => { responseText += `- ${member.name} (@${member.username})\n`; }); if (members.meta?.total_retrieved === args.maxResults) { responseText += '\nNote: Maximum requested results reached. There might be more members available.'; } return createResponse(responseText); } catch (error) { if (error instanceof Error) { throw new Error(formatTwitterError(error, 'getting list members')); } throw new Error('Failed to get list members: Unknown error occurred'); } }
  • Input schema and description for the getListMembers tool, used for MCP tool registration.
    getListMembers: { description: 'Get members of a Twitter list', inputSchema: { type: 'object', properties: { listId: { type: 'string', description: 'The ID of the list' }, maxResults: { type: 'number', description: 'The maximum number of results to return (default: 100, max: 100)', minimum: 1, maximum: 100 }, userFields: { type: 'array', items: { type: 'string', enum: ['description', 'profile_image_url', 'public_metrics', 'verified', 'location', 'url'] }, description: 'Additional user fields to include in the response' }, }, required: ['listId'], }, },
  • src/index.ts:299-306 (registration)
    Registration and dispatch logic in the main server request handler switch statement for the getListMembers tool.
    case 'getListMembers': { const { listId, maxResults, userFields } = request.params.arguments as { listId: string; maxResults?: number; userFields?: string[]; }; response = await handleGetListMembers(client, { listId, maxResults, userFields }); break;
  • TypeScript interface defining input arguments for the getListMembers handler.
    export interface GetListMembersArgs { listId: string; maxResults?: number; pageLimit?: number; userFields?: string[]; }
  • Global type definition for GetListMembersArgs used across the codebase.
    export interface GetListMembersArgs { listId: string; maxResults?: number; userFields?: string[]; }

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/crazyrabbitLTC/mcp-twitter-server'

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