Skip to main content
Glama
concavegit

App Store Connect MCP Server

by concavegit

list_users

Retrieve all registered users on your App Store Connect team with options to filter by role, username, or visible apps, sort results, and control response details.

Instructions

Get a list of all users registered on your App Store Connect team

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
limitNoMaximum number of users to return (default: 100, max: 200)
sortNoSort order for the results
filterNo
includeNoRelated resources to include in the response

Implementation Reference

  • The core handler function listUsers that implements the tool logic by constructing query parameters and calling the App Store Connect API endpoint '/users'.
    async listUsers(args: {
      limit?: number;
      sort?: UserSortOptions;
      filter?: UserFilters;
      include?: UserIncludeOptions[];
    } = {}): Promise<ListUsersResponse> {
      const { limit = 100, sort, filter, include } = args;
      
      const params: Record<string, any> = {
        limit: sanitizeLimit(limit)
      };
    
      if (sort) {
        params.sort = sort;
      }
    
      Object.assign(params, buildFilterParams(filter));
    
      if (Array.isArray(include) && include.length > 0) {
        params.include = include.join(',');
      }
    
      return this.client.get<ListUsersResponse>('/users', params);
    }
  • src/index.ts:1384-1385 (registration)
    Registration of the 'list_users' tool handler in the MCP server's CallToolRequest handler switch statement, dispatching to userHandlers.listUsers.
    case "list_users":
      return { toolResult: await this.userHandlers.listUsers(args as any) };
  • Tool registration including input schema definition for 'list_users' in the buildToolsList method, advertised to MCP clients.
    {
      name: "list_users",
      description: "Get a list of all users registered on your App Store Connect team",
      inputSchema: {
        type: "object",
        properties: {
          limit: {
            type: "number",
            description: "Maximum number of users to return (default: 100, max: 200)",
            minimum: 1,
            maximum: 200
          },
          sort: {
            type: "string",
            description: "Sort order for the results",
            enum: ["username", "-username", "firstName", "-firstName", "lastName", "-lastName", "roles", "-roles"]
          },
          filter: {
            type: "object",
            properties: {
              username: { type: "string", description: "Filter by username" },
              roles: {
                type: "array",
                items: {
                  type: "string",
                  enum: [
                    "ADMIN", "FINANCE", "TECHNICAL", "SALES", "MARKETING", "DEVELOPER",
                    "ACCOUNT_HOLDER", "READ_ONLY", "APP_MANAGER", "ACCESS_TO_REPORTS", "CUSTOMER_SUPPORT"
                  ]
                },
                description: "Filter by user roles"
              },
              visibleApps: {
                type: "array",
                items: { type: "string" },
                description: "Filter by apps the user can see (app IDs)"
              }
            }
          },
          include: {
            type: "array",
            items: {
              type: "string",
              enum: ["visibleApps"]
            },
            description: "Related resources to include in the response"
          }
        }
      }
    },
  • TypeScript interface defining the output structure ListUsersResponse used by the listUsers handler.
    export interface ListUsersResponse {
      data: User[];
    }
  • src/index.ts:78-78 (registration)
    Instantiation of the UserHandlers class instance used for the list_users tool.
    this.userHandlers = new UserHandlers(this.client);

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/concavegit/app-store-connect-mcp-server'

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