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 gaiWhat 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.
| API | Version |
|---|---|
| discoveryengine | v1 |
| language | v2 |
| speech | v1 |
| texttospeech | v1 |
| videointelligence | v1 |
| vision | v1 |
| API | Version |
|---|---|
| agentidentity | v1 |
| agentidentity | v1alpha |
| agentidentity | v1beta |
| agentidentitycredentials | v1 |
| agentidentitycredentials | v1alpha |
| agentidentitycredentials | v1beta |
| agentregistry | v1 |
| agentregistry | v1alpha |
| aiplatform | v1 |
| aiplatform | v1beta1 |
| ces | v1 |
| ces | v1beta |
| contactcenteraiplatform | v1alpha1 |
| contactcenterinsights | v1 |
| dialogflow | v2 |
| dialogflow | v2beta1 |
| dialogflow | v3 |
| dialogflow | v3beta1 |
| discoveryengine | v1alpha |
| discoveryengine | v1beta |
| documentai | v1 |
| documentai | v1beta3 |
| generativelanguage | v1 |
| generativelanguage | v1beta |
| jobs | v3 |
| jobs | v3p1beta1 |
| jobs | v4 |
| language | v1 |
| language | v1beta2 |
| ml | v1 |
| notebooks | v1 |
| notebooks | v2 |
| recommendationengine | v1beta1 |
| retail | v2 |
| retail | v2alpha |
| retail | v2beta |
| speech | v1p1beta1 |
| texttospeech | v1beta1 |
| translate | v2 |
| translate | v3 |
| translate | v3beta1 |
| videointelligence | v1beta2 |
| videointelligence | v1p1beta1 |
| videointelligence | v1p2beta1 |
| videointelligence | v1p3beta1 |
| vision | v1p1beta1 |
| vision | v1p2beta1 |
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.
| Tool | Class | What it does |
|---|---|---|
| account_remove | write | Remove a signed-in account |
| account_set_default | write | Set the default account |
| accounts_list | read | Signed-in accounts |
| api_call | dynamic | Call an API method |
| api_describe | read | Describe an API method |
| api_methods | read | gai: API methods |
| api_search | read | Search API methods |
| auth_login | write | Sign in to Google |
| auth_setup_client | write | Save the Google OAuth client |
| auth_status | read | Sign-in status |
| dis_agents_a2a_tasks_push_notif_configs_get | read | discoveryengine.projects.locations.collections.engines.assistants.agents.a2a.v1.tasks.pushNotificationConfigs.get |
| dis_engine_fetch_domain_verification_status | read | discoveryengine.projects.locations.collections.dataStores.siteSearchEngine.fetchDomainVerificationStatus |
| dis_engines_assistants_agents_a2a_tasks_get | read | discoveryengine.projects.locations.collections.engines.assistants.agents.a2a.v1.tasks.get |
| dis_stores_completion_config_complete_query | write | discoveryengine.projects.locations.collections.dataStores.completionConfig.completeQuery |
| dis_stores_engine_batch_verify_target_sites | write | discoveryengine.projects.locations.collections.dataStores.siteSearchEngine.batchVerifyTargetSites |
| disc_colls_stores_engine_sites_batch_create | write | discoveryengine.projects.locations.collections.dataStores.siteSearchEngine.targetSites.batchCreate |
| disc_colls_stores_serving_configs_recommend | write | discoveryengine.projects.locations.collections.dataStores.servingConfigs.recommend |
| disc_engines_assistants_agents_a2a_get_card | read | discoveryengine.projects.locations.collections.engines.assistants.agents.a2a.v1.getCard |
| disco_assistants_agents_a2a_tasks_subscribe | read | discoveryengine.projects.locations.collections.engines.assistants.agents.a2a.v1.tasks.subscribe |
| disco_collections_data_stores_search_engine | read | discoveryengine.projects.locations.collections.dataStores.getSiteSearchEngine |
| disco_colls_data_stores_engine_site_search | write | discoveryengine.projects.locations.collections.dataStores.siteSearchEngine.enableAdvancedSiteSearch |
| disco_engines_serving_configs_stream_answer | write | discoveryengine.projects.locations.collections.engines.servingConfigs.streamAnswer |
| discov_a2a_tasks_push_notif_configs_create | write | discoveryengine.projects.locations.collections.engines.assistants.agents.a2a.v1.tasks.pushNotificationConfigs.create |
| discov_a2a_tasks_push_notif_configs_delete | destructive | discoveryengine.projects.locations.collections.engines.assistants.agents.a2a.v1.tasks.pushNotificationConfigs.delete |
| discov_assistants_agents_a2a_message_stream | write | discoveryengine.projects.locations.collections.engines.assistants.agents.a2a.v1.message.stream |
| discov_colls_data_stores_engine_site_search | write | discoveryengine.projects.locations.collections.dataStores.siteSearchEngine.disableAdvancedSiteSearch |
| discov_colls_stores_conversations_converse | write | discoveryengine.projects.locations.collections.dataStores.conversations.converse |
| discov_colls_stores_engine_sitemaps_create | write | discoveryengine.projects.locations.collections.dataStores.siteSearchEngine.sitemaps.create |
| discov_colls_stores_engine_sitemaps_delete | destructive | discoveryengine.projects.locations.collections.dataStores.siteSearchEngine.sitemaps.delete |
| discov_colls_stores_serving_configs_answer | read | discoveryengine.projects.locations.collections.dataStores.servingConfigs.answer |
| discov_colls_stores_serving_configs_create | write | discoveryengine.projects.locations.collections.dataStores.servingConfigs.create |
| discov_colls_stores_serving_configs_delete | destructive | discoveryengine.projects.locations.collections.dataStores.servingConfigs.delete |
| discov_colls_stores_serving_configs_search | read | discoveryengine.projects.locations.collections.dataStores.servingConfigs.search |
| discov_engine_disable_advanced_site_search | write | discoveryengine.projects.locations.dataStores.siteSearchEngine.disableAdvancedSiteSearch |
| discov_engines_serving_configs_search_lite | read | discoveryengine.projects.locations.collections.engines.servingConfigs.searchLite |
| discov_stores_branches_batch_get_docs_meta | read | discoveryengine.projects.locations.collections.dataStores.branches.batchGetDocumentsMetadata |
| discov_stores_serving_configs_stream_answer | write | discoveryengine.projects.locations.collections.dataStores.servingConfigs.streamAnswer |
| discov_suggestion_deny_list_entries_import | write | discoveryengine.projects.locations.dataStores.suggestionDenyListEntries.import |
| discover_assistants_agents_a2a_message_send | destructive | discoveryengine.projects.locations.collections.engines.assistants.agents.a2a.v1.message.send |
| discover_assistants_agents_a2a_tasks_cancel | destructive | discoveryengine.projects.locations.collections.engines.assistants.agents.a2a.v1.tasks.cancel |
| discover_engine_enable_advanced_site_search | write | discoveryengine.projects.locations.dataStores.siteSearchEngine.enableAdvancedSiteSearch |
| discover_stores_serving_configs_search_lite | read | discoveryengine.projects.locations.collections.dataStores.servingConfigs.searchLite |
| discover_suggestion_deny_list_entries_purge | destructive | discoveryengine.projects.locations.dataStores.suggestionDenyListEntries.purge |
| discovery_a2a_tasks_push_notif_configs_list | read | discoveryengine.projects.locations.collections.engines.assistants.agents.a2a.v1.tasks.pushNotificationConfigs.list |
| discovery_collections_engines_controls_list | read | discoveryengine.projects.locations.collections.engines.controls.list |
| discovery_collections_engines_sessions_list | read | discoveryengine.projects.locations.collections.engines.sessions.list |
| discovery_collections_update_data_connector | write | discoveryengine.projects.locations.collections.updateDataConnector |
| discovery_colls_data_stores_controls_create | write | discoveryengine.projects.locations.collections.dataStores.controls.create |
| discovery_colls_data_stores_controls_delete | destructive | discoveryengine.projects.locations.collections.dataStores.controls.delete |
| discovery_colls_data_stores_engine_ops_list | read | discoveryengine.projects.locations.collections.dataStores.siteSearchEngine.operations.list |
| discovery_colls_data_stores_models_ops_list | read | discoveryengine.projects.locations.collections.dataStores.models.operations.list |
| discovery_colls_data_stores_schemas_ops_get | read | discoveryengine.projects.locations.collections.dataStores.schemas.operations.get |
| discovery_colls_data_stores_sessions_create | write | discoveryengine.projects.locations.collections.dataStores.sessions.create |
| discovery_colls_data_stores_sessions_delete | destructive | discoveryengine.projects.locations.collections.dataStores.sessions.delete |
| discovery_colls_engines_conversations_patch | write | discoveryengine.projects.locations.collections.engines.conversations.patch |
| discovery_colls_engines_serving_configs_get | read | discoveryengine.projects.locations.collections.engines.servingConfigs.get |
| discovery_colls_stores_branches_docs_create | write | discoveryengine.projects.locations.collections.dataStores.branches.documents.create |
| discovery_colls_stores_branches_docs_delete | destructive | discoveryengine.projects.locations.collections.dataStores.branches.documents.delete |
| discovery_colls_stores_branches_docs_import | write | discoveryengine.projects.locations.collections.dataStores.branches.documents.import |
| discovery_colls_stores_conversations_create | write | discoveryengine.projects.locations.collections.dataStores.conversations.create |
| discovery_colls_stores_conversations_delete | destructive | discoveryengine.projects.locations.collections.dataStores.conversations.delete |
| discovery_colls_stores_engine_sites_ops_get | read | discoveryengine.projects.locations.collections.dataStores.siteSearchEngine.targetSites.operations.get |
| discovery_colls_stores_serving_configs_list | read | discoveryengine.projects.locations.collections.dataStores.servingConfigs.list |
| discovery_colls_stores_sessions_answers_get | read | discoveryengine.projects.locations.collections.dataStores.sessions.answers.get |
| discovery_colls_stores_widget_configs_patch | write | discoveryengine.projects.locations.collections.dataStores.widgetConfigs.patch |
| discovery_data_stores_engine_sitemaps_fetch | read | discoveryengine.projects.locations.dataStores.siteSearchEngine.sitemaps.fetch |
| discovery_data_stores_models_operations_get | read | discoveryengine.projects.locations.dataStores.models.operations.get |
| discovery_data_stores_serving_configs_patch | write | discoveryengine.projects.locations.dataStores.servingConfigs.patch |
| discovery_engines_assistants_agents_ops_get | read | discoveryengine.projects.locations.collections.engines.assistants.agents.operations.get |
| discovery_engines_serving_configs_recommend | write | discoveryengine.projects.locations.collections.engines.servingConfigs.recommend |
| discovery_projects_locations_get_acl_config | read | discoveryengine.projects.locations.getAclConfig |
| discovery_projects_locations_operations_get | read | discoveryengine.projects.locations.operations.get |
| discovery_stores_batch_update_user_licenses | write | discoveryengine.projects.locations.userStores.batchUpdateUserLicenses |
| discoverye_branches_batch_get_docs_meta | read | discoveryengine.projects.locations.dataStores.branches.batchGetDocumentsMetadata |
| discoverye_cmek_configs_delete | destructive | discoveryengine.projects.locations.cmekConfigs.delete |
| discoverye_cmek_configs_get | read | discoveryengine.projects.locations.cmekConfigs.get |
| discoverye_cmek_configs_list | read | discoveryengine.projects.locations.cmekConfigs.list |
| discoverye_cmek_configs_patch | write | discoveryengine.projects.locations.cmekConfigs.patch |
| discoverye_col_dat_sto_sug_den_lis_ent_impo | write | discoveryengine.projects.locations.collections.dataStores.suggestionDenyListEntries.import |
| discoverye_col_dat_sto_sug_den_lis_ent_purg | destructive | discoveryengine.projects.locations.collections.dataStores.suggestionDenyListEntries.purge |
| discoverye_collections_data_connector_mcp | destructive | discoveryengine.projects.locations.collections.dataConnector.mcp |
| discoverye_collections_data_stores_create | write | discoveryengine.projects.locations.collections.dataStores.create |
| discoverye_collections_data_stores_delete | destructive | discoveryengine.projects.locations.collections.dataStores.delete |
| discoverye_collections_data_stores_get | read | discoveryengine.projects.locations.collections.dataStores.get |
| discoverye_collections_data_stores_list | read | discoveryengine.projects.locations.collections.dataStores.list |
| discoverye_collections_data_stores_patch | write | discoveryengine.projects.locations.collections.dataStores.patch |
| discoverye_collections_delete | destructive | discoveryengine.projects.locations.collections.delete |
| discoverye_collections_engines_controls_get | read | discoveryengine.projects.locations.collections.engines.controls.get |
| discoverye_collections_engines_create | write | discoveryengine.projects.locations.collections.engines.create |
| discoverye_collections_engines_delete | destructive | discoveryengine.projects.locations.collections.engines.delete |
| discoverye_collections_engines_get | read | discoveryengine.projects.locations.collections.engines.get |
| discoverye_collections_engines_list | read | discoveryengine.projects.locations.collections.engines.list |
| discoverye_collections_engines_patch | write | discoveryengine.projects.locations.collections.engines.patch |
| discoverye_collections_engines_sessions_get | read | discoveryengine.projects.locations.collections.engines.sessions.get |
| discoverye_collections_get_data_connector | read | discoveryengine.projects.locations.collections.getDataConnector |
| discoverye_collections_get_iam_policy | read | discoveryengine.projects.locations.collections.getIamPolicy |
| discoverye_collections_operations_get | read | discoveryengine.projects.locations.collections.operations.get |
| discoverye_collections_operations_list | read | discoveryengine.projects.locations.collections.operations.list |
| discoverye_collections_set_iam_policy | destructive | discoveryengine.projects.locations.collections.setIamPolicy |
| discoverye_colls_data_connector_ops_get | read | discoveryengine.projects.locations.collections.dataConnector.operations.get |
| discoverye_colls_data_connector_ops_list | read | discoveryengine.projects.locations.collections.dataConnector.operations.list |
| discoverye_colls_data_stores_complete_query | read | discoveryengine.projects.locations.collections.dataStores.completeQuery |
| discoverye_colls_data_stores_controls_get | read | discoveryengine.projects.locations.collections.dataStores.controls.get |
| discoverye_colls_data_stores_controls_list | read | discoveryengine.projects.locations.collections.dataStores.controls.list |
| discoverye_colls_data_stores_controls_patch | write | discoveryengine.projects.locations.collections.dataStores.controls.patch |
| discoverye_colls_data_stores_engine_ops_get | read | discoveryengine.projects.locations.collections.dataStores.siteSearchEngine.operations.get |
| discoverye_colls_data_stores_get_iam_policy | read | discoveryengine.projects.locations.collections.dataStores.getIamPolicy |
| discoverye_colls_data_stores_models_list | read | discoveryengine.projects.locations.collections.dataStores.customModels.list |
| discoverye_colls_data_stores_models_ops_get | read | discoveryengine.projects.locations.collections.dataStores.models.operations.get |
| discoverye_colls_data_stores_ops_get | read | discoveryengine.projects.locations.collections.dataStores.operations.get |
| discoverye_colls_data_stores_ops_list | read | discoveryengine.projects.locations.collections.dataStores.operations.list |
| discoverye_colls_data_stores_schemas_create | write | discoveryengine.projects.locations.collections.dataStores.schemas.create |
| discoverye_colls_data_stores_schemas_delete | destructive | discoveryengine.projects.locations.collections.dataStores.schemas.delete |
| discoverye_colls_data_stores_schemas_get | read | discoveryengine.projects.locations.collections.dataStores.schemas.get |
| discoverye_colls_data_stores_schemas_list | read | discoveryengine.projects.locations.collections.dataStores.schemas.list |
| discoverye_colls_data_stores_schemas_patch | write | discoveryengine.projects.locations.collections.dataStores.schemas.patch |
| discoverye_colls_data_stores_sessions_get | read | discoveryengine.projects.locations.collections.dataStores.sessions.get |
| discoverye_colls_data_stores_sessions_list | read | discoveryengine.projects.locations.collections.dataStores.sessions.list |
| discoverye_colls_data_stores_sessions_patch | write | discoveryengine.projects.locations.collections.dataStores.sessions.patch |
| discoverye_colls_data_stores_set_iam_policy | destructive | discoveryengine.projects.locations.collections.dataStores.setIamPolicy |
| discoverye_colls_engines_assistants_create | write | discoveryengine.projects.locations.collections.engines.assistants.create |
| discoverye_colls_engines_assistants_delete | destructive | discoveryengine.projects.locations.collections.engines.assistants.delete |
| discoverye_colls_engines_assistants_get | read | discoveryengine.projects.locations.collections.engines.assistants.get |
| discoverye_colls_engines_assistants_list | read | discoveryengine.projects.locations.collections.engines.assistants.list |
| discoverye_colls_engines_assistants_patch | write | discoveryengine.projects.locations.collections.engines.assistants.patch |
| discoverye_colls_engines_controls_create | write | discoveryengine.projects.locations.collections.engines.controls.create |
| discoverye_colls_engines_controls_delete | destructive | discoveryengine.projects.locations.collections.engines.controls.delete |
| discoverye_colls_engines_controls_patch | write | discoveryengine.projects.locations.collections.engines.controls.patch |
| discoverye_colls_engines_conversations_get | read | discoveryengine.projects.locations.collections.engines.conversations.get |
| discoverye_colls_engines_conversations_list | read | discoveryengine.projects.locations.collections.engines.conversations.list |
| discoverye_colls_engines_get_iam_policy | read | discoveryengine.projects.locations.collections.engines.getIamPolicy |
| discoverye_colls_engines_ops_cancel | destructive | discoveryengine.projects.locations.collections.engines.operations.cancel |
| discoverye_colls_engines_ops_get | read | discoveryengine.projects.locations.collections.engines.operations.get |
| discoverye_colls_engines_ops_list | read | discoveryengine.projects.locations.collections.engines.operations.list |
| discoverye_colls_engines_sessions_create | write | discoveryengine.projects.locations.collections.engines.sessions.create |
| discoverye_colls_engines_sessions_delete | destructive | discoveryengine.projects.locations.collections.engines.sessions.delete |
| discoverye_colls_engines_sessions_patch | write | discoveryengine.projects.locations.collections.engines.sessions.patch |
| discoverye_colls_engines_set_iam_policy | destructive | discoveryengine.projects.locations.collections.engines.setIamPolicy |
| discoverye_colls_engines_widget_configs_get | read | discoveryengine.projects.locations.collections.engines.widgetConfigs.get |
| discoverye_colls_stores_branches_docs_get | read | discoveryengine.projects.locations.collections.dataStores.branches.documents.get |
| discoverye_colls_stores_branches_docs_list | read | discoveryengine.projects.locations.collections.dataStores.branches.documents.list |
| discoverye_colls_stores_branches_docs_patch | write | discoveryengine.projects.locations.collections.dataStores.branches.documents.patch |
| discoverye_colls_stores_branches_docs_purge | destructive | discoveryengine.projects.locations.collections.dataStores.branches.documents.purge |
| discoverye_colls_stores_branches_ops_cancel | destructive | discoveryengine.projects.locations.collections.dataStores.branches.operations.cancel |
| discoverye_colls_stores_branches_ops_get | read | discoveryengine.projects.locations.collections.dataStores.branches.operations.get |
| discoverye_colls_stores_branches_ops_list | read | discoveryengine.projects.locations.collections.dataStores.branches.operations.list |
| discoverye_colls_stores_conversations_get | read | discoveryengine.projects.locations.collections.dataStores.conversations.get |
| discoverye_colls_stores_conversations_list | read | discoveryengine.projects.locations.collections.dataStores.conversations.list |
| discoverye_colls_stores_conversations_patch | write | discoveryengine.projects.locations.collections.dataStores.conversations.patch |
| discoverye_colls_stores_engine_recrawl_uris | write | discoveryengine.projects.locations.collections.dataStores.siteSearchEngine.recrawlUris |
| discoverye_colls_stores_engine_sites_create | write | discoveryengine.projects.locations.collections.dataStores.siteSearchEngine.targetSites.create |
| discoverye_colls_stores_engine_sites_delete | destructive | discoveryengine.projects.locations.collections.dataStores.siteSearchEngine.targetSites.delete |
| discoverye_colls_stores_engine_sites_get | read | discoveryengine.projects.locations.collections.dataStores.siteSearchEngine.targetSites.get |
| discoverye_colls_stores_engine_sites_list | read | discoveryengine.projects.locations.collections.dataStores.siteSearchEngine.targetSites.list |
| discoverye_colls_stores_engine_sites_patch | write | discoveryengine.projects.locations.collections.dataStores.siteSearchEngine.targetSites.patch |
| discoverye_colls_stores_schemas_ops_list | read | discoveryengine.projects.locations.collections.dataStores.schemas.operations.list |
| discoverye_colls_stores_serving_configs_get | read | discoveryengine.projects.locations.collections.dataStores.servingConfigs.get |
| discoverye_colls_stores_suggestions_import | write | discoveryengine.projects.locations.collections.dataStores.completionSuggestions.import |
| discoverye_colls_stores_suggestions_purge | destructive | discoveryengine.projects.locations.collections.dataStores.completionSuggestions.purge |
| discoverye_colls_stores_train_custom_model | write | discoveryengine.projects.locations.collections.dataStores.trainCustomModel |
| discoverye_colls_stores_user_events_collect | write | discoveryengine.projects.locations.collections.dataStores.userEvents.collect |
| discoverye_colls_stores_user_events_import | write | discoveryengine.projects.locations.collections.dataStores.userEvents.import |
| discoverye_colls_stores_user_events_purge | destructive | discoveryengine.projects.locations.collections.dataStores.userEvents.purge |
| discoverye_colls_stores_user_events_write | write | discoveryengine.projects.locations.collections.dataStores.userEvents.write |
| discoverye_colls_stores_widget_configs_get | read | discoveryengine.projects.locations.collections.dataStores.widgetConfigs.get |
| discoverye_completion_config_complete_query | write | discoveryengine.projects.locations.dataStores.completionConfig.completeQuery |
| discoverye_data_stores_branches_docs_create | write | discoveryengine.projects.locations.dataStores.branches.documents.create |
| discoverye_data_stores_branches_docs_delete | destructive | discoveryengine.projects.locations.dataStores.branches.documents.delete |
| discoverye_data_stores_branches_docs_get | read | discoveryengine.projects.locations.dataStores.branches.documents.get |
| discoverye_data_stores_branches_docs_import | write | discoveryengine.projects.locations.dataStores.branches.documents.import |
| discoverye_data_stores_branches_docs_list | read | discoveryengine.projects.locations.dataStores.branches.documents.list |
| discoverye_data_stores_branches_docs_patch | write | discoveryengine.projects.locations.dataStores.branches.documents.patch |
| discoverye_data_stores_branches_docs_purge | destructive | discoveryengine.projects.locations.dataStores.branches.documents.purge |
| discoverye_data_stores_branches_ops_cancel | destructive | discoveryengine.projects.locations.dataStores.branches.operations.cancel |
| discoverye_data_stores_branches_ops_get | read | discoveryengine.projects.locations.dataStores.branches.operations.get |
| discoverye_data_stores_branches_ops_list | read | discoveryengine.projects.locations.dataStores.branches.operations.list |
| discoverye_data_stores_complete_query | read | discoveryengine.projects.locations.dataStores.completeQuery |
| discoverye_data_stores_controls_create | write | discoveryengine.projects.locations.dataStores.controls.create |
| discoverye_data_stores_controls_delete | destructive | discoveryengine.projects.locations.dataStores.controls.delete |
| discoverye_data_stores_controls_get | read | discoveryengine.projects.locations.dataStores.controls.get |
| discoverye_data_stores_controls_list | read | discoveryengine.projects.locations.dataStores.controls.list |
| discoverye_data_stores_controls_patch | write | discoveryengine.projects.locations.dataStores.controls.patch |
| discoverye_data_stores_conversations_create | write | discoveryengine.projects.locations.dataStores.conversations.create |
| discoverye_data_stores_conversations_delete | destructive | discoveryengine.projects.locations.dataStores.conversations.delete |
| discoverye_data_stores_conversations_get | read | discoveryengine.projects.locations.dataStores.conversations.get |
| discoverye_data_stores_conversations_list | read | discoveryengine.projects.locations.dataStores.conversations.list |
| discoverye_data_stores_conversations_patch | write | discoveryengine.projects.locations.dataStores.conversations.patch |
| discoverye_data_stores_create | write | discoveryengine.projects.locations.dataStores.create |
| discoverye_data_stores_delete | destructive | discoveryengine.projects.locations.dataStores.delete |
| discoverye_data_stores_engine_recrawl_uris | write | discoveryengine.projects.locations.dataStores.siteSearchEngine.recrawlUris |
| discoverye_data_stores_engine_sites_create | write | discoveryengine.projects.locations.dataStores.siteSearchEngine.targetSites.create |
| discoverye_data_stores_engine_sites_delete | destructive | discoveryengine.projects.locations.dataStores.siteSearchEngine.targetSites.delete |
| discoverye_data_stores_engine_sites_get | read | discoveryengine.projects.locations.dataStores.siteSearchEngine.targetSites.get |
| discoverye_data_stores_engine_sites_list | read | discoveryengine.projects.locations.dataStores.siteSearchEngine.targetSites.list |
| discoverye_data_stores_engine_sites_patch | write | discoveryengine.projects.locations.dataStores.siteSearchEngine.targetSites.patch |
| discoverye_data_stores_get | read | discoveryengine.projects.locations.dataStores.get |
| discoverye_data_stores_get_iam_policy | read | discoveryengine.projects.locations.dataStores.getIamPolicy |
| discoverye_data_stores_list | read | discoveryengine.projects.locations.dataStores.list |
| discoverye_data_stores_models_ops_list | read | discoveryengine.projects.locations.dataStores.models.operations.list |
| discoverye_data_stores_operations_get | read | discoveryengine.projects.locations.dataStores.operations.get |
| discoverye_data_stores_operations_list | read | discoveryengine.projects.locations.dataStores.operations.list |
| discoverye_data_stores_patch | write | discoveryengine.projects.locations.dataStores.patch |
| discoverye_data_stores_schemas_create | write | discoveryengine.projects.locations.dataStores.schemas.create |
| discoverye_data_stores_schemas_delete | destructive | discoveryengine.projects.locations.dataStores.schemas.delete |
| discoverye_data_stores_schemas_get | read | discoveryengine.projects.locations.dataStores.schemas.get |
| discoverye_data_stores_schemas_list | read | discoveryengine.projects.locations.dataStores.schemas.list |
| discoverye_data_stores_schemas_patch | write | discoveryengine.projects.locations.dataStores.schemas.patch |
| discoverye_data_stores_serving_configs_get | read | discoveryengine.projects.locations.dataStores.servingConfigs.get |
| discoverye_data_stores_serving_configs_list | read | discoveryengine.projects.locations.dataStores.servingConfigs.list |
| discoverye_data_stores_sessions_answers_get | read | discoveryengine.projects.locations.dataStores.sessions.answers.get |
| discoverye_data_stores_sessions_create | write | discoveryengine.projects.locations.dataStores.sessions.create |
| discoverye_data_stores_sessions_delete | destructive | discoveryengine.projects.locations.dataStores.sessions.delete |
| discoverye_data_stores_sessions_get | read | discoveryengine.projects.locations.dataStores.sessions.get |
| discoverye_data_stores_sessions_list | read | discoveryengine.projects.locations.dataStores.sessions.list |
| discoverye_data_stores_sessions_patch | write | discoveryengine.projects.locations.dataStores.sessions.patch |
| discoverye_data_stores_set_iam_policy | destructive | discoveryengine.projects.locations.dataStores.setIamPolicy |
| discoverye_data_stores_suggestions_import | write | discoveryengine.projects.locations.dataStores.completionSuggestions.import |
| discoverye_data_stores_suggestions_purge | destructive | discoveryengine.projects.locations.dataStores.completionSuggestions.purge |
| discoverye_data_stores_user_events_collect | write | discoveryengine.projects.locations.dataStores.userEvents.collect |
| discoverye_data_stores_user_events_import | write | discoveryengine.projects.locations.dataStores.userEvents.import |
| discoverye_data_stores_user_events_purge | destructive | discoveryengine.projects.locations.dataStores.userEvents.purge |
| discoverye_data_stores_user_events_write | write | discoveryengine.projects.locations.dataStores.userEvents.write |
| discoverye_data_stores_widget_configs_get | read | discoveryengine.projects.locations.dataStores.widgetConfigs.get |
| discoverye_data_stores_widget_configs_patch | write | discoveryengine.projects.locations.dataStores.widgetConfigs.patch |
| discoverye_distribute_license_config | write | discoveryengine.billingAccounts.billingAccountLicenseConfigs.distributeLicenseConfig |
| discoverye_engines_assistants_stream_assist | write | discoveryengine.projects.locations.collections.engines.assistants.streamAssist |
| discoverye_engines_conversations_converse | write | discoveryengine.projects.locations.collections.engines.conversations.converse |
| discoverye_engines_conversations_create | write | discoveryengine.projects.locations.collections.engines.conversations.create |
| discoverye_engines_conversations_delete | destructive | discoveryengine.projects.locations.collections.engines.conversations.delete |
| discoverye_engines_serving_configs_answer | read | discoveryengine.projects.locations.collections.engines.servingConfigs.answer |
| discoverye_engines_serving_configs_create | write | discoveryengine.projects.locations.collections.engines.servingConfigs.create |
| discoverye_engines_serving_configs_delete | destructive | discoveryengine.projects.locations.collections.engines.servingConfigs.delete |
| discoverye_engines_serving_configs_list | read | discoveryengine.projects.locations.collections.engines.servingConfigs.list |
| discoverye_engines_serving_configs_patch | write | discoveryengine.projects.locations.collections.engines.servingConfigs.patch |
| discoverye_engines_serving_configs_search | read | discoveryengine.projects.locations.collections.engines.servingConfigs.search |
| discoverye_engines_sessions_answers_get | read | discoveryengine.projects.locations.collections.engines.sessions.answers.get |
| discoverye_engines_widget_configs_patch | write | discoveryengine.projects.locations.collections.engines.widgetConfigs.patch |
| discoverye_get_cmek_config | read | discoveryengine.projects.locations.getCmekConfig |
| discoverye_grounding_configs_check | read | discoveryengine.projects.locations.groundingConfigs.check |
| discoverye_identity_mapping_stores_create | write | discoveryengine.projects.locations.identityMappingStores.create |
| discoverye_identity_mapping_stores_delete | destructive | discoveryengine.projects.locations.identityMappingStores.delete |
| discoverye_identity_mapping_stores_get | read | discoveryengine.projects.locations.identityMappingStores.get |
| discoverye_identity_mapping_stores_list | read | discoveryengine.projects.locations.identityMappingStores.list |
| discoverye_identity_mapping_stores_ops_get | read | discoveryengine.projects.locations.identityMappingStores.operations.get |
| discoverye_identity_mapping_stores_ops_list | read | discoveryengine.projects.locations.identityMappingStores.operations.list |
| discoverye_license_configs_create | write | discoveryengine.projects.locations.licenseConfigs.create |
| discoverye_license_configs_get | read | discoveryengine.projects.locations.licenseConfigs.get |
| discoverye_license_configs_list | read | discoveryengine.projects.locations.licenseConfigs.list |
| discoverye_license_configs_patch | write | discoveryengine.projects.locations.licenseConfigs.patch |
| discoverye_operations_list | read | discoveryengine.projects.locations.operations.list |
| discoverye_podcasts_operations_get | read | discoveryengine.projects.locations.podcasts.operations.get |
| discoverye_pro_loc_col_eng_com_con_com_quer | write | discoveryengine.projects.locations.collections.engines.completionConfig.completeQuery |
| discoverye_projects_locations_provision | write | discoveryengine.projects.locations.provision |
| discoverye_projects_operations_cancel | destructive | discoveryengine.projects.operations.cancel |
| discoverye_projects_operations_get | read | discoveryengine.projects.operations.get |
| discoverye_projects_operations_list | read | discoveryengine.projects.operations.list |
| discoverye_projects_provision | write | discoveryengine.projects.provision |
| discoverye_ranking_configs_rank | write | discoveryengine.projects.locations.rankingConfigs.rank |
| discoverye_retract_license_config | write | discoveryengine.billingAccounts.billingAccountLicenseConfigs.retractLicenseConfig |
| discoverye_serving_configs_search_lite | read | discoveryengine.projects.locations.dataStores.servingConfigs.searchLite |
| discoverye_serving_configs_stream_answer | write | discoveryengine.projects.locations.dataStores.servingConfigs.streamAnswer |
| discoverye_set_up_data_connector | write | discoveryengine.projects.locations.setUpDataConnector |
| discoverye_set_up_data_connector_v2 | write | discoveryengine.projects.locations.setUpDataConnectorV2 |
| discoverye_stores_conversations_converse | write | discoveryengine.projects.locations.dataStores.conversations.converse |
| discoverye_stores_engine_sitemaps_create | write | discoveryengine.projects.locations.dataStores.siteSearchEngine.sitemaps.create |
| discoverye_stores_engine_sitemaps_delete | destructive | discoveryengine.projects.locations.dataStores.siteSearchEngine.sitemaps.delete |
| discoverye_stores_engine_sitemaps_fetch | read | discoveryengine.projects.locations.collections.dataStores.siteSearchEngine.sitemaps.fetch |
| discoverye_stores_engine_sites_batch_create | write | discoveryengine.projects.locations.dataStores.siteSearchEngine.targetSites.batchCreate |
| discoverye_stores_engine_sites_ops_list | read | discoveryengine.projects.locations.collections.dataStores.siteSearchEngine.targetSites.operations.list |
| discoverye_stores_get_site_search_engine | read | discoveryengine.projects.locations.dataStores.getSiteSearchEngine |
| discoverye_stores_import_identity_mappings | write | discoveryengine.projects.locations.identityMappingStores.importIdentityMappings |
| discoverye_stores_list_identity_mappings | read | discoveryengine.projects.locations.identityMappingStores.listIdentityMappings |
| discoverye_stores_purge_identity_mappings | write | discoveryengine.projects.locations.identityMappingStores.purgeIdentityMappings |
| discoverye_stores_serving_configs_answer | read | discoveryengine.projects.locations.dataStores.servingConfigs.answer |
| discoverye_stores_serving_configs_create | write | discoveryengine.projects.locations.dataStores.servingConfigs.create |
| discoverye_stores_serving_configs_delete | destructive | discoveryengine.projects.locations.dataStores.servingConfigs.delete |
| discoverye_stores_serving_configs_patch | write | discoveryengine.projects.locations.collections.dataStores.servingConfigs.patch |
| discoverye_stores_serving_configs_recommend | write | discoveryengine.projects.locations.dataStores.servingConfigs.recommend |
| discoverye_stores_serving_configs_search | read | discoveryengine.projects.locations.dataStores.servingConfigs.search |
| discoverye_update_acl_config | write | discoveryengine.projects.locations.updateAclConfig |
| discoverye_update_cmek_config | write | discoveryengine.projects.locations.updateCmekConfig |
| discoverye_user_events_collect | write | discoveryengine.projects.locations.userEvents.collect |
| discoverye_user_events_import | write | discoveryengine.projects.locations.userEvents.import |
| discoverye_user_events_write | write | discoveryengine.projects.locations.userEvents.write |
| discoverye_user_stores_get | read | discoveryengine.projects.locations.userStores.get |
| discoverye_user_stores_patch | write | discoveryengine.projects.locations.userStores.patch |
| discoverye_user_stores_stats_list | read | discoveryengine.projects.locations.userStores.licenseConfigsUsageStats.list |
| discoverye_user_stores_user_licenses_list | read | discoveryengine.projects.locations.userStores.userLicenses.list |
| health | read | Server health |
| language_documents_analyze_entities | read | language.documents.analyzeEntities |
| language_documents_analyze_sentiment | read | language.documents.analyzeSentiment |
| language_documents_annotate_text | read | language.documents.annotateText |
| language_documents_classify_text | read | language.documents.classifyText |
| language_documents_moderate_text | read | language.documents.moderateText |
| speech_custom_classes_create | write | speech.projects.locations.customClasses.create |
| speech_custom_classes_delete | destructive | speech.projects.locations.customClasses.delete |
| speech_custom_classes_get | read | speech.projects.locations.customClasses.get |
| speech_custom_classes_list | read | speech.projects.locations.customClasses.list |
| speech_custom_classes_patch | write | speech.projects.locations.customClasses.patch |
| speech_operations_get | read | speech.operations.get |
| speech_operations_list | read | speech.operations.list |
| speech_phrase_sets_create | write | speech.projects.locations.phraseSets.create |
| speech_phrase_sets_delete | destructive | speech.projects.locations.phraseSets.delete |
| speech_projects_locations_phrase_sets_get | read | speech.projects.locations.phraseSets.get |
| speech_projects_locations_phrase_sets_list | read | speech.projects.locations.phraseSets.list |
| speech_projects_locations_phrase_sets_patch | write | speech.projects.locations.phraseSets.patch |
| speech_speech_longrunningrecognize | write | speech.speech.longrunningrecognize |
| speech_speech_recognize | read | speech.speech.recognize |
| texttospe_projects_locations_operations_get | read | texttospeech.projects.locations.operations.get |
| texttospee_operations_cancel | destructive | texttospeech.operations.cancel |
| texttospee_operations_delete | destructive | texttospeech.operations.delete |
| texttospee_operations_list | read | texttospeech.projects.locations.operations.list |
| texttospee_synthesize_long_audio | write | texttospeech.projects.locations.synthesizeLongAudio |
| texttospee_text_synthesize | read | texttospeech.text.synthesize |
| texttospee_voices_list | read | texttospeech.voices.list |
| vertex_count_tokens | read | Count the tokens of a Vertex AI prompt |
| vertex_embed_content | read | Embed text with a Vertex AI model |
| vertex_generate_content | read | Generate content with a Vertex AI model |
| videointe_projects_locations_operations_get | read | videointelligence.projects.locations.operations.get |
| videointel_operations_cancel | destructive | videointelligence.projects.locations.operations.cancel |
| videointel_operations_delete | destructive | videointelligence.projects.locations.operations.delete |
| videointel_operations_list | read | videointelligence.projects.locations.operations.list |
| videointel_operations_operations_cancel | destructive | videointelligence.operations.projects.locations.operations.cancel |
| videointel_operations_operations_delete | destructive | videointelligence.operations.projects.locations.operations.delete |
| videointel_operations_operations_get | read | videointelligence.operations.projects.locations.operations.get |
| videointel_videos_annotate | write | videointelligence.videos.annotate |
| vis_projects_locations_files_batch_annotate | write | vision.projects.locations.files.asyncBatchAnnotate |
| vision_files_annotate | read | vision.files.annotate |
| vision_files_async_batch_annotate | write | vision.files.asyncBatchAnnotate |
| vision_images_annotate | read | vision.images.annotate |
| vision_images_async_batch_annotate | write | vision.images.asyncBatchAnnotate |
| vision_locations_operations_get | read | vision.locations.operations.get |
| vision_operations_cancel | destructive | vision.operations.cancel |
| vision_operations_delete | destructive | vision.operations.delete |
| vision_operations_get | read | vision.operations.get |
| vision_operations_list | read | vision.operations.list |
| vision_product_sets_add_product | write | vision.projects.locations.productSets.addProduct |
| vision_product_sets_create | write | vision.projects.locations.productSets.create |
| vision_product_sets_delete | destructive | vision.projects.locations.productSets.delete |
| vision_product_sets_import | write | vision.projects.locations.productSets.import |
| vision_product_sets_patch | write | vision.projects.locations.productSets.patch |
| vision_product_sets_products_list | read | vision.projects.locations.productSets.products.list |
| vision_product_sets_remove_product | write | vision.projects.locations.productSets.removeProduct |
| vision_products_reference_images_create | write | vision.projects.locations.products.referenceImages.create |
| vision_products_reference_images_delete | destructive | vision.projects.locations.products.referenceImages.delete |
| vision_products_reference_images_get | read | vision.projects.locations.products.referenceImages.get |
| vision_products_reference_images_list | read | vision.projects.locations.products.referenceImages.list |
| vision_proje_locat_image_async_batch_annota | write | vision.projects.locations.images.asyncBatchAnnotate |
| vision_projects_files_annotate | read | vision.projects.files.annotate |
| vision_projects_files_async_batch_annotate | write | vision.projects.files.asyncBatchAnnotate |
| vision_projects_images_annotate | read | vision.projects.images.annotate |
| vision_projects_images_async_batch_annotate | write | vision.projects.images.asyncBatchAnnotate |
| vision_projects_locations_files_annotate | read | vision.projects.locations.files.annotate |
| vision_projects_locations_images_annotate | read | vision.projects.locations.images.annotate |
| vision_projects_locations_operations_get | read | vision.projects.locations.operations.get |
| vision_projects_locations_product_sets_get | read | vision.projects.locations.productSets.get |
| vision_projects_locations_product_sets_list | read | vision.projects.locations.productSets.list |
| vision_projects_locations_products_create | write | vision.projects.locations.products.create |
| vision_projects_locations_products_delete | destructive | vision.projects.locations.products.delete |
| vision_projects_locations_products_get | read | vision.projects.locations.products.get |
| vision_projects_locations_products_list | read | vision.projects.locations.products.list |
| vision_projects_locations_products_patch | write | vision.projects.locations.products.patch |
| vision_projects_locations_products_purge | destructive | vision.projects.locations.products.purge |
| vision_projects_operations_get | read | vision.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.
| API | Scope |
|---|---|
| gai | https://www.googleapis.com/auth/cloud-language |
| gai | https://www.googleapis.com/auth/cloud-platform |
| gai | https://www.googleapis.com/auth/cloud-vision |
| gai | https://www.googleapis.com/auth/cloud_search.query |
| gai | https://www.googleapis.com/auth/discoveryengine.assist.readwrite |
| gai | https://www.googleapis.com/auth/discoveryengine.readwrite |
| gai | https://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