list_users
Retrieve all user accounts from your Metabase instance to manage access permissions and audit system users.
Instructions
👥 [SAFE - REQUIRES ADMIN] List all Metabase users. Requires admin permissions. Use this to see who has access to Metabase. Risk: None - read-only, but may fail if not admin.
Input Schema
TableJSON Schema
| Name | Required | Description | Default |
|---|---|---|---|
No arguments | |||
Implementation Reference
- The primary handler function that executes the list_users tool. It calls the Metabase API to fetch all users and formats a response with their IDs, names, emails, and admin status.async listUsers() { this.logger.debug('Listing users'); const users = await this.apiClient.makeRequest('/api/user/'); return { content: [ { type: 'text', text: `Users (${users.length}): ${users.map(u => `- ID: ${u.id} | Name: ${u.common_name} | Email: ${u.email} | Admin: ${u.is_superuser}` ).join('\n')}`, }, ], }; }
- The tool schema definition including name, description, and empty inputSchema (no parameters required). Part of the TOOL_DEFINITIONS array used for tool listing.name: 'list_users', description: '👥 [SAFE - REQUIRES ADMIN] List all Metabase users. Requires admin permissions. Use this to see who has access to Metabase. Risk: None - read-only, but may fail if not admin.', inputSchema: { type: 'object', properties: {}, }, },
- src/server/MetabaseMCPServer.js:226-227 (registration)The switch case in executeTool method that registers and dispatches the 'list_users' tool call to the userHandlers.listUsers() method.case 'list_users': return await this.userHandlers.listUsers();