Skip to main content
Glama

remove-account

Remove cached Microsoft accounts to manage authentication data and free up storage space in the ForIT Microsoft Graph server.

Instructions

Remove a Microsoft account from the cache

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
accountIdYesThe account ID to remove

Implementation Reference

  • MCP tool registration for 'remove-account', including input schema (accountId: string), description, and handler function that delegates to AuthManager.removeAccount and returns success/error message
    server.tool(
      'remove-account',
      'Remove a Microsoft account from the cache',
      {
        accountId: z.string().describe('The account ID to remove'),
      },
      async ({ accountId }) => {
        try {
          const success = await authManager.removeAccount(accountId);
          if (success) {
            return {
              content: [
                {
                  type: 'text',
                  text: JSON.stringify({ message: `Removed account: ${accountId}` }),
                },
              ],
            };
          } else {
            return {
              content: [
                {
                  type: 'text',
                  text: JSON.stringify({ error: `Account not found: ${accountId}` }),
                },
              ],
            };
          }
        } catch (error) {
          return {
            content: [
              {
                type: 'text',
                text: JSON.stringify({
                  error: `Failed to remove account: ${(error as Error).message}`,
                }),
              },
            ],
          };
        }
      }
    );
  • Input schema validation using Zod for the accountId parameter
    accountId: z.string().describe('The account ID to remove'),
  • Handler function for 'remove-account' tool that calls AuthManager.removeAccount(accountId) and formats the response as MCP content
    async ({ accountId }) => {
      try {
        const success = await authManager.removeAccount(accountId);
        if (success) {
          return {
            content: [
              {
                type: 'text',
                text: JSON.stringify({ message: `Removed account: ${accountId}` }),
              },
            ],
          };
        } else {
          return {
            content: [
              {
                type: 'text',
                text: JSON.stringify({ error: `Account not found: ${accountId}` }),
              },
            ],
          };
        }
      } catch (error) {
        return {
          content: [
            {
              type: 'text',
              text: JSON.stringify({
                error: `Failed to remove account: ${(error as Error).message}`,
              }),
            },
          ],
        };
      }
    }
  • Core implementation in AuthManager.removeAccount: finds account by homeAccountId, removes from MSAL token cache, clears selection if needed
    async removeAccount(accountId: string): Promise<boolean> {
      const accounts = await this.listAccounts();
      const account = accounts.find((acc: AccountInfo) => acc.homeAccountId === accountId);
    
      if (!account) {
        logger.error(`Account with ID ${accountId} not found`);
        return false;
      }
    
      try {
        await this.msalApp.getTokenCache().removeAccount(account);
    
        // If this was the selected account, clear the selection
        if (this.selectedAccountId === accountId) {
          this.selectedAccountId = null;
          await this.saveSelectedAccount();
          this.accessToken = null;
          this.tokenExpiry = null;
        }
    
        logger.info(`Removed account: ${account.username} (${accountId})`);
        return true;
      } catch (error) {
        logger.error(`Failed to remove account ${accountId}: ${(error as Error).message}`);
        return false;
      }
    }
  • src/server.ts:83-84 (registration)
    Call to registerAuthTools which includes the 'remove-account' tool registration (conditional on !options.http || options.enableAuthTools)
      registerAuthTools(this.server, this.authManager, this.graphClient);
    }

Tool Definition Quality

Score is being calculated. Check back soon.

Install Server

Other Tools

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/ForITLLC/forit-microsoft-graph'

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