Skip to main content
Glama

get-project-member-list

Retrieve and filter project member details including names and email addresses from Dooray projects. Use to assign tasks or analyze team composition with optional role-based filtering and pagination.

Instructions

Get list of members in a project with their details.

This tool fetches project members and enriches each member with detailed information including name and email address.

URL Pattern Recognition: When given a Dooray URL like "https://nhnent.dooray.com/task/PROJECT_ID", extract the PROJECT_ID (the first numeric ID after "/task/") and use it as the projectId parameter.

Role Filtering:

  • Optionally filter by roles: ["admin"], ["member"], or ["admin", "member"]

  • If not specified, returns all members regardless of role

Pagination:

  • Default page size is 20 (maximum: 100)

  • Use page parameter to get additional pages if totalCount > size

Note: Returns compact response with essential fields only (id, name, externalEmailAddress).

Examples:

  • Get all members: {"projectId": "123456"}

  • Get only admins: {"projectId": "123456", "roles": ["admin"]}

  • Get with pagination: {"projectId": "123456", "page": 0, "size": 50}

Returns a paginated response with totalCount and array of members containing:

  • id: Member ID (organizationMemberId)

  • name: Member's display name

  • externalEmailAddress: Member's email address

Use this tool to find project members for assigning tasks or understanding team composition.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
projectIdYesProject ID to get members from
rolesNoFilter by roles (optional)
pageNoPage number for pagination (default: 0)
sizeNoNumber of items per page (default: 20, max: 100)

Implementation Reference

  • The core handler function that fetches project members using projectsApi.getProjectMembers, enriches each with member details from commonApi.getMemberDetails, handles pagination and errors, and returns a JSON-formatted response.
    export async function getProjectMemberListHandler(args: GetProjectMemberListInput) { try { // Step 1: Fetch project members (only IDs and roles) const projectMembers = await projectsApi.getProjectMembers(args); // Step 2: Fetch detailed info for each member in parallel const memberDetailsPromises = projectMembers.data.map(async (pm) => { try { const details = await commonApi.getMemberDetails(pm.organizationMemberId); return { id: details.id, name: details.name, externalEmailAddress: details.externalEmailAddress, }; } catch (error) { // If member details fail, return partial info return { id: pm.organizationMemberId, name: 'Unknown', externalEmailAddress: 'Unknown', }; } }); const enrichedMembers = await Promise.all(memberDetailsPromises); // Step 3: Return compact response with only requested fields const compactResult = { totalCount: projectMembers.totalCount, data: enrichedMembers, }; return { content: [ { type: 'text', text: JSON.stringify(compactResult, null, 2), }, ], }; } catch (error) { return { content: [ { type: 'text', text: `Error: ${formatError(error)}`, }, ], isError: true, }; } }
  • Zod schema defining the input parameters: projectId (required), optional roles filter, page, and size for pagination.
    export const getProjectMemberListSchema = z.object({ projectId: z.string().describe('Project ID to get members from'), roles: z.array(z.enum(['admin', 'member'])).optional().describe('Filter by roles (admin, member)'), page: z.number().optional().describe('Page number (default: 0)'), size: z.number().optional().describe('Items per page (default: 20, max: 100)'), });
  • src/index.ts:61-61 (registration)
    Registration of the tool in the central toolRegistry mapping tool name to its handler and schema for execution.
    'get-project-member-list': { handler: getProjectMemberListHandler, schema: getProjectMemberListSchema },
  • src/index.ts:33-33 (registration)
    Import of the tool components (tool object, handler, schema) from the implementation file.
    import { getProjectMemberListTool, getProjectMemberListHandler, getProjectMemberListSchema } from './tools/projects/get-project-member-list.js';
  • src/index.ts:84-84 (registration)
    Inclusion of the tool object in the list of available tools advertised by the MCP server.
    getProjectMemberListTool,

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/jhl8041/dooray-mcp'

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