> ## Documentation Index
> Fetch the complete documentation index at: https://veryfront.com/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# Update project member

> Changes a non-owner member's role to admin, editor or viewer; the owner changes only through updateProjectOwner.

`veryfront__update_project_member`

Requires project.members.manage.

## Access

No external-service connection is required. Use a Veryfront credential with access to the requested resources.

**Call type:** Can change resources.

## Arguments

| Field | Type | Required | Description and constraints |
| - | - | - | - |
| `user_id` | `string` | Yes | User ID of the project member. Format: `uuid`. |
| `role` | `string` | Yes | New role: admin, editor or viewer. Owner promotion uses updateProjectOwner. Values: `"admin"`, `"editor"`, `"viewer"`. |
| `project_reference` | `string` | No | Project UUID, slug or domain. |

## Example request

Send this JSON-RPC request through an initialized MCP client. Replace sample identifiers and values before calling the tool. See [MCP client setup](https://veryfront.com/docs/cloud/getting-started/connect-mcp.md).

```json title="request.json" theme={null}
{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "veryfront__update_project_member",
    "arguments": {
      "user_id": "00000000-0000-4000-8000-000000000000",
      "role": "admin"
    }
  }
}
```

## Result

The published output shape is summarized below. Inspect both the MCP response content and `isError` when handling a call.

| Field | Type | Required | Description and constraints |
| - | - | - | - |
| `user_id` | `string` | Yes | User ID of the project member. Format: `uuid`. |
| `email` | `string` | Yes | Email address of the member. |
| `name` | `string or null` | Yes | Display name of the member; null when the member has none. |
| `avatar_src` | `string or null` | Yes | Avatar URL of the member; null when the member has none. |
| `role` | `string` | Yes | Project role of the member: owner, admin, editor or viewer. Values: `"owner"`, `"admin"`, `"editor"`, `"viewer"`. |
| `capabilities` | `string[]` | Yes | Project capabilities the role grants, as the permission checks resolve them. |

## Full schemas

```json title="input-schema.json" theme={null}
{
  "type": "object",
  "properties": {
    "user_id": {
      "type": "string",
      "format": "uuid",
      "description": "User ID of the project member."
    },
    "role": {
      "type": "string",
      "enum": [
        "admin",
        "editor",
        "viewer"
      ],
      "description": "New role: admin, editor or viewer. Owner promotion uses updateProjectOwner."
    },
    "project_reference": {
      "type": "string",
      "description": "Project UUID, slug or domain."
    }
  },
  "required": [
    "user_id",
    "role"
  ],
  "additionalProperties": false,
  "description": "Arguments for the update_project_member tool.",
  "$schema": "http://json-schema.org/draft-07/schema#"
}
```

```json title="output-schema.json" theme={null}
{
  "type": "object",
  "properties": {
    "user_id": {
      "type": "string",
      "format": "uuid",
      "description": "User ID of the project member."
    },
    "email": {
      "type": "string",
      "description": "Email address of the member."
    },
    "name": {
      "type": [
        "string",
        "null"
      ],
      "description": "Display name of the member; null when the member has none."
    },
    "avatar_src": {
      "type": [
        "string",
        "null"
      ],
      "description": "Avatar URL of the member; null when the member has none."
    },
    "role": {
      "type": "string",
      "enum": [
        "owner",
        "admin",
        "editor",
        "viewer"
      ],
      "description": "Project role of the member: owner, admin, editor or viewer."
    },
    "capabilities": {
      "type": "array",
      "items": {
        "type": "string",
        "enum": [
          "project.read",
          "project.settings.manage",
          "project.delete",
          "project.members.read",
          "project.members.manage",
          "project.invites.read",
          "project.invites.manage",
          "project.files.read",
          "project.files.write",
          "project.realtime.connect",
          "project.realtime.write",
          "project.files.admin",
          "project.uploads.read",
          "project.uploads.write",
          "project.uploads.admin",
          "project.knowledge.read",
          "project.knowledge.write",
          "project.releases.read",
          "project.releases.write",
          "project.deployments.read",
          "project.deployments.write",
          "project.deploy.execute",
          "project.runtime.manage",
          "project.channels.read",
          "project.channels.write",
          "project.sandboxes.manage",
          "project.domains.write",
          "project.environments.manage",
          "project.env_vars.write",
          "project.runs.read",
          "project.runs.write",
          "project.runs.admin",
          "project.agents.read",
          "project.agents.write",
          "project.evals.read",
          "project.evals.write",
          "project.evals.run",
          "project.conversations.read",
          "project.conversations.write",
          "project.conversations.create",
          "project.integrations.read",
          "project.integrations.connect",
          "project.integrations.configure",
          "project.api_keys.read",
          "project.api_keys.manage",
          "project.cache.read",
          "project.cache.write",
          "project.logs.read",
          "project.metrics.read",
          "project.resources.read"
        ]
      },
      "description": "Project capabilities the role grants, as the permission checks resolve them."
    }
  },
  "required": [
    "user_id",
    "email",
    "name",
    "avatar_src",
    "role",
    "capabilities"
  ],
  "additionalProperties": false,
  "description": "Structured result returned by the update_project_member tool.",
  "$schema": "http://json-schema.org/draft-07/schema#"
}
```

<details>
  <summary>Try this tool</summary>

  Replace sample arguments with values for your project or connected account. Calls run only when you select Run tool.

  MCP tool call

  Call `veryfront__update_project_member` against the Veryfront MCP endpoint.

  Bearer token or API key

  Arguments (JSON)

  Run this tool with these arguments.

  Run tool

  Output JSON

  <pre />
</details>


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.