list_members
Retrieve a list of members from a specified Discord server, with optional limits to customize the number of results returned.
Instructions
Get a list of members in a server
Input Schema
TableJSON Schema
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Maximum number of members to fetch | |
| server_id | Yes | Discord server (guild) ID |
Implementation Reference
- src/discord_mcp/server.py:495-513 (handler)The handler function for the 'list_members' tool. Fetches members from the specified Discord guild up to a given limit, collects their ID, name, nick, join date, and roles, then returns a formatted text list.elif name == "list_members": guild = await discord_client.fetch_guild(int(arguments["server_id"])) limit = min(int(arguments.get("limit", 100)), 1000) members = [] async for member in guild.fetch_members(limit=limit): members.append({ "id": str(member.id), "name": member.name, "nick": member.nick, "joined_at": member.joined_at.isoformat() if member.joined_at else None, "roles": [str(role.id) for role in member.roles[1:]] # Skip @everyone }) return [TextContent( type="text", text=f"Server Members ({len(members)}):\n" + "\n".join(f"{m['name']} (ID: {m['id']}, Roles: {', '.join(m['roles'])})" for m in members) )]
- src/discord_mcp/server.py:91-110 (registration)Registration of the 'list_members' tool in the @app.list_tools() handler, defining the tool name, description, and input schema requiring server_id (optional limit).Tool( name="list_members", description="Get a list of members in a server", inputSchema={ "type": "object", "properties": { "server_id": { "type": "string", "description": "Discord server (guild) ID" }, "limit": { "type": "number", "description": "Maximum number of members to fetch", "minimum": 1, "maximum": 1000 } }, "required": ["server_id"] } ),