# invite_members (/docs/mcp/tools/invite-members)

{/* Generated by scripts/sync-mcp-tools.mjs from happierleads-api. Do not edit: change src/routes/mcp/toolDocs.json there, or add content/mcp-notes/invite_members.mdx. */}

**Invite team members** · Changes data · Acts outside your account

Invites people to the account; each one receives an invitation email to set a password. Members get what their role, preset or permissions allow on the websites given. Returns 405 when everyone listed is already on the account. Confirm the emails and access with the user before calling. Needs the master key.

| Connection | Account-owner URL or OAuth (not a team member URL) |
| --- | --- |

## Parameters [#parameters]

| Parameter | Type | Required | Description |
| --- | --- | --- | --- |
| `invites` | `object[]` | Yes | One entry per person to invite. |
| `invites[].email` | `string` | Yes | Their email address. An invitation email is sent to it. |
| `invites[].role` | `"Owner" \| "Member"` | No | Owner (everything, including billing) or Member (what permissions allow). Only an Owner can make another Owner. |
| `invites[].preset` | `"full" \| "sales" \| "developer" \| "viewer" \| "team" \| "client"` | No | Start from a preset of permissions: full, sales, developer, viewer, team or client (see get_permissions_catalog). |
| `invites[].permissions` | `string[]` | No | Exact permission ids, from get_permissions_catalog. Overrides the preset. |
| `invites[].allWebsites` | `boolean` | No | true: access to every current and future website. |
| `invites[].websites` | `string[]` | No | Website ids the member can see, when allWebsites is false. |

## Tool definition [#tool-definition]

What your assistant receives from `tools/list`:

```json
{
  "name": "invite_members",
  "title": "Invite team members",
  "annotations": {
    "title": "Invite team members",
    "readOnlyHint": false,
    "destructiveHint": false,
    "idempotentHint": false,
    "openWorldHint": true
  },
  "inputSchema": {
    "type": "object",
    "properties": {
      "invites": {
        "type": "array",
        "items": {
          "type": "object",
          "properties": {
            "email": {
              "type": "string",
              "description": "Their email address. An invitation email is sent to it."
            },
            "role": {
              "type": "string",
              "enum": [
                "Owner",
                "Member"
              ],
              "description": "Owner (everything, including billing) or Member (what permissions allow). Only an Owner can make another Owner."
            },
            "preset": {
              "type": "string",
              "enum": [
                "full",
                "sales",
                "developer",
                "viewer",
                "team",
                "client"
              ],
              "description": "Start from a preset of permissions: full, sales, developer, viewer, team or client (see get_permissions_catalog)."
            },
            "permissions": {
              "type": "array",
              "items": {
                "type": "string"
              },
              "description": "Exact permission ids, from get_permissions_catalog. Overrides the preset."
            },
            "allWebsites": {
              "type": "boolean",
              "description": "true: access to every current and future website."
            },
            "websites": {
              "type": "array",
              "items": {
                "type": "string"
              },
              "description": "Website ids the member can see, when allWebsites is false."
            }
          },
          "required": [
            "email"
          ]
        },
        "description": "One entry per person to invite."
      }
    },
    "required": [
      "invites"
    ]
  }
}
```
