Product

AI and ML

Generative and classic AI APIs: Discovery Engine, Vertex AI, Dialogflow, Vision, Speech, Translate, Document AI and agent services.

Install

gai is one plugin in the google-services-mcps marketplace, and it runs one MCP server with the same name. Install it for Claude Code with the command below. For Codex, OpenCode or Antigravity, change --agent; the product id stays the same.

Install for Claude Code

npx google-services-mcps install --agent claude --plugin gai

What it manages

The server carries 6 generated API bindings and 47 gateway APIs. Gateway APIs are reached through api_search, api_describe and api_call, which every product with gateway APIs lists.

Generated API bindings
APIVersion
discoveryenginev1
languagev2
speechv1
texttospeechv1
videointelligencev1
visionv1
Gateway APIs
APIVersion
agentidentityv1
agentidentityv1alpha
agentidentityv1beta
agentidentitycredentialsv1
agentidentitycredentialsv1alpha
agentidentitycredentialsv1beta
agentregistryv1
agentregistryv1alpha
aiplatformv1
aiplatformv1beta1
cesv1
cesv1beta
contactcenteraiplatformv1alpha1
contactcenterinsightsv1
dialogflowv2
dialogflowv2beta1
dialogflowv3
dialogflowv3beta1
discoveryenginev1alpha
discoveryenginev1beta
documentaiv1
documentaiv1beta3
generativelanguagev1
generativelanguagev1beta
jobsv3
jobsv3p1beta1
jobsv4
languagev1
languagev1beta2
mlv1
notebooksv1
notebooksv2
recommendationenginev1beta1
retailv2
retailv2alpha
retailv2beta
speechv1p1beta1
texttospeechv1beta1
translatev2
translatev3
translatev3beta1
videointelligencev1beta2
videointelligencev1p1beta1
videointelligencev1p2beta1
videointelligencev1p3beta1
visionv1p1beta1
visionv1p2beta1

Tools

The plugin's server registers 364 tools: 170 reads, 132 writes, 61 destructive actions and 1 dynamic tools. A read never asks. A write is listed only when Allow write tools is on, and asks before it runs. A destructive action asks twice. A dynamic tool decides per call.

Every tool name starts with mcp__plugin_gai_gai__, so a call traces back to this product. The table lists the tools this server registers, with the safety class from the plugin's tool map.

Registered tools
ToolClassWhat it does
account_removewriteRemove a signed-in account
account_set_defaultwriteSet the default account
accounts_listreadSigned-in accounts
api_calldynamicCall an API method
api_describereadDescribe an API method
api_methodsreadgai: API methods
api_searchreadSearch API methods
auth_loginwriteSign in to Google
auth_setup_clientwriteSave the Google OAuth client
auth_statusreadSign-in status
dis_agents_a2a_tasks_push_notif_configs_getreaddiscoveryengine.projects.locations.collections.engines.assistants.agents.a2a.v1.tasks.pushNotificationConfigs.get
dis_engine_fetch_domain_verification_statusreaddiscoveryengine.projects.locations.collections.dataStores.siteSearchEngine.fetchDomainVerificationStatus
dis_engines_assistants_agents_a2a_tasks_getreaddiscoveryengine.projects.locations.collections.engines.assistants.agents.a2a.v1.tasks.get
dis_stores_completion_config_complete_querywritediscoveryengine.projects.locations.collections.dataStores.completionConfig.completeQuery
dis_stores_engine_batch_verify_target_siteswritediscoveryengine.projects.locations.collections.dataStores.siteSearchEngine.batchVerifyTargetSites
disc_colls_stores_engine_sites_batch_createwritediscoveryengine.projects.locations.collections.dataStores.siteSearchEngine.targetSites.batchCreate
disc_colls_stores_serving_configs_recommendwritediscoveryengine.projects.locations.collections.dataStores.servingConfigs.recommend
disc_engines_assistants_agents_a2a_get_cardreaddiscoveryengine.projects.locations.collections.engines.assistants.agents.a2a.v1.getCard
disco_assistants_agents_a2a_tasks_subscribereaddiscoveryengine.projects.locations.collections.engines.assistants.agents.a2a.v1.tasks.subscribe
disco_collections_data_stores_search_enginereaddiscoveryengine.projects.locations.collections.dataStores.getSiteSearchEngine
disco_colls_data_stores_engine_site_searchwritediscoveryengine.projects.locations.collections.dataStores.siteSearchEngine.enableAdvancedSiteSearch
disco_engines_serving_configs_stream_answerwritediscoveryengine.projects.locations.collections.engines.servingConfigs.streamAnswer
discov_a2a_tasks_push_notif_configs_createwritediscoveryengine.projects.locations.collections.engines.assistants.agents.a2a.v1.tasks.pushNotificationConfigs.create
discov_a2a_tasks_push_notif_configs_deletedestructivediscoveryengine.projects.locations.collections.engines.assistants.agents.a2a.v1.tasks.pushNotificationConfigs.delete
discov_assistants_agents_a2a_message_streamwritediscoveryengine.projects.locations.collections.engines.assistants.agents.a2a.v1.message.stream
discov_colls_data_stores_engine_site_searchwritediscoveryengine.projects.locations.collections.dataStores.siteSearchEngine.disableAdvancedSiteSearch
discov_colls_stores_conversations_conversewritediscoveryengine.projects.locations.collections.dataStores.conversations.converse
discov_colls_stores_engine_sitemaps_createwritediscoveryengine.projects.locations.collections.dataStores.siteSearchEngine.sitemaps.create
discov_colls_stores_engine_sitemaps_deletedestructivediscoveryengine.projects.locations.collections.dataStores.siteSearchEngine.sitemaps.delete
discov_colls_stores_serving_configs_answerreaddiscoveryengine.projects.locations.collections.dataStores.servingConfigs.answer
discov_colls_stores_serving_configs_createwritediscoveryengine.projects.locations.collections.dataStores.servingConfigs.create
discov_colls_stores_serving_configs_deletedestructivediscoveryengine.projects.locations.collections.dataStores.servingConfigs.delete
discov_colls_stores_serving_configs_searchreaddiscoveryengine.projects.locations.collections.dataStores.servingConfigs.search
discov_engine_disable_advanced_site_searchwritediscoveryengine.projects.locations.dataStores.siteSearchEngine.disableAdvancedSiteSearch
discov_engines_serving_configs_search_litereaddiscoveryengine.projects.locations.collections.engines.servingConfigs.searchLite
discov_stores_branches_batch_get_docs_metareaddiscoveryengine.projects.locations.collections.dataStores.branches.batchGetDocumentsMetadata
discov_stores_serving_configs_stream_answerwritediscoveryengine.projects.locations.collections.dataStores.servingConfigs.streamAnswer
discov_suggestion_deny_list_entries_importwritediscoveryengine.projects.locations.dataStores.suggestionDenyListEntries.import
discover_assistants_agents_a2a_message_senddestructivediscoveryengine.projects.locations.collections.engines.assistants.agents.a2a.v1.message.send
discover_assistants_agents_a2a_tasks_canceldestructivediscoveryengine.projects.locations.collections.engines.assistants.agents.a2a.v1.tasks.cancel
discover_engine_enable_advanced_site_searchwritediscoveryengine.projects.locations.dataStores.siteSearchEngine.enableAdvancedSiteSearch
discover_stores_serving_configs_search_litereaddiscoveryengine.projects.locations.collections.dataStores.servingConfigs.searchLite
discover_suggestion_deny_list_entries_purgedestructivediscoveryengine.projects.locations.dataStores.suggestionDenyListEntries.purge
discovery_a2a_tasks_push_notif_configs_listreaddiscoveryengine.projects.locations.collections.engines.assistants.agents.a2a.v1.tasks.pushNotificationConfigs.list
discovery_collections_engines_controls_listreaddiscoveryengine.projects.locations.collections.engines.controls.list
discovery_collections_engines_sessions_listreaddiscoveryengine.projects.locations.collections.engines.sessions.list
discovery_collections_update_data_connectorwritediscoveryengine.projects.locations.collections.updateDataConnector
discovery_colls_data_stores_controls_createwritediscoveryengine.projects.locations.collections.dataStores.controls.create
discovery_colls_data_stores_controls_deletedestructivediscoveryengine.projects.locations.collections.dataStores.controls.delete
discovery_colls_data_stores_engine_ops_listreaddiscoveryengine.projects.locations.collections.dataStores.siteSearchEngine.operations.list
discovery_colls_data_stores_models_ops_listreaddiscoveryengine.projects.locations.collections.dataStores.models.operations.list
discovery_colls_data_stores_schemas_ops_getreaddiscoveryengine.projects.locations.collections.dataStores.schemas.operations.get
discovery_colls_data_stores_sessions_createwritediscoveryengine.projects.locations.collections.dataStores.sessions.create
discovery_colls_data_stores_sessions_deletedestructivediscoveryengine.projects.locations.collections.dataStores.sessions.delete
discovery_colls_engines_conversations_patchwritediscoveryengine.projects.locations.collections.engines.conversations.patch
discovery_colls_engines_serving_configs_getreaddiscoveryengine.projects.locations.collections.engines.servingConfigs.get
discovery_colls_stores_branches_docs_createwritediscoveryengine.projects.locations.collections.dataStores.branches.documents.create
discovery_colls_stores_branches_docs_deletedestructivediscoveryengine.projects.locations.collections.dataStores.branches.documents.delete
discovery_colls_stores_branches_docs_importwritediscoveryengine.projects.locations.collections.dataStores.branches.documents.import
discovery_colls_stores_conversations_createwritediscoveryengine.projects.locations.collections.dataStores.conversations.create
discovery_colls_stores_conversations_deletedestructivediscoveryengine.projects.locations.collections.dataStores.conversations.delete
discovery_colls_stores_engine_sites_ops_getreaddiscoveryengine.projects.locations.collections.dataStores.siteSearchEngine.targetSites.operations.get
discovery_colls_stores_serving_configs_listreaddiscoveryengine.projects.locations.collections.dataStores.servingConfigs.list
discovery_colls_stores_sessions_answers_getreaddiscoveryengine.projects.locations.collections.dataStores.sessions.answers.get
discovery_colls_stores_widget_configs_patchwritediscoveryengine.projects.locations.collections.dataStores.widgetConfigs.patch
discovery_data_stores_engine_sitemaps_fetchreaddiscoveryengine.projects.locations.dataStores.siteSearchEngine.sitemaps.fetch
discovery_data_stores_models_operations_getreaddiscoveryengine.projects.locations.dataStores.models.operations.get
discovery_data_stores_serving_configs_patchwritediscoveryengine.projects.locations.dataStores.servingConfigs.patch
discovery_engines_assistants_agents_ops_getreaddiscoveryengine.projects.locations.collections.engines.assistants.agents.operations.get
discovery_engines_serving_configs_recommendwritediscoveryengine.projects.locations.collections.engines.servingConfigs.recommend
discovery_projects_locations_get_acl_configreaddiscoveryengine.projects.locations.getAclConfig
discovery_projects_locations_operations_getreaddiscoveryengine.projects.locations.operations.get
discovery_stores_batch_update_user_licenseswritediscoveryengine.projects.locations.userStores.batchUpdateUserLicenses
discoverye_branches_batch_get_docs_metareaddiscoveryengine.projects.locations.dataStores.branches.batchGetDocumentsMetadata
discoverye_cmek_configs_deletedestructivediscoveryengine.projects.locations.cmekConfigs.delete
discoverye_cmek_configs_getreaddiscoveryengine.projects.locations.cmekConfigs.get
discoverye_cmek_configs_listreaddiscoveryengine.projects.locations.cmekConfigs.list
discoverye_cmek_configs_patchwritediscoveryengine.projects.locations.cmekConfigs.patch
discoverye_col_dat_sto_sug_den_lis_ent_impowritediscoveryengine.projects.locations.collections.dataStores.suggestionDenyListEntries.import
discoverye_col_dat_sto_sug_den_lis_ent_purgdestructivediscoveryengine.projects.locations.collections.dataStores.suggestionDenyListEntries.purge
discoverye_collections_data_connector_mcpdestructivediscoveryengine.projects.locations.collections.dataConnector.mcp
discoverye_collections_data_stores_createwritediscoveryengine.projects.locations.collections.dataStores.create
discoverye_collections_data_stores_deletedestructivediscoveryengine.projects.locations.collections.dataStores.delete
discoverye_collections_data_stores_getreaddiscoveryengine.projects.locations.collections.dataStores.get
discoverye_collections_data_stores_listreaddiscoveryengine.projects.locations.collections.dataStores.list
discoverye_collections_data_stores_patchwritediscoveryengine.projects.locations.collections.dataStores.patch
discoverye_collections_deletedestructivediscoveryengine.projects.locations.collections.delete
discoverye_collections_engines_controls_getreaddiscoveryengine.projects.locations.collections.engines.controls.get
discoverye_collections_engines_createwritediscoveryengine.projects.locations.collections.engines.create
discoverye_collections_engines_deletedestructivediscoveryengine.projects.locations.collections.engines.delete
discoverye_collections_engines_getreaddiscoveryengine.projects.locations.collections.engines.get
discoverye_collections_engines_listreaddiscoveryengine.projects.locations.collections.engines.list
discoverye_collections_engines_patchwritediscoveryengine.projects.locations.collections.engines.patch
discoverye_collections_engines_sessions_getreaddiscoveryengine.projects.locations.collections.engines.sessions.get
discoverye_collections_get_data_connectorreaddiscoveryengine.projects.locations.collections.getDataConnector
discoverye_collections_get_iam_policyreaddiscoveryengine.projects.locations.collections.getIamPolicy
discoverye_collections_operations_getreaddiscoveryengine.projects.locations.collections.operations.get
discoverye_collections_operations_listreaddiscoveryengine.projects.locations.collections.operations.list
discoverye_collections_set_iam_policydestructivediscoveryengine.projects.locations.collections.setIamPolicy
discoverye_colls_data_connector_ops_getreaddiscoveryengine.projects.locations.collections.dataConnector.operations.get
discoverye_colls_data_connector_ops_listreaddiscoveryengine.projects.locations.collections.dataConnector.operations.list
discoverye_colls_data_stores_complete_queryreaddiscoveryengine.projects.locations.collections.dataStores.completeQuery
discoverye_colls_data_stores_controls_getreaddiscoveryengine.projects.locations.collections.dataStores.controls.get
discoverye_colls_data_stores_controls_listreaddiscoveryengine.projects.locations.collections.dataStores.controls.list
discoverye_colls_data_stores_controls_patchwritediscoveryengine.projects.locations.collections.dataStores.controls.patch
discoverye_colls_data_stores_engine_ops_getreaddiscoveryengine.projects.locations.collections.dataStores.siteSearchEngine.operations.get
discoverye_colls_data_stores_get_iam_policyreaddiscoveryengine.projects.locations.collections.dataStores.getIamPolicy
discoverye_colls_data_stores_models_listreaddiscoveryengine.projects.locations.collections.dataStores.customModels.list
discoverye_colls_data_stores_models_ops_getreaddiscoveryengine.projects.locations.collections.dataStores.models.operations.get
discoverye_colls_data_stores_ops_getreaddiscoveryengine.projects.locations.collections.dataStores.operations.get
discoverye_colls_data_stores_ops_listreaddiscoveryengine.projects.locations.collections.dataStores.operations.list
discoverye_colls_data_stores_schemas_createwritediscoveryengine.projects.locations.collections.dataStores.schemas.create
discoverye_colls_data_stores_schemas_deletedestructivediscoveryengine.projects.locations.collections.dataStores.schemas.delete
discoverye_colls_data_stores_schemas_getreaddiscoveryengine.projects.locations.collections.dataStores.schemas.get
discoverye_colls_data_stores_schemas_listreaddiscoveryengine.projects.locations.collections.dataStores.schemas.list
discoverye_colls_data_stores_schemas_patchwritediscoveryengine.projects.locations.collections.dataStores.schemas.patch
discoverye_colls_data_stores_sessions_getreaddiscoveryengine.projects.locations.collections.dataStores.sessions.get
discoverye_colls_data_stores_sessions_listreaddiscoveryengine.projects.locations.collections.dataStores.sessions.list
discoverye_colls_data_stores_sessions_patchwritediscoveryengine.projects.locations.collections.dataStores.sessions.patch
discoverye_colls_data_stores_set_iam_policydestructivediscoveryengine.projects.locations.collections.dataStores.setIamPolicy
discoverye_colls_engines_assistants_createwritediscoveryengine.projects.locations.collections.engines.assistants.create
discoverye_colls_engines_assistants_deletedestructivediscoveryengine.projects.locations.collections.engines.assistants.delete
discoverye_colls_engines_assistants_getreaddiscoveryengine.projects.locations.collections.engines.assistants.get
discoverye_colls_engines_assistants_listreaddiscoveryengine.projects.locations.collections.engines.assistants.list
discoverye_colls_engines_assistants_patchwritediscoveryengine.projects.locations.collections.engines.assistants.patch
discoverye_colls_engines_controls_createwritediscoveryengine.projects.locations.collections.engines.controls.create
discoverye_colls_engines_controls_deletedestructivediscoveryengine.projects.locations.collections.engines.controls.delete
discoverye_colls_engines_controls_patchwritediscoveryengine.projects.locations.collections.engines.controls.patch
discoverye_colls_engines_conversations_getreaddiscoveryengine.projects.locations.collections.engines.conversations.get
discoverye_colls_engines_conversations_listreaddiscoveryengine.projects.locations.collections.engines.conversations.list
discoverye_colls_engines_get_iam_policyreaddiscoveryengine.projects.locations.collections.engines.getIamPolicy
discoverye_colls_engines_ops_canceldestructivediscoveryengine.projects.locations.collections.engines.operations.cancel
discoverye_colls_engines_ops_getreaddiscoveryengine.projects.locations.collections.engines.operations.get
discoverye_colls_engines_ops_listreaddiscoveryengine.projects.locations.collections.engines.operations.list
discoverye_colls_engines_sessions_createwritediscoveryengine.projects.locations.collections.engines.sessions.create
discoverye_colls_engines_sessions_deletedestructivediscoveryengine.projects.locations.collections.engines.sessions.delete
discoverye_colls_engines_sessions_patchwritediscoveryengine.projects.locations.collections.engines.sessions.patch
discoverye_colls_engines_set_iam_policydestructivediscoveryengine.projects.locations.collections.engines.setIamPolicy
discoverye_colls_engines_widget_configs_getreaddiscoveryengine.projects.locations.collections.engines.widgetConfigs.get
discoverye_colls_stores_branches_docs_getreaddiscoveryengine.projects.locations.collections.dataStores.branches.documents.get
discoverye_colls_stores_branches_docs_listreaddiscoveryengine.projects.locations.collections.dataStores.branches.documents.list
discoverye_colls_stores_branches_docs_patchwritediscoveryengine.projects.locations.collections.dataStores.branches.documents.patch
discoverye_colls_stores_branches_docs_purgedestructivediscoveryengine.projects.locations.collections.dataStores.branches.documents.purge
discoverye_colls_stores_branches_ops_canceldestructivediscoveryengine.projects.locations.collections.dataStores.branches.operations.cancel
discoverye_colls_stores_branches_ops_getreaddiscoveryengine.projects.locations.collections.dataStores.branches.operations.get
discoverye_colls_stores_branches_ops_listreaddiscoveryengine.projects.locations.collections.dataStores.branches.operations.list
discoverye_colls_stores_conversations_getreaddiscoveryengine.projects.locations.collections.dataStores.conversations.get
discoverye_colls_stores_conversations_listreaddiscoveryengine.projects.locations.collections.dataStores.conversations.list
discoverye_colls_stores_conversations_patchwritediscoveryengine.projects.locations.collections.dataStores.conversations.patch
discoverye_colls_stores_engine_recrawl_uriswritediscoveryengine.projects.locations.collections.dataStores.siteSearchEngine.recrawlUris
discoverye_colls_stores_engine_sites_createwritediscoveryengine.projects.locations.collections.dataStores.siteSearchEngine.targetSites.create
discoverye_colls_stores_engine_sites_deletedestructivediscoveryengine.projects.locations.collections.dataStores.siteSearchEngine.targetSites.delete
discoverye_colls_stores_engine_sites_getreaddiscoveryengine.projects.locations.collections.dataStores.siteSearchEngine.targetSites.get
discoverye_colls_stores_engine_sites_listreaddiscoveryengine.projects.locations.collections.dataStores.siteSearchEngine.targetSites.list
discoverye_colls_stores_engine_sites_patchwritediscoveryengine.projects.locations.collections.dataStores.siteSearchEngine.targetSites.patch
discoverye_colls_stores_schemas_ops_listreaddiscoveryengine.projects.locations.collections.dataStores.schemas.operations.list
discoverye_colls_stores_serving_configs_getreaddiscoveryengine.projects.locations.collections.dataStores.servingConfigs.get
discoverye_colls_stores_suggestions_importwritediscoveryengine.projects.locations.collections.dataStores.completionSuggestions.import
discoverye_colls_stores_suggestions_purgedestructivediscoveryengine.projects.locations.collections.dataStores.completionSuggestions.purge
discoverye_colls_stores_train_custom_modelwritediscoveryengine.projects.locations.collections.dataStores.trainCustomModel
discoverye_colls_stores_user_events_collectwritediscoveryengine.projects.locations.collections.dataStores.userEvents.collect
discoverye_colls_stores_user_events_importwritediscoveryengine.projects.locations.collections.dataStores.userEvents.import
discoverye_colls_stores_user_events_purgedestructivediscoveryengine.projects.locations.collections.dataStores.userEvents.purge
discoverye_colls_stores_user_events_writewritediscoveryengine.projects.locations.collections.dataStores.userEvents.write
discoverye_colls_stores_widget_configs_getreaddiscoveryengine.projects.locations.collections.dataStores.widgetConfigs.get
discoverye_completion_config_complete_querywritediscoveryengine.projects.locations.dataStores.completionConfig.completeQuery
discoverye_data_stores_branches_docs_createwritediscoveryengine.projects.locations.dataStores.branches.documents.create
discoverye_data_stores_branches_docs_deletedestructivediscoveryengine.projects.locations.dataStores.branches.documents.delete
discoverye_data_stores_branches_docs_getreaddiscoveryengine.projects.locations.dataStores.branches.documents.get
discoverye_data_stores_branches_docs_importwritediscoveryengine.projects.locations.dataStores.branches.documents.import
discoverye_data_stores_branches_docs_listreaddiscoveryengine.projects.locations.dataStores.branches.documents.list
discoverye_data_stores_branches_docs_patchwritediscoveryengine.projects.locations.dataStores.branches.documents.patch
discoverye_data_stores_branches_docs_purgedestructivediscoveryengine.projects.locations.dataStores.branches.documents.purge
discoverye_data_stores_branches_ops_canceldestructivediscoveryengine.projects.locations.dataStores.branches.operations.cancel
discoverye_data_stores_branches_ops_getreaddiscoveryengine.projects.locations.dataStores.branches.operations.get
discoverye_data_stores_branches_ops_listreaddiscoveryengine.projects.locations.dataStores.branches.operations.list
discoverye_data_stores_complete_queryreaddiscoveryengine.projects.locations.dataStores.completeQuery
discoverye_data_stores_controls_createwritediscoveryengine.projects.locations.dataStores.controls.create
discoverye_data_stores_controls_deletedestructivediscoveryengine.projects.locations.dataStores.controls.delete
discoverye_data_stores_controls_getreaddiscoveryengine.projects.locations.dataStores.controls.get
discoverye_data_stores_controls_listreaddiscoveryengine.projects.locations.dataStores.controls.list
discoverye_data_stores_controls_patchwritediscoveryengine.projects.locations.dataStores.controls.patch
discoverye_data_stores_conversations_createwritediscoveryengine.projects.locations.dataStores.conversations.create
discoverye_data_stores_conversations_deletedestructivediscoveryengine.projects.locations.dataStores.conversations.delete
discoverye_data_stores_conversations_getreaddiscoveryengine.projects.locations.dataStores.conversations.get
discoverye_data_stores_conversations_listreaddiscoveryengine.projects.locations.dataStores.conversations.list
discoverye_data_stores_conversations_patchwritediscoveryengine.projects.locations.dataStores.conversations.patch
discoverye_data_stores_createwritediscoveryengine.projects.locations.dataStores.create
discoverye_data_stores_deletedestructivediscoveryengine.projects.locations.dataStores.delete
discoverye_data_stores_engine_recrawl_uriswritediscoveryengine.projects.locations.dataStores.siteSearchEngine.recrawlUris
discoverye_data_stores_engine_sites_createwritediscoveryengine.projects.locations.dataStores.siteSearchEngine.targetSites.create
discoverye_data_stores_engine_sites_deletedestructivediscoveryengine.projects.locations.dataStores.siteSearchEngine.targetSites.delete
discoverye_data_stores_engine_sites_getreaddiscoveryengine.projects.locations.dataStores.siteSearchEngine.targetSites.get
discoverye_data_stores_engine_sites_listreaddiscoveryengine.projects.locations.dataStores.siteSearchEngine.targetSites.list
discoverye_data_stores_engine_sites_patchwritediscoveryengine.projects.locations.dataStores.siteSearchEngine.targetSites.patch
discoverye_data_stores_getreaddiscoveryengine.projects.locations.dataStores.get
discoverye_data_stores_get_iam_policyreaddiscoveryengine.projects.locations.dataStores.getIamPolicy
discoverye_data_stores_listreaddiscoveryengine.projects.locations.dataStores.list
discoverye_data_stores_models_ops_listreaddiscoveryengine.projects.locations.dataStores.models.operations.list
discoverye_data_stores_operations_getreaddiscoveryengine.projects.locations.dataStores.operations.get
discoverye_data_stores_operations_listreaddiscoveryengine.projects.locations.dataStores.operations.list
discoverye_data_stores_patchwritediscoveryengine.projects.locations.dataStores.patch
discoverye_data_stores_schemas_createwritediscoveryengine.projects.locations.dataStores.schemas.create
discoverye_data_stores_schemas_deletedestructivediscoveryengine.projects.locations.dataStores.schemas.delete
discoverye_data_stores_schemas_getreaddiscoveryengine.projects.locations.dataStores.schemas.get
discoverye_data_stores_schemas_listreaddiscoveryengine.projects.locations.dataStores.schemas.list
discoverye_data_stores_schemas_patchwritediscoveryengine.projects.locations.dataStores.schemas.patch
discoverye_data_stores_serving_configs_getreaddiscoveryengine.projects.locations.dataStores.servingConfigs.get
discoverye_data_stores_serving_configs_listreaddiscoveryengine.projects.locations.dataStores.servingConfigs.list
discoverye_data_stores_sessions_answers_getreaddiscoveryengine.projects.locations.dataStores.sessions.answers.get
discoverye_data_stores_sessions_createwritediscoveryengine.projects.locations.dataStores.sessions.create
discoverye_data_stores_sessions_deletedestructivediscoveryengine.projects.locations.dataStores.sessions.delete
discoverye_data_stores_sessions_getreaddiscoveryengine.projects.locations.dataStores.sessions.get
discoverye_data_stores_sessions_listreaddiscoveryengine.projects.locations.dataStores.sessions.list
discoverye_data_stores_sessions_patchwritediscoveryengine.projects.locations.dataStores.sessions.patch
discoverye_data_stores_set_iam_policydestructivediscoveryengine.projects.locations.dataStores.setIamPolicy
discoverye_data_stores_suggestions_importwritediscoveryengine.projects.locations.dataStores.completionSuggestions.import
discoverye_data_stores_suggestions_purgedestructivediscoveryengine.projects.locations.dataStores.completionSuggestions.purge
discoverye_data_stores_user_events_collectwritediscoveryengine.projects.locations.dataStores.userEvents.collect
discoverye_data_stores_user_events_importwritediscoveryengine.projects.locations.dataStores.userEvents.import
discoverye_data_stores_user_events_purgedestructivediscoveryengine.projects.locations.dataStores.userEvents.purge
discoverye_data_stores_user_events_writewritediscoveryengine.projects.locations.dataStores.userEvents.write
discoverye_data_stores_widget_configs_getreaddiscoveryengine.projects.locations.dataStores.widgetConfigs.get
discoverye_data_stores_widget_configs_patchwritediscoveryengine.projects.locations.dataStores.widgetConfigs.patch
discoverye_distribute_license_configwritediscoveryengine.billingAccounts.billingAccountLicenseConfigs.distributeLicenseConfig
discoverye_engines_assistants_stream_assistwritediscoveryengine.projects.locations.collections.engines.assistants.streamAssist
discoverye_engines_conversations_conversewritediscoveryengine.projects.locations.collections.engines.conversations.converse
discoverye_engines_conversations_createwritediscoveryengine.projects.locations.collections.engines.conversations.create
discoverye_engines_conversations_deletedestructivediscoveryengine.projects.locations.collections.engines.conversations.delete
discoverye_engines_serving_configs_answerreaddiscoveryengine.projects.locations.collections.engines.servingConfigs.answer
discoverye_engines_serving_configs_createwritediscoveryengine.projects.locations.collections.engines.servingConfigs.create
discoverye_engines_serving_configs_deletedestructivediscoveryengine.projects.locations.collections.engines.servingConfigs.delete
discoverye_engines_serving_configs_listreaddiscoveryengine.projects.locations.collections.engines.servingConfigs.list
discoverye_engines_serving_configs_patchwritediscoveryengine.projects.locations.collections.engines.servingConfigs.patch
discoverye_engines_serving_configs_searchreaddiscoveryengine.projects.locations.collections.engines.servingConfigs.search
discoverye_engines_sessions_answers_getreaddiscoveryengine.projects.locations.collections.engines.sessions.answers.get
discoverye_engines_widget_configs_patchwritediscoveryengine.projects.locations.collections.engines.widgetConfigs.patch
discoverye_get_cmek_configreaddiscoveryengine.projects.locations.getCmekConfig
discoverye_grounding_configs_checkreaddiscoveryengine.projects.locations.groundingConfigs.check
discoverye_identity_mapping_stores_createwritediscoveryengine.projects.locations.identityMappingStores.create
discoverye_identity_mapping_stores_deletedestructivediscoveryengine.projects.locations.identityMappingStores.delete
discoverye_identity_mapping_stores_getreaddiscoveryengine.projects.locations.identityMappingStores.get
discoverye_identity_mapping_stores_listreaddiscoveryengine.projects.locations.identityMappingStores.list
discoverye_identity_mapping_stores_ops_getreaddiscoveryengine.projects.locations.identityMappingStores.operations.get
discoverye_identity_mapping_stores_ops_listreaddiscoveryengine.projects.locations.identityMappingStores.operations.list
discoverye_license_configs_createwritediscoveryengine.projects.locations.licenseConfigs.create
discoverye_license_configs_getreaddiscoveryengine.projects.locations.licenseConfigs.get
discoverye_license_configs_listreaddiscoveryengine.projects.locations.licenseConfigs.list
discoverye_license_configs_patchwritediscoveryengine.projects.locations.licenseConfigs.patch
discoverye_operations_listreaddiscoveryengine.projects.locations.operations.list
discoverye_podcasts_operations_getreaddiscoveryengine.projects.locations.podcasts.operations.get
discoverye_pro_loc_col_eng_com_con_com_querwritediscoveryengine.projects.locations.collections.engines.completionConfig.completeQuery
discoverye_projects_locations_provisionwritediscoveryengine.projects.locations.provision
discoverye_projects_operations_canceldestructivediscoveryengine.projects.operations.cancel
discoverye_projects_operations_getreaddiscoveryengine.projects.operations.get
discoverye_projects_operations_listreaddiscoveryengine.projects.operations.list
discoverye_projects_provisionwritediscoveryengine.projects.provision
discoverye_ranking_configs_rankwritediscoveryengine.projects.locations.rankingConfigs.rank
discoverye_retract_license_configwritediscoveryengine.billingAccounts.billingAccountLicenseConfigs.retractLicenseConfig
discoverye_serving_configs_search_litereaddiscoveryengine.projects.locations.dataStores.servingConfigs.searchLite
discoverye_serving_configs_stream_answerwritediscoveryengine.projects.locations.dataStores.servingConfigs.streamAnswer
discoverye_set_up_data_connectorwritediscoveryengine.projects.locations.setUpDataConnector
discoverye_set_up_data_connector_v2writediscoveryengine.projects.locations.setUpDataConnectorV2
discoverye_stores_conversations_conversewritediscoveryengine.projects.locations.dataStores.conversations.converse
discoverye_stores_engine_sitemaps_createwritediscoveryengine.projects.locations.dataStores.siteSearchEngine.sitemaps.create
discoverye_stores_engine_sitemaps_deletedestructivediscoveryengine.projects.locations.dataStores.siteSearchEngine.sitemaps.delete
discoverye_stores_engine_sitemaps_fetchreaddiscoveryengine.projects.locations.collections.dataStores.siteSearchEngine.sitemaps.fetch
discoverye_stores_engine_sites_batch_createwritediscoveryengine.projects.locations.dataStores.siteSearchEngine.targetSites.batchCreate
discoverye_stores_engine_sites_ops_listreaddiscoveryengine.projects.locations.collections.dataStores.siteSearchEngine.targetSites.operations.list
discoverye_stores_get_site_search_enginereaddiscoveryengine.projects.locations.dataStores.getSiteSearchEngine
discoverye_stores_import_identity_mappingswritediscoveryengine.projects.locations.identityMappingStores.importIdentityMappings
discoverye_stores_list_identity_mappingsreaddiscoveryengine.projects.locations.identityMappingStores.listIdentityMappings
discoverye_stores_purge_identity_mappingswritediscoveryengine.projects.locations.identityMappingStores.purgeIdentityMappings
discoverye_stores_serving_configs_answerreaddiscoveryengine.projects.locations.dataStores.servingConfigs.answer
discoverye_stores_serving_configs_createwritediscoveryengine.projects.locations.dataStores.servingConfigs.create
discoverye_stores_serving_configs_deletedestructivediscoveryengine.projects.locations.dataStores.servingConfigs.delete
discoverye_stores_serving_configs_patchwritediscoveryengine.projects.locations.collections.dataStores.servingConfigs.patch
discoverye_stores_serving_configs_recommendwritediscoveryengine.projects.locations.dataStores.servingConfigs.recommend
discoverye_stores_serving_configs_searchreaddiscoveryengine.projects.locations.dataStores.servingConfigs.search
discoverye_update_acl_configwritediscoveryengine.projects.locations.updateAclConfig
discoverye_update_cmek_configwritediscoveryengine.projects.locations.updateCmekConfig
discoverye_user_events_collectwritediscoveryengine.projects.locations.userEvents.collect
discoverye_user_events_importwritediscoveryengine.projects.locations.userEvents.import
discoverye_user_events_writewritediscoveryengine.projects.locations.userEvents.write
discoverye_user_stores_getreaddiscoveryengine.projects.locations.userStores.get
discoverye_user_stores_patchwritediscoveryengine.projects.locations.userStores.patch
discoverye_user_stores_stats_listreaddiscoveryengine.projects.locations.userStores.licenseConfigsUsageStats.list
discoverye_user_stores_user_licenses_listreaddiscoveryengine.projects.locations.userStores.userLicenses.list
healthreadServer health
language_documents_analyze_entitiesreadlanguage.documents.analyzeEntities
language_documents_analyze_sentimentreadlanguage.documents.analyzeSentiment
language_documents_annotate_textreadlanguage.documents.annotateText
language_documents_classify_textreadlanguage.documents.classifyText
language_documents_moderate_textreadlanguage.documents.moderateText
speech_custom_classes_createwritespeech.projects.locations.customClasses.create
speech_custom_classes_deletedestructivespeech.projects.locations.customClasses.delete
speech_custom_classes_getreadspeech.projects.locations.customClasses.get
speech_custom_classes_listreadspeech.projects.locations.customClasses.list
speech_custom_classes_patchwritespeech.projects.locations.customClasses.patch
speech_operations_getreadspeech.operations.get
speech_operations_listreadspeech.operations.list
speech_phrase_sets_createwritespeech.projects.locations.phraseSets.create
speech_phrase_sets_deletedestructivespeech.projects.locations.phraseSets.delete
speech_projects_locations_phrase_sets_getreadspeech.projects.locations.phraseSets.get
speech_projects_locations_phrase_sets_listreadspeech.projects.locations.phraseSets.list
speech_projects_locations_phrase_sets_patchwritespeech.projects.locations.phraseSets.patch
speech_speech_longrunningrecognizewritespeech.speech.longrunningrecognize
speech_speech_recognizereadspeech.speech.recognize
texttospe_projects_locations_operations_getreadtexttospeech.projects.locations.operations.get
texttospee_operations_canceldestructivetexttospeech.operations.cancel
texttospee_operations_deletedestructivetexttospeech.operations.delete
texttospee_operations_listreadtexttospeech.projects.locations.operations.list
texttospee_synthesize_long_audiowritetexttospeech.projects.locations.synthesizeLongAudio
texttospee_text_synthesizereadtexttospeech.text.synthesize
texttospee_voices_listreadtexttospeech.voices.list
vertex_count_tokensreadCount the tokens of a Vertex AI prompt
vertex_embed_contentreadEmbed text with a Vertex AI model
vertex_generate_contentreadGenerate content with a Vertex AI model
videointe_projects_locations_operations_getreadvideointelligence.projects.locations.operations.get
videointel_operations_canceldestructivevideointelligence.projects.locations.operations.cancel
videointel_operations_deletedestructivevideointelligence.projects.locations.operations.delete
videointel_operations_listreadvideointelligence.projects.locations.operations.list
videointel_operations_operations_canceldestructivevideointelligence.operations.projects.locations.operations.cancel
videointel_operations_operations_deletedestructivevideointelligence.operations.projects.locations.operations.delete
videointel_operations_operations_getreadvideointelligence.operations.projects.locations.operations.get
videointel_videos_annotatewritevideointelligence.videos.annotate
vis_projects_locations_files_batch_annotatewritevision.projects.locations.files.asyncBatchAnnotate
vision_files_annotatereadvision.files.annotate
vision_files_async_batch_annotatewritevision.files.asyncBatchAnnotate
vision_images_annotatereadvision.images.annotate
vision_images_async_batch_annotatewritevision.images.asyncBatchAnnotate
vision_locations_operations_getreadvision.locations.operations.get
vision_operations_canceldestructivevision.operations.cancel
vision_operations_deletedestructivevision.operations.delete
vision_operations_getreadvision.operations.get
vision_operations_listreadvision.operations.list
vision_product_sets_add_productwritevision.projects.locations.productSets.addProduct
vision_product_sets_createwritevision.projects.locations.productSets.create
vision_product_sets_deletedestructivevision.projects.locations.productSets.delete
vision_product_sets_importwritevision.projects.locations.productSets.import
vision_product_sets_patchwritevision.projects.locations.productSets.patch
vision_product_sets_products_listreadvision.projects.locations.productSets.products.list
vision_product_sets_remove_productwritevision.projects.locations.productSets.removeProduct
vision_products_reference_images_createwritevision.projects.locations.products.referenceImages.create
vision_products_reference_images_deletedestructivevision.projects.locations.products.referenceImages.delete
vision_products_reference_images_getreadvision.projects.locations.products.referenceImages.get
vision_products_reference_images_listreadvision.projects.locations.products.referenceImages.list
vision_proje_locat_image_async_batch_annotawritevision.projects.locations.images.asyncBatchAnnotate
vision_projects_files_annotatereadvision.projects.files.annotate
vision_projects_files_async_batch_annotatewritevision.projects.files.asyncBatchAnnotate
vision_projects_images_annotatereadvision.projects.images.annotate
vision_projects_images_async_batch_annotatewritevision.projects.images.asyncBatchAnnotate
vision_projects_locations_files_annotatereadvision.projects.locations.files.annotate
vision_projects_locations_images_annotatereadvision.projects.locations.images.annotate
vision_projects_locations_operations_getreadvision.projects.locations.operations.get
vision_projects_locations_product_sets_getreadvision.projects.locations.productSets.get
vision_projects_locations_product_sets_listreadvision.projects.locations.productSets.list
vision_projects_locations_products_createwritevision.projects.locations.products.create
vision_projects_locations_products_deletedestructivevision.projects.locations.products.delete
vision_projects_locations_products_getreadvision.projects.locations.products.get
vision_projects_locations_products_listreadvision.projects.locations.products.list
vision_projects_locations_products_patchwritevision.projects.locations.products.patch
vision_projects_locations_products_purgedestructivevision.projects.locations.products.purge
vision_projects_operations_getreadvision.projects.operations.get

The plugin option toolset can list fewer tools. google lists 6 tools that do the same jobs as Google's official MCP server for this product; curated lists the hand-written and gateway tools; all is the default.

Sign-in

gai belongs to the cloud login group. Log in once for the group: create a Desktop OAuth client in a Google Cloud project, save its file with npx google-services-mcps setup-client, then run npx google-services-mcps login cloud. If no token is stored, the cloud servers fall back to Application Default Credentials.

The plugin's scope file lists 7 OAuth scopes for 1 APIs. A login asks only for the scopes of its profile: readonly (the default), readwrite, full, or an exact list.

OAuth scopes in the plugin's scope file
APIScope
gaihttps://www.googleapis.com/auth/cloud-language
gaihttps://www.googleapis.com/auth/cloud-platform
gaihttps://www.googleapis.com/auth/cloud-vision
gaihttps://www.googleapis.com/auth/cloud_search.query
gaihttps://www.googleapis.com/auth/discoveryengine.assist.readwrite
gaihttps://www.googleapis.com/auth/discoveryengine.readwrite
gaihttps://www.googleapis.com/auth/discoveryengine.serving.readwrite

Plugin details

Plugin
gai
MCP server
gai
Display name
AI and ML
Version
2.17.0
Marketplace
google-services-mcps
Login group
cloud
Marketplace category
ai
Plugin options
allow_writes, confirmation, token_dir, toolset
Server kind
curated+discovery