Skip to main content
Glama

jira_get_users

Search for Jira users by name, email, username, or account ID to retrieve display names, email addresses, account status, and account types with pagination support.

Instructions

Search for users by name, email, username, or account ID. Returns display name, email, account status, and account type. Supports pagination.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
accountIdNoSpecific account ID to search for
maxResultsNoMaximum number of results to return
queryNoSearch query for user name or email (partial matches supported)
startAtNoIndex of first result to return (for pagination)
usernameNoSpecific username to search for

Implementation Reference

  • Main handler function that validates input, prepares API parameters, fetches users from Jira API using helper, formats the response, logs activity, and handles errors.
    export async function handleGetUsers(input: unknown): Promise<McpToolResponse> { try { const validated = validateInput(GetUsersInputSchema, input); if (validated.query) { log.info(`Searching users with query: "${validated.query}"...`); } else if (validated.username) { log.info(`Searching for username: "${validated.username}"...`); } else if (validated.accountId) { log.info(`Searching for account ID: "${validated.accountId}"...`); } else { log.info('Getting all users...'); } const getParams: any = {}; if (validated.query !== undefined) getParams.query = validated.query; if (validated.username !== undefined) getParams.username = validated.username; if (validated.accountId !== undefined) getParams.accountId = validated.accountId; if (validated.startAt !== undefined) getParams.startAt = validated.startAt; if (validated.maxResults !== undefined) getParams.maxResults = validated.maxResults; const users = await getUsers(getParams); log.info(`Found ${users.length} user(s)`); return formatUsersResponse(users); } catch (error) { log.error('Error in handleGetUsers:', error); return handleError(error); } }
  • Zod schema for input validation of the jira_get_users tool, defining optional query, username, accountId, pagination parameters.
    export const GetUsersInputSchema = z.object({ query: z.string().optional().describe('Search query for user name or email'), username: z.string().optional().describe('Specific username to search for'), accountId: z.string().optional().describe('Specific account ID to search for'), startAt: z.number().min(0).default(0).describe('Index of first result to return'), maxResults: z.number().min(1).max(50).default(50).describe('Maximum number of results to return'), }); export type GetUsersInput = z.infer<typeof GetUsersInputSchema>;
  • src/index.ts:32-49 (registration)
    Server-side registration mapping tool name 'jira_get_users' (TOOL_NAMES.GET_USERS) to its handler function handleGetUsers for execution.
    const toolHandlers = new Map<string, (input: unknown) => Promise<any>>([ [TOOL_NAMES.GET_VISIBLE_PROJECTS, tools.handleGetVisibleProjects], [TOOL_NAMES.GET_ISSUE, tools.handleGetIssue], [TOOL_NAMES.SEARCH_ISSUES, tools.handleSearchIssues], [TOOL_NAMES.GET_MY_ISSUES, tools.handleGetMyIssues], [TOOL_NAMES.GET_ISSUE_TYPES, tools.handleGetIssueTypes], [TOOL_NAMES.GET_USERS, tools.handleGetUsers], [TOOL_NAMES.GET_PRIORITIES, tools.handleGetPriorities], [TOOL_NAMES.GET_STATUSES, tools.handleGetStatuses], [TOOL_NAMES.CREATE_ISSUE, tools.handleCreateIssue], [TOOL_NAMES.UPDATE_ISSUE, tools.handleUpdateIssue], [TOOL_NAMES.ADD_COMMENT, tools.handleAddComment], [TOOL_NAMES.GET_PROJECT_INFO, tools.handleGetProjectInfo], [TOOL_NAMES.CREATE_SUBTASK, tools.handleCreateSubtask], [TOOL_NAMES.GET_CREATE_META, tools.handleGetCreateMeta], [TOOL_NAMES.GET_CUSTOM_FIELDS, tools.handleGetCustomFields], [TOOL_NAMES.CREATE_ISSUE_LINK, tools.handleCreateIssueLink], ]);
  • src/index.ts:52-69 (registration)
    Registration in the list of all available tools, including getUsersTool which defines the tool name, description, and input schema for MCP listTools request.
    const allTools = [ tools.getVisibleProjectsTool, tools.getIssueTool, tools.searchIssuesTool, tools.getMyIssuesTool, tools.getIssueTypesTool, tools.getUsersTool, tools.getPrioritiesTool, tools.getStatusesTool, tools.createIssueTool, tools.updateIssueTool, tools.addCommentTool, tools.getProjectInfoTool, tools.createSubtaskTool, tools.getCreateMetaTool, tools.getCustomFieldsTool, tools.createIssueLinkTool, ];
  • MCP Tool definition object with name 'jira_get_users', description, and JSON schema for input validation in listTools response.
    export const getUsersTool: Tool = { name: TOOL_NAMES.GET_USERS, description: 'Search for users by name, email, username, or account ID. Returns display name, email, account status, and account type. Supports pagination.', inputSchema: { type: 'object', properties: { query: { type: 'string', description: 'Search query for user name or email (partial matches supported)', }, username: { type: 'string', description: 'Specific username to search for', }, accountId: { type: 'string', description: 'Specific account ID to search for', }, startAt: { type: 'number', description: 'Index of first result to return (for pagination)', minimum: 0, default: 0, }, maxResults: { type: 'number', description: 'Maximum number of results to return', minimum: 1, maximum: 50, default: 50, }, }, required: [], }, };

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/freema/mcp-jira-stdio'

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