MCP Tools Reference: ces.googleapis.com

Tool: update_deployment

Updates the specified deployment. Make sure to always pass an update mask in the input.

The following sample demonstrate how to use curl to invoke the update_deployment MCP tool.

Curl Request
                  
curl --location 'https://ces.googleapis.com/mcp' \
--header 'content-type: application/json' \
--header 'accept: application/json, text/event-stream' \
--data '{
  "method": "tools/call",
  "params": {
    "name": "update_deployment",
    "arguments": {
      // provide these details according to the tool's MCP specification
    }
  },
  "jsonrpc": "2.0",
  "id": 1
}'
                

Input Schema

Request message for AgentService.UpdateDeployment.

UpdateDeploymentRequest

JSON representation
{
  "deployment": {
    object (Deployment)
  },
  "updateMask": string
}
Fields
deployment

object (Deployment)

Required. The deployment to update.

updateMask

string (FieldMask format)

Optional. The list of fields to update.

This is a comma-separated list of fully qualified names of fields. Example: "user.displayName,photo".

Deployment

JSON representation
{
  "name": string,
  "displayName": string,
  "appVersion": string,
  "channelProfile": {
    object (ChannelProfile)
  },
  "createTime": string,
  "updateTime": string,
  "etag": string,
  "experimentConfig": {
    object (ExperimentConfig)
  }
}
Fields
name

string

Identifier. The resource name of the deployment. Format: projects/{project}/locations/{location}/apps/{app}/deployments/{deployment}

displayName

string

Required. Display name of the deployment.

appVersion

string

Optional. The resource name of the app version to deploy. Format: projects/{project}/locations/{location}/apps/{app}/versions/{version} Use projects/{project}/locations/{location}/apps/{app}/versions/- to use the draft app.

channelProfile

object (ChannelProfile)

Required. The channel profile used in the deployment.

createTime

string (Timestamp format)

Output only. Timestamp when this deployment was created.

Uses RFC 3339, where generated output will always be Z-normalized and use 0, 3, 6 or 9 fractional digits. Offsets other than "Z" are also accepted. Examples: "2014-10-02T15:01:23Z", "2014-10-02T15:01:23.045123456Z" or "2014-10-02T15:01:23+05:30".

updateTime

string (Timestamp format)

Output only. Timestamp when this deployment was last updated.

Uses RFC 3339, where generated output will always be Z-normalized and use 0, 3, 6 or 9 fractional digits. Offsets other than "Z" are also accepted. Examples: "2014-10-02T15:01:23Z", "2014-10-02T15:01:23.045123456Z" or "2014-10-02T15:01:23+05:30".

etag

string

Output only. Etag used to ensure the object hasn't changed during a read-modify-write operation. If the etag is empty, the update will overwrite any concurrent changes.

experimentConfig

object (ExperimentConfig)

Optional. Experiment configuration for the deployment.

ChannelProfile

JSON representation
{
  "profileId": string,
  "channelType": enum (ChannelType),
  "personaProperty": {
    object (PersonaProperty)
  },
  "disableDtmf": boolean,
  "disableBargeInControl": boolean,
  "webWidgetConfig": {
    object (WebWidgetConfig)
  },
  "noiseSuppressionLevel": string
}
Fields
profileId

string

Optional. The unique identifier of the channel profile.

channelType

enum (ChannelType)

Optional. The type of the channel profile.

personaProperty

object (PersonaProperty)

Optional. The persona property of the channel profile.

disableDtmf

boolean

Optional. Whether to disable DTMF (dual-tone multi-frequency).

disableBargeInControl

boolean

Optional. Whether to disable user barge-in control in the conversation. - true: User interruptions are disabled while the agent is speaking. - false: The agent retains automatic control over when the user can interrupt.

webWidgetConfig

object (WebWidgetConfig)

Optional. The configuration for the web widget.

noiseSuppressionLevel

string

Optional. The noise suppression level of the channel profile. Available values are "low", "moderate", "high", "very_high".

PersonaProperty

JSON representation
{
  "persona": enum (Persona)
}
Fields
persona

enum (Persona)

Optional. The persona of the channel.

WebWidgetConfig

JSON representation
{
  "modality": enum (Modality),
  "theme": enum (Theme),
  "webWidgetTitle": string,
  "securitySettings": {
    object (SecuritySettings)
  }
}
Fields
modality

enum (Modality)

Optional. The modality of the web widget.

theme

enum (Theme)

Optional. The theme of the web widget.

webWidgetTitle

string

Optional. The title of the web widget.

securitySettings

object (SecuritySettings)

Optional. The security settings of the web widget.

SecuritySettings

JSON representation
{
  "enablePublicAccess": boolean,
  "enableOriginCheck": boolean,
  "allowedOrigins": [
    string
  ],
  "enableRecaptcha": boolean
}
Fields
enablePublicAccess

boolean

Optional. Indicates whether public access to the web widget is enabled. If true, the web widget will be publicly accessible. If false, the web widget must be integrated with your own authentication and authorization system to return valid credentials for accessing the CES agent.

enableOriginCheck

boolean

Optional. Indicates whether origin check for the web widget is enabled. If true, the web widget will check the origin of the website that loads the web widget and only allow it to be loaded in the same origin or any of the allowed origins.

allowedOrigins[]

string

Optional. The origins that are allowed to host the web widget. An origin is defined by RFC 6454. If empty, all origins are allowed. A maximum of 100 origins is allowed. Example: "https://example.com"

enableRecaptcha

boolean

Optional. Indicates whether reCAPTCHA verification for the web widget is enabled.

Timestamp

JSON representation
{
  "seconds": string,
  "nanos": integer
}
Fields
seconds

string (int64 format)

Represents seconds of UTC time since Unix epoch 1970-01-01T00:00:00Z. Must be between -62135596800 and 253402300799 inclusive (which corresponds to 0001-01-01T00:00:00Z to 9999-12-31T23:59:59Z).

nanos

integer

Non-negative fractions of a second at nanosecond resolution. This field is the nanosecond portion of the duration, not an alternative to seconds. Negative second values with fractions must still have non-negative nanos values that count forward in time. Must be between 0 and 999,999,999 inclusive.

ExperimentConfig

JSON representation
{
  "versionRelease": {
    object (VersionRelease)
  }
}
Fields
versionRelease

object (VersionRelease)

Optional. Version release for the experiment.

VersionRelease

JSON representation
{
  "state": enum (State),
  "trafficAllocations": [
    {
      object (TrafficAllocation)
    }
  ]
}
Fields
state

enum (State)

Optional. State of the version release.

trafficAllocations[]

object (TrafficAllocation)

Optional. Traffic allocations for the version release.

TrafficAllocation

JSON representation
{
  "id": string,
  "trafficPercentage": integer,
  "appVersion": string
}
Fields
id

string

Optional. Id of the traffic allocation. Free format string, up to 128 characters.

trafficPercentage

integer

Optional. Traffic percentage of the traffic allocation. Must be between 0 and 100.

appVersion

string

Optional. App version of the traffic allocation. Format: projects/{project}/locations/{location}/apps/{app}/versions/{version}

FieldMask

JSON representation
{
  "paths": [
    string
  ]
}
Fields
paths[]

string

The set of field mask paths.

ChannelType

The type of the channel profile.

Enums
UNKNOWN Unknown channel type.
WEB_UI Web UI channel.
API API channel.
TWILIO Twilio channel.
GOOGLE_TELEPHONY_PLATFORM Google Telephony Platform channel.
CONTACT_CENTER_AS_A_SERVICE Contact Center as a Service (CCaaS) channel.
FIVE9 Five9 channel.
CONTACT_CENTER_INTEGRATION Third party contact center integration channel.

Persona

The persona of the channel.

Enums
UNKNOWN UNKNOWN persona.
CONCISE The agent keeps the responses concise and to the point
CHATTY The agent provides additional context, explanations, and details

Modality

Modality of the web widget.

Enums
MODALITY_UNSPECIFIED Unknown modality.
CHAT_AND_VOICE Widget supports both chat and voice input.
VOICE_ONLY Widget supports only voice input.
CHAT_ONLY Widget supports only chat input.
CHAT_VOICE_AND_VIDEO Widget supports chat, voice, and video input.

Theme

Theme of the web widget.

Enums
THEME_UNSPECIFIED Unknown theme.
LIGHT Light theme.
DARK Dark theme.

State

State of the experiment.

Enums
STATE_UNSPECIFIED Unspecified state.
PENDING Pending state. Experiment is pending and not valid.
RUNNING Running state. Experiment is running and valid.
DONE Done state. Experiment is done and no longer valid.
EXPIRED Expired state. Experiment is expired and no longer valid.

Output Schema

A deployment represents an immutable, queryable version of the app. It is used to deploy an app version with a specific channel profile.

Deployment

JSON representation
{
  "name": string,
  "displayName": string,
  "appVersion": string,
  "channelProfile": {
    object (ChannelProfile)
  },
  "createTime": string,
  "updateTime": string,
  "etag": string,
  "experimentConfig": {
    object (ExperimentConfig)
  }
}
Fields
name

string

Identifier. The resource name of the deployment. Format: projects/{project}/locations/{location}/apps/{app}/deployments/{deployment}

displayName

string

Required. Display name of the deployment.

appVersion

string

Optional. The resource name of the app version to deploy. Format: projects/{project}/locations/{location}/apps/{app}/versions/{version} Use projects/{project}/locations/{location}/apps/{app}/versions/- to use the draft app.

channelProfile

object (ChannelProfile)

Required. The channel profile used in the deployment.

createTime

string (Timestamp format)

Output only. Timestamp when this deployment was created.

Uses RFC 3339, where generated output will always be Z-normalized and use 0, 3, 6 or 9 fractional digits. Offsets other than "Z" are also accepted. Examples: "2014-10-02T15:01:23Z", "2014-10-02T15:01:23.045123456Z" or "2014-10-02T15:01:23+05:30".

updateTime

string (Timestamp format)

Output only. Timestamp when this deployment was last updated.

Uses RFC 3339, where generated output will always be Z-normalized and use 0, 3, 6 or 9 fractional digits. Offsets other than "Z" are also accepted. Examples: "2014-10-02T15:01:23Z", "2014-10-02T15:01:23.045123456Z" or "2014-10-02T15:01:23+05:30".

etag

string

Output only. Etag used to ensure the object hasn't changed during a read-modify-write operation. If the etag is empty, the update will overwrite any concurrent changes.

experimentConfig

object (ExperimentConfig)

Optional. Experiment configuration for the deployment.

ChannelProfile

JSON representation
{
  "profileId": string,
  "channelType": enum (ChannelType),
  "personaProperty": {
    object (PersonaProperty)
  },
  "disableDtmf": boolean,
  "disableBargeInControl": boolean,
  "webWidgetConfig": {
    object (WebWidgetConfig)
  },
  "noiseSuppressionLevel": string
}
Fields
profileId

string

Optional. The unique identifier of the channel profile.

channelType

enum (ChannelType)

Optional. The type of the channel profile.

personaProperty

object (PersonaProperty)

Optional. The persona property of the channel profile.

disableDtmf

boolean

Optional. Whether to disable DTMF (dual-tone multi-frequency).

disableBargeInControl

boolean

Optional. Whether to disable user barge-in control in the conversation. - true: User interruptions are disabled while the agent is speaking. - false: The agent retains automatic control over when the user can interrupt.

webWidgetConfig

object (WebWidgetConfig)

Optional. The configuration for the web widget.

noiseSuppressionLevel

string

Optional. The noise suppression level of the channel profile. Available values are "low", "moderate", "high", "very_high".

PersonaProperty

JSON representation
{
  "persona": enum (Persona)
}
Fields
persona

enum (Persona)

Optional. The persona of the channel.

WebWidgetConfig

JSON representation
{
  "modality": enum (Modality),
  "theme": enum (Theme),
  "webWidgetTitle": string,
  "securitySettings": {
    object (SecuritySettings)
  }
}
Fields
modality

enum (Modality)

Optional. The modality of the web widget.

theme

enum (Theme)

Optional. The theme of the web widget.

webWidgetTitle

string

Optional. The title of the web widget.

securitySettings

object (SecuritySettings)

Optional. The security settings of the web widget.

SecuritySettings

JSON representation
{
  "enablePublicAccess": boolean,
  "enableOriginCheck": boolean,
  "allowedOrigins": [
    string
  ],
  "enableRecaptcha": boolean
}
Fields
enablePublicAccess

boolean

Optional. Indicates whether public access to the web widget is enabled. If true, the web widget will be publicly accessible. If false, the web widget must be integrated with your own authentication and authorization system to return valid credentials for accessing the CES agent.

enableOriginCheck

boolean

Optional. Indicates whether origin check for the web widget is enabled. If true, the web widget will check the origin of the website that loads the web widget and only allow it to be loaded in the same origin or any of the allowed origins.

allowedOrigins[]

string

Optional. The origins that are allowed to host the web widget. An origin is defined by RFC 6454. If empty, all origins are allowed. A maximum of 100 origins is allowed. Example: "https://example.com"

enableRecaptcha

boolean

Optional. Indicates whether reCAPTCHA verification for the web widget is enabled.

Timestamp

JSON representation
{
  "seconds": string,
  "nanos": integer
}
Fields
seconds

string (int64 format)

Represents seconds of UTC time since Unix epoch 1970-01-01T00:00:00Z. Must be between -62135596800 and 253402300799 inclusive (which corresponds to 0001-01-01T00:00:00Z to 9999-12-31T23:59:59Z).

nanos

integer

Non-negative fractions of a second at nanosecond resolution. This field is the nanosecond portion of the duration, not an alternative to seconds. Negative second values with fractions must still have non-negative nanos values that count forward in time. Must be between 0 and 999,999,999 inclusive.

ExperimentConfig

JSON representation
{
  "versionRelease": {
    object (VersionRelease)
  }
}
Fields
versionRelease

object (VersionRelease)

Optional. Version release for the experiment.

VersionRelease

JSON representation
{
  "state": enum (State),
  "trafficAllocations": [
    {
      object (TrafficAllocation)
    }
  ]
}
Fields
state

enum (State)

Optional. State of the version release.

trafficAllocations[]

object (TrafficAllocation)

Optional. Traffic allocations for the version release.

TrafficAllocation

JSON representation
{
  "id": string,
  "trafficPercentage": integer,
  "appVersion": string
}
Fields
id

string

Optional. Id of the traffic allocation. Free format string, up to 128 characters.

trafficPercentage

integer

Optional. Traffic percentage of the traffic allocation. Must be between 0 and 100.

appVersion

string

Optional. App version of the traffic allocation. Format: projects/{project}/locations/{location}/apps/{app}/versions/{version}

ChannelType

The type of the channel profile.

Enums
UNKNOWN Unknown channel type.
WEB_UI Web UI channel.
API API channel.
TWILIO Twilio channel.
GOOGLE_TELEPHONY_PLATFORM Google Telephony Platform channel.
CONTACT_CENTER_AS_A_SERVICE Contact Center as a Service (CCaaS) channel.
FIVE9 Five9 channel.
CONTACT_CENTER_INTEGRATION Third party contact center integration channel.

Persona

The persona of the channel.

Enums
UNKNOWN UNKNOWN persona.
CONCISE The agent keeps the responses concise and to the point
CHATTY The agent provides additional context, explanations, and details

Modality

Modality of the web widget.

Enums
MODALITY_UNSPECIFIED Unknown modality.
CHAT_AND_VOICE Widget supports both chat and voice input.
VOICE_ONLY Widget supports only voice input.
CHAT_ONLY Widget supports only chat input.
CHAT_VOICE_AND_VIDEO Widget supports chat, voice, and video input.

Theme

Theme of the web widget.

Enums
THEME_UNSPECIFIED Unknown theme.
LIGHT Light theme.
DARK Dark theme.

State

State of the experiment.

Enums
STATE_UNSPECIFIED Unspecified state.
PENDING Pending state. Experiment is pending and not valid.
RUNNING Running state. Experiment is running and valid.
DONE Done state. Experiment is done and no longer valid.
EXPIRED Expired state. Experiment is expired and no longer valid.

Tool Annotations

Destructive Hint: ✅ | Idempotent Hint: ❌ | Read Only Hint: ❌ | Open World Hint: ❌