---
title: "Your account"
description: "The workspaces, email, photo, username, apps and invitations of the person."
url: "https://openemail.uk/docs/mcp/tools/account"
area: "MCP server"
category: "Tools"
---

# Your account

The workspaces, email, photo, username, apps and invitations of the person.

## Your account tools

| Tool | What it does |
| --- | --- |
| listAccountWorkspaces | Every workspace your account can open, owned or joined, with the one the app opens for you and the one these tools act on. |
| switchAppWorkspace | Choose the workspace the app opens for you. These tools keep acting on the workspace they act on now. |
| createWorkspace | Create a workspace you own, on the Free plan, which the app opens for you from then on. An account can own one Free workspace. |
| deleteWorkspace | Delete the workspace these tools act on, with everything in it, once `confirm` names it. Only its owner may, and never the first workspace an account made. In the app’s chat it always asks first. |
| getNotificationSettings | Which kinds of email OpenEmail sends you, and the workspaces muted on your phone. |
| setEmailNotification | Turn `activity` or `product` email on or off. `account` and `billing` email are always on. |
| setWorkspacePushMuted | Mute or unmute the phone notifications of one workspace. |
| setProfilePhoto | Set your profile photo from an image in base64. |
| removeProfilePhoto | Remove your profile photo. In the app’s chat it always asks first. |
| getUsername | Your username, whether you chose it, and the free address it gives you. |
| checkUsername | Whether you could choose a username, and why not when you could not. |
| chooseUsername | Choose your username for good, since it never changes once chosen. In the app’s chat it always asks first. |
| listConnectedApps | The apps you connected, with what each may reach and until when. |
| revokeConnectedApp | Remove a connected app, so it has to ask again. In the app’s chat it always asks first. |
| listReceivedInvitations | The invitations to join a workspace that wait for you. `listInvitations` is the one for the invitations a workspace sent. |
| acceptInvitation | Join the workspace of an invitation, and with `activate` make it the one the app opens. |
| declineInvitation | Turn an invitation down, for good. In the app’s chat it always asks first. |

> These tools act on the person who connected the client, never on anyone else, and in the app’s chat on you. Reading needs `account:read` and every change needs `account:write`, which no role limits, so a client a member connected reaches that member’s own account too.

> Three things stay in the app: changing what a connected app may reach, letting one make changes without a verification code, and deleting the whole account.

> The workspace tools never move the other tools: `switchAppWorkspace` changes what the app opens, and `setActiveConnection` what the tools act on.

> Some tools on this server make a change the REST API guards with a verification code, and ask for the same code. Until the client has verified a code in the last 60 minutes, or the person has chosen Allow changes for 60 minutes on it in Account → Connected apps, such a tool answers with a result that starts `Refused (step_up_required):` and changes nothing. `emptyAudience` never asks for a code. The API Authentication page lists every tool that asks, and shows how to ask for a code and verify it.

## Reference

### `listAccountWorkspaces`

Every workspace your OpenEmail account can open, the ones you own and the ones you joined, as the workspace switcher of the app lists them, with the one the app opens for you. It is about your account, not this connection: getConnections lists what these tools can act on, and switchAppWorkspace changes only what the app opens, never what these tools act on.

- Scopes: `account:read`.
- The app's assistant runs it without asking.
- Toolkit: `account`.

**Inputs**

Takes no input.

Also available in: API [`GET /workspaces`](https://openemail.uk/docs/api/reference/workspaces#get-workspaces), [`GET /workspaces/active`](https://openemail.uk/docs/api/reference/workspaces#get-workspaces-active); SDK [`workspaces.list()`](https://openemail.uk/docs/sdk/reference/workspaces#list), [`workspaces.getActive()`](https://openemail.uk/docs/sdk/reference/workspaces#getActive).

### `switchAppWorkspace`

Choose which workspace the OpenEmail app opens for you, as the workspace switcher does. Pass a workspace id from listAccountWorkspaces. It changes the app only: these tools keep acting on the workspace they act on now.

- Scopes: `account:write`.
- The app's assistant asks first unless you asked for it.
- Toolkit: `account`.

**Inputs**

- `workspaceId` (`string`, required, 1 to 128 characters)

Also available in: API [`PUT /workspaces/active`](https://openemail.uk/docs/api/reference/workspaces#put-workspaces-active); SDK [`workspaces.setActive()`](https://openemail.uk/docs/sdk/reference/workspaces#setActive).

### `createWorkspace`

Create a new workspace that you own, on the Free plan, and make it the one the app opens for you, as creating one in the app does. An account can own one Free workspace, so while you own one this is refused until you upgrade it.

- Scopes: `account:write`.
- The app's assistant asks first unless you asked for it.
- Toolkit: `account`.

**Inputs**

- `name` (`string`, required, 1 to 64 characters)

Also available in: API [`POST /workspaces`](https://openemail.uk/docs/api/reference/workspaces#post-workspaces); SDK [`workspaces.create()`](https://openemail.uk/docs/sdk/reference/workspaces#create).

### `deleteWorkspace`

Delete the workspace these tools act on, with its domains, addresses, mail and members, and cancel its plan. It cannot be undone. Only its owner may do it, never through an app limited to some addresses, and your first workspace can never be deleted. confirm has to be the name of the workspace, as listAccountWorkspaces shows it.

- Scopes: `account:write`.
- The app's assistant always asks first.
- Asks for a verification code, the same as [`DELETE /workspaces/{id}`](https://openemail.uk/docs/api/reference/workspaces#delete-workspaces-id).
- Toolkit: `account`.

**Inputs**

- `confirm` (`string`, required, 1 to 256 characters): The name of the workspace being deleted, typed out.

Also available in: API [`DELETE /workspaces/{id}`](https://openemail.uk/docs/api/reference/workspaces#delete-workspaces-id); SDK [`workspaces.delete()`](https://openemail.uk/docs/sdk/reference/workspaces#delete).

### `getNotificationSettings`

Which kinds of email OpenEmail sends you, as Account, Notifications shows them, and the workspaces whose notifications are muted on your phone. Account and billing email are always on.

- Scopes: `account:read`.
- The app's assistant runs it without asking.
- Toolkit: `account`.

**Inputs**

Takes no input.

Also available in: API [`GET /account/notifications`](https://openemail.uk/docs/api/reference/your-account#get-account-notifications); SDK [`account.getNotifications()`](https://openemail.uk/docs/sdk/reference/account#getNotifications).

### `setEmailNotification`

Turn one kind of email from OpenEmail on or off for you. activity and product can be turned off; account and billing cannot.

- Scopes: `account:write`.
- The app's assistant asks first unless you asked for it.
- Toolkit: `account`.

**Inputs**

- `category` (`string`, required, one of `"account"`, `"billing"`, `"activity"`, `"product"`)
- `enabled` (`boolean`, required)

Also available in: API [`PUT /account/notifications/email/{category}`](https://openemail.uk/docs/api/reference/your-account#put-account-notifications-email-category); SDK [`account.setEmailNotification()`](https://openemail.uk/docs/sdk/reference/account#setEmailNotification).

### `setWorkspacePushMuted`

Mute or unmute the notifications of one workspace on your phone, on every phone you signed in on. Pass a workspace id from listAccountWorkspaces.

- Scopes: `account:write`.
- The app's assistant asks first unless you asked for it.
- Toolkit: `account`.

**Inputs**

- `workspaceId` (`string`, required, 1 to 128 characters)
- `muted` (`boolean`, required)

Also available in: API [`PUT /account/notifications/push/{workspaceId}`](https://openemail.uk/docs/api/reference/your-account#put-account-notifications-push-workspaceid); SDK [`account.setPushMuted()`](https://openemail.uk/docs/sdk/reference/account#setPushMuted).

### `setProfilePhoto`

Set your profile photo, replacing any there was, as Account, Profile does. Pass the picture in base64 as image, with its type as contentType: image/png, image/jpeg, image/webp, image/gif, up to 5 MB. It is fitted into a 512 pixel square.

- Scopes: `account:write`.
- The app's assistant asks first unless you asked for it.
- Toolkit: `account`.

**Inputs**

- `image` (`string`, required, 1 to 7340032 characters): The image in base64, or as a data: URL.
- `contentType` (`string`, required, 1 to 100 characters): The type of the image: image/png, image/jpeg, image/webp, image/gif.

Also available in: API [`PUT /account/photo`](https://openemail.uk/docs/api/reference/your-account#put-account-photo); SDK [`account.setPhoto()`](https://openemail.uk/docs/sdk/reference/account#setPhoto).

### `removeProfilePhoto`

Remove your profile photo and delete the stored image, so the app shows your initials again. Removing it when there is none changes nothing.

- Scopes: `account:write`.
- The app's assistant always asks first.
- Toolkit: `account`.

**Inputs**

Takes no input.

Also available in: API [`DELETE /account/photo`](https://openemail.uk/docs/api/reference/your-account#delete-account-photo); SDK [`account.removePhoto()`](https://openemail.uk/docs/sdk/reference/account#removePhoto).

### `getUsername`

Your OpenEmail username, whether you chose it or it was made for you, and the free address it gives you. A username you chose never changes.

- Scopes: `account:read`.
- The app's assistant runs it without asking.
- Toolkit: `account`.

**Inputs**

Takes no input.

Also available in: API [`GET /account/username`](https://openemail.uk/docs/api/reference/your-account#get-account-username); SDK [`account.getUsername()`](https://openemail.uk/docs/sdk/reference/account#getUsername).

### `checkUsername`

Whether you could choose a username, without choosing it, and why not when you could not. It is lowercased and its spaces become dots before it is checked.

- Scopes: `account:read`.
- The app's assistant runs it without asking.
- Toolkit: `account`.

**Inputs**

- `username` (`string`, required, 1 to 60 characters)

Also available in: API [`GET /account/username/availability`](https://openemail.uk/docs/api/reference/your-account#get-account-username-availability); SDK [`account.checkUsername()`](https://openemail.uk/docs/sdk/reference/account#checkUsername).

### `chooseUsername`

Choose your username, and with it your free address, for good. Once chosen it never changes, so check it with checkUsername first and make sure it is the one you want.

- Scopes: `account:write`.
- The app's assistant always asks first.
- Toolkit: `account`.

**Inputs**

- `username` (`string`, required, 1 to 60 characters)

Also available in: API [`PUT /account/username`](https://openemail.uk/docs/api/reference/your-account#put-account-username); SDK [`account.setUsername()`](https://openemail.uk/docs/sdk/reference/account#setUsername).

### `listConnectedApps`

Every app you connected to your account with OAuth, as Account, Connected apps lists them: what each may reach, until when, and its client id, which revokeConnectedApp takes. What an app may reach is changed in the app, never from here.

- Scopes: `account:read`.
- The app's assistant runs it without asking.
- Toolkit: `account`.

**Inputs**

Takes no input.

Also available in: API [`GET /account/connected-apps`](https://openemail.uk/docs/api/reference/your-account#get-account-connected-apps); SDK [`account.listConnectedApps()`](https://openemail.uk/docs/sdk/reference/account#listConnectedApps).

### `revokeConnectedApp`

Remove an app you connected: every token it holds and the access you gave it are deleted, so its next call is refused and it has to ask again. Pass its client id from listConnectedApps. Removing the app you are talking through disconnects it.

- Scopes: `account:write`.
- The app's assistant always asks first.
- Toolkit: `account`.

**Inputs**

- `clientId` (`string`, required, 1 to 128 characters)

Also available in: API [`DELETE /account/connected-apps/{clientId}`](https://openemail.uk/docs/api/reference/your-account#delete-account-connected-apps-clientid); SDK [`account.revokeConnectedApp()`](https://openemail.uk/docs/sdk/reference/account#revokeConnectedApp).

### `listReceivedInvitations`

The invitations to join a workspace that are waiting for you, oldest first, each with the id acceptInvitation and declineInvitation take. It is not listInvitations, which lists the invitations this workspace sent.

- Scopes: `account:read`.
- The app's assistant runs it without asking.
- Toolkit: `account`.

**Inputs**

Takes no input.

Also available in: API [`GET /account/invitations`](https://openemail.uk/docs/api/reference/your-account#get-account-invitations); SDK [`account.listInvitations()`](https://openemail.uk/docs/sdk/reference/account#listInvitations).

### `acceptInvitation`

Accept an invitation that is waiting for you and join its workspace with the role and the addresses it gives. activate also makes it the workspace the app opens for you. A workspace that asks for two-factor sign-in is refused until you turn it on.

- Scopes: `account:write`.
- The app's assistant asks first unless you asked for it.
- Toolkit: `account`.

**Inputs**

- `invitationId` (`string`, required, 1 to 128 characters)
- `activate` (`boolean`)

Also available in: API [`POST /account/invitations/{invitationId}/accept`](https://openemail.uk/docs/api/reference/your-account#post-account-invitations-invitationid-accept); SDK [`account.acceptInvitation()`](https://openemail.uk/docs/sdk/reference/account#acceptInvitation).

### `declineInvitation`

Decline an invitation that is waiting for you. Its link stops working and whoever sent it is told. It cannot be taken back: they would have to invite you again.

- Scopes: `account:write`.
- The app's assistant always asks first.
- Toolkit: `account`.

**Inputs**

- `invitationId` (`string`, required, 1 to 128 characters)

Also available in: API [`POST /account/invitations/{invitationId}/decline`](https://openemail.uk/docs/api/reference/your-account#post-account-invitations-invitationid-decline); SDK [`account.declineInvitation()`](https://openemail.uk/docs/sdk/reference/account#declineInvitation).
