delete-user
Remove a user from GitHub Enterprise by specifying the username. This tool integrates with the GitHub Enterprise MCP Server to streamline user management tasks.
Input Schema
TableJSON Schema
| Name | Required | Description | Default |
|---|---|---|---|
| username | Yes | Username of the user to delete |
Implementation Reference
- server/index.ts:1979-2021 (registration)MCP tool registration for 'delete-user', including input schema (username: z.string()) and handler wrapper that delegates to UserManagement.deleteUser after Enterprise checkserver.tool( "delete-user", { username: z.string().describe("Username of the user to delete") }, async ({ username }) => { try { if (!context.isGitHubEnterprise) { return { content: [ { type: "text", text: "User deletion is only available in GitHub Enterprise. This operation cannot be performed on GitHub.com." } ], isError: true }; } await context.users.deleteUser(context.client, { username }); return { content: [ { type: "text", text: `User '${username}' has been successfully deleted.` } ] }; } catch (error: any) { console.error('Error deleting user:', error); return { content: [ { type: "text", text: `An error occurred while deleting user: ${error.message}` } ], isError: true }; } } );
- api/users/users.ts:209-242 (handler)Core handler logic in UserManagement.deleteUser that sends DELETE request to GitHub Enterprise admin API endpoint /admin/users/${username}/** * Delete a user from GitHub Enterprise * * @param client - GitHub API client * @param params - Parameters with username to delete * @returns Promise that resolves to true if successful */ async deleteUser(client: any, params: DeleteUserParams): Promise<boolean> { try { const { baseUrl, token } = client; const { username } = params; if (!username) { throw new Error('Username is required'); } const url = `${baseUrl}/admin/users/${username}`; await axios.delete(url, { headers: { Authorization: `token ${token}`, Accept: 'application/vnd.github.v3+json' } }); return true; } catch (error: any) { if (error.response?.status === 404) { throw new Error(`User '${params.username}' not found or admin endpoint not available`); } throw new Error(`Failed to delete user: ${error.message}`); } }
- api/users/types.ts:152-159 (schema)TypeScript interface definition for DeleteUserParams used by the deleteUser handler* Parameters to delete a user */ export interface DeleteUserParams { /** * Username of the user to delete */ username: string; }
- server/index.ts:13-13 (registration)Import of UserManagement class used for user operationsimport { UserManagement } from '../api/users/users.js';
- server/index.ts:167-177 (helper)Context creation including instantiation of UserManagement for tool handlers// Create context const context: GitHubContext = { client, repository, admin, actions, pulls, issues, users: new UserManagement(), isGitHubEnterprise: !!config.baseUrl && !config.baseUrl.includes('github.com') };