Tool: set_principal_role
Sets the role of a principal (user) on a merchant, or adds a new principal with the specified role. The principal is sent an email invitation and must accept it before their access becomes active. This operation requires Admin access for the merchant.
The following code sample shows how to use curl to call the set_principal_role MCP tool.
| Curl Request |
|---|
curl --location 'https://paydeveloper.googleapis.com/mcp' \ --header 'content-type: application/json' \ --header 'accept: application/json, text/event-stream' \ --data '{ "method": "tools/call", "params": { "name": "set_principal_role", "arguments": { // Provide these details according to the MCP tool specification. } }, "jsonrpc": "2.0", "id": 1 }' |
Input Schema
Request message for adding or updating a principal on a merchant.
SetPrincipalRoleRequest
| JSON representation |
|---|
{
"merchantId": string,
"email": string,
"role": enum ( |
| Fields | |
|---|---|
merchantId |
Required. The merchant id, for which to add or update the principal. |
email |
Required. The email address of the principal to add or update. |
role |
Required. The role to grant to the principal. |
PrincipalRole
A role that can be granted to a principal (user) on a merchant.
| Enums | |
|---|---|
PRINCIPAL_ROLE_UNSPECIFIED |
The role is unspecified. |
ADMIN |
Full access to the merchant, including managing users. |
DEVELOPER |
Access intended for developers integrating with the merchant. |
Output Schema
Response message for adding or updating a principal on a merchant.
SetPrincipalRoleResponse
| JSON representation |
|---|
{
"state": enum ( |
| Fields | |
|---|---|
state |
The state of the principal after adding or updating. |
State
The state of a principal's access on a merchant.
| Enums | |
|---|---|
STATE_UNSPECIFIED |
The access state is unspecified. |
ACTIVE |
The principal has an active, accepted access. |
PENDING |
The principal has been invited but has not accepted the invitation yet. |
EXPIRED |
The principal's invitation has expired. |
Tool Annotations
Tool annotations are sent to MCP clients to describe the basic risk of a given tool. Most clients treat these hints as untrusted, but they can be used to decide when a confirmation prompt might be sent to a user.
Along with the title string, the following boolean hints are defined as follows:
readOnlyHint: If true, the tool doesn't modify its environment. Default: false.destructiveHint: If true, then the tool can perform destructive actions. If false, then the tool can only perform additive actions. Default: true.idempotentHint: If true, then calling the tool repeatedly with the same arguments will have no additional effect on its environment. Default: false.openWorldHint: If true, then the tool can interact with an 'open world' of external entities. If false, then the tool can only interact with internal entities. For example, a web search tool would be open world, while a memory tool would not be open world.
Destructive Hint: ✅ | Idempotent Hint: ❌ | Read Only Hint: ❌ | Open World Hint: ❌