getMutedUsers
Access a paginated list of muted users on Twitter, specifying user fields and result limits. Use pagination tokens for continuous retrieval.
Instructions
Retrieve a paginated list of users you have muted
Input Schema
TableJSON Schema
| Name | Required | Description | Default |
|---|---|---|---|
| maxResults | No | Maximum number of muted users to return (default: 100, max: 1000) | |
| paginationToken | No | Pagination token for retrieving next page of results | |
| userFields | No | User fields to include in the response |
Implementation Reference
- The primary handler function implementing the getMutedUsers tool logic. Fetches muted users via Twitter API v2.userMutingUsers, handles pagination and user fields, formats response.export const handleGetMutedUsers: TwitterHandler<GetMutedUsersArgs> = async ( client: TwitterClient | null, { maxResults = 100, paginationToken, userFields }: GetMutedUsersArgs ): Promise<HandlerResponse> => { if (!client) { return createMissingTwitterApiKeyResponse('getMutedUsers'); } try { // Get authenticated user's ID const me = await client.v2.me(); const myUserId = me.data.id; const options: any = { max_results: Math.min(maxResults, 1000) // API max is 1000 }; if (paginationToken) { options.pagination_token = paginationToken; } if (userFields && userFields.length > 0) { options['user.fields'] = userFields.join(','); } else { // Default user fields for better response options['user.fields'] = 'id,name,username,public_metrics,description,verified'; } const mutedUsers = await client.v2.userMutingUsers(myUserId, options); // The paginator returns data nested: { data: [users], meta: {...} } const userData = mutedUsers.data?.data; const metaData = mutedUsers.data?.meta || mutedUsers.meta; if (!userData || !Array.isArray(userData) || userData.length === 0) { return createResponse('No muted users found.'); } const responseData = { mutedUsers: userData, meta: metaData }; return createResponse(`Retrieved ${userData.length} muted users: ${JSON.stringify(responseData, null, 2)}`); } catch (error) { if (error instanceof Error) { throw new Error(formatTwitterError(error, 'getting muted users')); } throw error; } };
- src/tools.ts:708-734 (schema)MCP tool schema definition for getMutedUsers, including input schema with parameters for maxResults, paginationToken, and userFields.getMutedUsers: { description: 'Retrieve a paginated list of users you have muted', inputSchema: { type: 'object', properties: { maxResults: { type: 'number', description: 'Maximum number of muted users to return (default: 100, max: 1000)', minimum: 1, maximum: 1000 }, paginationToken: { type: 'string', description: 'Pagination token for retrieving next page of results' }, userFields: { type: 'array', items: { type: 'string', enum: ['id', 'name', 'username', 'description', 'profile_image_url', 'public_metrics', 'verified', 'location', 'url'] }, description: 'User fields to include in the response' } }, required: [] } },
- src/types/handlers.ts:141-145 (schema)TypeScript interface defining the input arguments for the getMutedUsers handler.export interface GetMutedUsersArgs { maxResults?: number; paginationToken?: string; userFields?: string[]; }
- src/index.ts:416-423 (registration)Tool dispatch logic in the main server handler that routes 'getMutedUsers' calls to the handleGetMutedUsers function.case 'getMutedUsers': { const { maxResults, paginationToken, userFields } = request.params.arguments as { maxResults?: number; paginationToken?: string; userFields?: string[] }; response = await handleGetMutedUsers(client, { maxResults, paginationToken, userFields }); break;