Skip to main content
Glama

gmail.users.settings.forwardingAddresses.create

Creates a Gmail forwarding address for a user, sending a verification message to the recipient when ownership proof is required and marking the resource accepted otherwise.

Instructions

Creates a forwarding address. If ownership verification is required, a message will be sent to the recipient and the resource's verification status will be set to pending; otherwise, the resource will be created with verification status set to accepted. For more information, see Manage email forwarding. This method is only available to service account clients that have been delegated domain-wide authority [HTTP POST] — creates or triggers a change; refused under --readonly safety profiles. Returns the API's response resource as JSON — request body is a JSON ForwardingAddress object accepting forwardingEmail, verificationStatus; pass it via params or whole via body_file Siblings over the same resource: delete, get, list.

Input Schema

NameRequiredDescriptionDefault
queryNoExtra KEY=VALUE query pairs for endpoints whose parameters Discovery does not describe.
paramsNoParameter map merged into the request; typed parameters win.
userIdYes[URL path segment] User's email address. The special value "me" can be used to indicate the authenticated user.me
dry_runNoReturn the request that would be sent, without sending it.
body_fileNoRead the request body from this file ('-' for stdin) instead of building one from the parameters. The body is a JSON ForwardingAddress object.
request_bodyNoRequest body of type ForwardingAddress: pass it via `params` (merged into the built body) or whole via `body_file`.

Output Schema

NameRequiredDescriptionDefault
forwardingEmailNo
verificationStatusNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed2 schema fields changed
    • changedInput schema / properties / body_file / description
      Previous value: -"Read the request body from this file ('-' for stdin) instead of building one from the parameters."New value: +"Read the request body from this file ('-' for stdin) instead of building one from the parameters. The body is a JSON ForwardingAddress object."
    • addedInput schema / properties / request_body
      Added value: +{
      +  "description": "Request body of type ForwardingAddress: pass it via `params` (merged into the built body) or whole via `body_file`.",
      +  "properties": {
      +    "forwardingEmail": {
      +      "type": "string"
      +    },
      +    "verificationStatus": {
      +      "enum": [
      +        "verificationStatusUnspecified",
      +        "accepted",
      +        "pending"
      +      ],
      +      "type": "string"
      +    }
      +  },
      +  "type": "object"
      +}
  2. Changed3 schema fields changed
    • addedInput schema / properties / userId / default
      Added value: +"me"
    • changedInput schema / properties / userId / description
      Previous value: -"User's email address. The special value \"me\" can be used to indicate the authenticated user."New value: +"[URL path segment] User's email address. The special value \"me\" can be used to indicate the authenticated user."
    • changedOutput schema / (root)
      Previous value: -nullNew value: +{
      +  "properties": {
      +    "forwardingEmail": {
      +      "type": "string"
      +    },
      +    "verificationStatus": {
      +      "enum": [
      +        "verificationStatusUnspecified",
      +        "accepted",
      +        "pending"
      +      ],
      +      "type": "string"
      +    }
      +  },
      +  "type": "object"
      +}
  3. First observed

TDQS

A4.4/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full burden and does so well: it discloses the ownership-verification side effect (a message is sent to the recipient), the resulting status transitions (pending vs accepted), that it is an HTTP POST mutation, and the service-account/delegation prerequisite.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loads purpose and verification behavior, then prerequisites, then technical body details and sibling orientation. Dense but every sentence contributes; slightly long with minor redundancy around the body shape already covered by the schema.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a mutation tool with no annotations and an output schema that handles return values, the description covers side effects, status outcomes, auth prerequisites, and body wiring. Nothing an agent needs to invoke it correctly is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the schema already documents userId, forwardingEmail, verificationStatus, params, and body_file. The description restates the body fields and the params-vs-body_file routing but adds no format constraints or edge cases beyond structured fields.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('Creates a forwarding address') and names the sibling operations over the same resource (delete, get, list), so an agent can distinguish it without opening other schemas.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Provides critical usage constraints: only available to service-account clients with domain-wide delegation, and refused under --readonly safety profiles. It names the sibling alternatives (delete/get/list) for orientation but does not explicitly spell out when to prefer create over them, keeping it just below a 5.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Deploy Server

Other Tools