get_member_info
Retrieve detailed Discord server member information using guild and user IDs to manage user data and permissions.
Instructions
Get detailed information about a specific member
Input Schema
TableJSON Schema
| Name | Required | Description | Default |
|---|---|---|---|
| guildId | Yes | The ID of the server (guild) | |
| memberId | Yes | The ID of the member (user ID) |
Implementation Reference
- src/tools/member-tools.ts:42-93 (handler)Primary implementation of the get_member_info tool. This server.tool() call registers the tool, defines its input schema (guildId and memberId), and provides the handler function that uses the Discord client to fetch guild and member data, compiles comprehensive member information including roles, permissions, timestamps, and manageability flags, handles errors, and returns JSON-formatted response.server.tool( 'get_member_info', 'Get detailed information about a specific member', { guildId: z.string().describe('The ID of the server (guild)'), memberId: z.string().describe('The ID of the member (user ID)'), }, async ({ guildId, memberId }) => { const result = await withErrorHandling(async () => { const client = await getDiscordClient(); const guild = await client.guilds.fetch(guildId); const member = await guild.members.fetch(memberId); return { id: member.id, username: member.user.username, displayName: member.displayName, nickname: member.nickname, discriminator: member.user.discriminator, joinedAt: member.joinedAt?.toISOString(), premiumSince: member.premiumSince?.toISOString(), communicationDisabledUntil: member.communicationDisabledUntil?.toISOString(), pending: member.pending, isBot: member.user.bot, avatar: member.displayAvatarURL(), banner: member.user.bannerURL(), roles: member.roles.cache.map((r) => ({ id: r.id, name: r.name, color: r.hexColor, position: r.position, })), permissions: member.permissions.toArray(), highestRole: { id: member.roles.highest.id, name: member.roles.highest.name, }, isOwner: member.id === guild.ownerId, manageable: member.manageable, kickable: member.kickable, bannable: member.bannable, moderatable: member.moderatable, }; }); if (!result.success) { return { content: [{ type: 'text', text: result.error }], isError: true }; } return { content: [{ type: 'text', text: JSON.stringify(result.data, null, 2) }] }; } );
- src/index.ts:56-56 (registration)In the createMcpServer() function, calls registerMemberTools(server) to register all member management tools including get_member_info on the MCP server instance.registerMemberTools(server);
- src/index.ts:13-13 (registration)Imports the registerMemberTools function used to register the get_member_info tool.import { registerMemberTools } from './tools/member-tools.js';
- src/tools/member-tools.ts:46-48 (schema)Zod schema definition for get_member_info tool inputs: guildId and memberId as strings.guildId: z.string().describe('The ID of the server (guild)'), memberId: z.string().describe('The ID of the member (user ID)'), },