Skip to main content
Glama

mcp-jira-stdio

get-users.ts•2.77 kB
import { Tool } from '@modelcontextprotocol/sdk/types.js'; import { McpToolResponse } from '../types/common.js'; import { GetUsersInputSchema } from '../types/tools.js'; import { validateInput } from '../utils/validators.js'; import { getUsers } from '../utils/api-helpers.js'; import { formatUsersResponse } from '../utils/formatters.js'; import { handleError } from '../utils/error-handler.js'; import { TOOL_NAMES } from '../config/constants.js'; import { createLogger } from '../utils/logger.js'; const log = createLogger('tool:get-users'); 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: [], }, }; 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); } }

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