100+ integrations are ready to connect to your AI.Connect your first MCP

Google BigQuery MCP server for your AI

Ask what a query will scan before it runs, explore a dataset's tables and schemas, pull last week's numbers with SQL, add rows to a table, and find out which scheduled query failed overnight and why.

PopMCPGoogle BigQuery

How much would this query scan on the events table, and what does it return if it's under 5 GB?

Supported Google BigQuery tools

Every tool across BigQuery and its sibling APIs: datasets, tables, jobs, Data Transfer, Reservations, Connections, data policies and Analytics Hub, plus PopMCP's triggers.

187 tools in the full catalog: 92 read and 95 write. 35 load by default, and the rest are found with tool search.

bigquery_create_scheduled_query

Create a scheduled query: a SQL statement BigQuery runs on a schedule, optionally writing its result to a table.

bigquery_delete_transfer_config

Deletes a data transfer configuration, including any associated transfer runs and logs.

bigquery_get_transfer_config

Returns information about a data transfer config.

bigquery_list_scheduled_queries

List the scheduled queries in a project and location: name, SQL, schedule, destination dataset, state and next run time.

bigquery_list_transfer_configs

Returns information about all transfer configs owned by a project in the specified location.

bigquery_start_transfer_runs

Manually initiates transfer runs.

bigquery_update_transfer_config

Updates a data transfer configuration.

bigquery_cancel_job

Requests that a job be cancelled.

bigquery_create_job

Starts a new asynchronous job.

bigquery_create_table

Creates a new, empty table in the dataset.

bigquery_delete_table

Deletes the table specified by tableId from the dataset.

bigquery_dry_run_query

Validate a SQL statement and estimate what it would cost WITHOUT running it.

bigquery_execute_sql

Run any GoogleSQL statement, including the ones that change data or schema: INSERT, UPDATE, DELETE, MERGE, TRUNCATE, CREATE, ALTER, DROP, CALL, EXPORT DATA, LOAD DATA and multi-statement scripts.

bigquery_get_job

Returns information about a specific job.

bigquery_get_query_results

RPC to get the results of a query job.

bigquery_get_table

Gets the specified table resource by table ID.

bigquery_list_jobs

Lists all jobs that you started in the specified project.

bigquery_list_tables

Lists all tables in the specified dataset.

bigquery_run_query

Runs a BigQuery SQL query synchronously and returns query results if the query completes within a specified timeout.

bigquery_update_table

Updates information in an existing table.

bigquery_create_routine

Creates a new routine in the dataset.

bigquery_get_routine

Gets the specified routine resource by routine ID.

bigquery_list_routines

Lists all routines in the specified dataset.

bigquery_create_dataset

Creates a new empty dataset.

bigquery_get_dataset

Returns the dataset specified by datasetID.

bigquery_list_datasets

Lists all datasets in the specified project to which the user has been granted the READER dataset role.

bigquery_update_dataset

Updates information in an existing dataset.

bigquery_get_transfer_run

Returns information about the particular transfer run.

bigquery_list_transfer_runs

Returns information about running and completed transfer runs.

bigquery_get_model

Gets the specified model resource by model ID.

bigquery_list_models

Lists all models in the specified dataset.

bigquery_insert_rows

Streams data into BigQuery one record at a time without needing to run a load job.

bigquery_list_projects

RPC to list projects to which the user has been granted any project role.

bigquery_list_table_rows

List the content of a table in rows.

bigquery_list_transfer_run_logs

Returns log messages for the transfer run.

bigquery_create_transfer_config

Creates a new data transfer configuration.

bigquery_create_transfer_config_regionless

Creates a new data transfer configuration.

bigquery_delete_transfer_config_regionless

Deletes a data transfer configuration, including any associated transfer runs and logs.

bigquery_get_transfer_config_regionless

Returns information about a data transfer config.

bigquery_list_transfer_configs_regionless

Returns information about all transfer configs owned by a project in the specified location.

bigquery_start_transfer_runs_regionless

Manually initiates transfer runs.

bigquery_update_transfer_config_regionless

Updates a data transfer configuration.

bigquery_add_data_policy_grantees

Adds new grantees to a data policy.

bigquery_create_data_exchange

Creates a new data exchange.

bigquery_create_data_policy

Creates a new data policy under a project with the given `data_policy_id` (used as the display name), and data policy type.

bigquery_create_listing

Creates a new listing.

bigquery_delete_data_exchange

Deletes an existing data exchange.

bigquery_delete_data_policy

Deletes the data policy specified by its resource name.

bigquery_delete_listing

Deletes a listing.

bigquery_get_data_exchange

Gets the details of a data exchange.

bigquery_get_data_exchange_iam_policy

Gets the IAM policy.

bigquery_get_data_policy

Gets the data policy specified by its resource name.

bigquery_get_data_policy_iam_policy

Gets the IAM policy for the specified data policy.

bigquery_get_listing

Gets the details of a listing.

bigquery_get_listing_iam_policy

Gets the IAM policy.

bigquery_list_data_exchange_subscriptions

Lists all subscriptions on a given Data Exchange or Listing.

bigquery_list_data_exchanges

Lists all data exchanges in a given project and location.

bigquery_list_data_policies

List all of the data policies in the specified parent project.

bigquery_list_listing_subscriptions

Lists all subscriptions on a given Data Exchange or Listing.

bigquery_list_listings

Lists all listings in a given project and location.

bigquery_remove_data_policy_grantees

Removes grantees from a data policy.

bigquery_set_data_exchange_iam_policy

Sets the IAM policy.

bigquery_set_data_policy_iam_policy

Sets the IAM policy for the specified data policy.

bigquery_set_listing_iam_policy

Sets the IAM policy.

bigquery_subscribe_data_exchange

Creates a Subscription to a Data Clean Room.

bigquery_subscribe_listing

Subscribes to a listing.

bigquery_test_data_exchange_iam_permissions

Returns the permissions that a caller has.

bigquery_test_data_policy_iam_permissions

Returns the caller's permission on the specified data policy resource.

bigquery_test_listing_iam_permissions

Returns the permissions that a caller has.

bigquery_update_data_exchange

Updates an existing data exchange.

bigquery_update_data_policy

Updates the metadata for an existing data policy.

bigquery_update_listing

Updates an existing listing.

bigquery_create_data_policy_v1

Creates a new data policy under a project with the given `dataPolicyId` (used as the display name), policy tag, and data policy type.

bigquery_create_reservation

Creates a new reservation resource.

bigquery_delete_data_policy_v1

Deletes the data policy specified by its resource name.

bigquery_delete_job

Requests the deletion of the metadata of a job.

bigquery_delete_reservation

Deletes a reservation.

bigquery_failover_reservation

Fail over a reservation to the secondary location.

bigquery_get_data_policy_iam_policy_v1

Gets the IAM policy for the specified data policy.

bigquery_get_data_policy_v1

Gets the data policy specified by its resource name.

bigquery_get_reservation

Returns information about the reservation.

bigquery_get_reservation_iam_policy

Gets the access control policy for a resource.

bigquery_get_table_iam_policy

Gets the access control policy for a resource.

bigquery_list_data_policies_v1

List all of the data policies in the specified parent project.

bigquery_list_reservations

Lists all the reservations for the project in the specified location.

bigquery_rename_data_policy_v1

Renames the id (display name) of the specified data policy.

bigquery_replace_table

Updates information in an existing table.

bigquery_set_data_policy_iam_policy_v1

Sets the IAM policy for the specified data policy.

bigquery_set_reservation_iam_policy

Sets an access control policy for a resource.

bigquery_set_table_iam_policy

Sets the access control policy on the specified resource.

bigquery_test_data_policy_iam_permissions_v1

Returns the caller's permission on the specified data policy resource.

bigquery_test_reservation_iam_permissions

Gets your permissions on a resource.

bigquery_test_table_iam_permissions

Returns permissions that a caller has on the specified resource.

bigquery_update_data_policy_v1

Updates the metadata for an existing data policy.

bigquery_update_reservation

Updates an existing reservation resource.

bigquery_batch_delete_row_access_policies

Deletes provided row access policies.

bigquery_create_connection

Creates a new connection.

bigquery_create_reservation_assignment

Creates an assignment object which allows the given project to submit jobs of a certain type using slots from the specified reservation.

bigquery_create_row_access_policy

Creates a row access policy.

bigquery_delete_connection

Deletes connection and associated credential.

bigquery_delete_reservation_assignment

Deletes an assignment.

bigquery_delete_routine

Deletes the routine specified by routineId from the dataset.

bigquery_delete_row_access_policy

Deletes a row access policy.

bigquery_get_connection

Returns specified connection.

bigquery_get_connection_iam_policy

Gets the access control policy for a resource.

bigquery_get_reservation_assignment_iam_policy

Gets the access control policy for a resource.

bigquery_get_routine_iam_policy

Gets the access control policy for a resource.

bigquery_get_row_access_policy

Gets the specified row access policy by policy ID.

bigquery_get_row_access_policy_iam_policy

Gets the access control policy for a resource.

bigquery_list_connections

Returns a list of connections in the given project.

bigquery_list_reservation_assignments

Lists assignments.

bigquery_list_row_access_policies

Lists all row access policies on the specified table.

bigquery_move_reservation_assignment

Moves an assignment under a new reservation.

bigquery_replace_routine

Updates information in an existing routine.

bigquery_replace_row_access_policy

Updates a row access policy.

bigquery_set_connection_iam_policy

Sets the access control policy on the specified resource.

bigquery_set_reservation_assignment_iam_policy

Sets an access control policy for a resource.

bigquery_set_routine_iam_policy

Sets the access control policy on the specified resource.

bigquery_test_connection_iam_permissions

Returns permissions that a caller has on the specified resource.

bigquery_test_reservation_assignment_iam_permissions

Gets your permissions on a resource.

bigquery_test_routine_iam_permissions

Returns permissions that a caller has on the specified resource.

bigquery_test_row_access_policy_iam_permissions

Returns permissions that a caller has on the specified resource.

bigquery_update_connection

Updates the specified connection.

bigquery_update_reservation_assignment

Updates an existing assignment.

bigquery_approve_query_template

Approves a query template.

bigquery_create_capacity_commitment

Creates a new capacity commitment resource.

bigquery_create_query_template

Creates a new QueryTemplate

bigquery_delete_capacity_commitment

Deletes a capacity commitment.

bigquery_delete_dataset

Deletes the dataset specified by the datasetId value.

bigquery_delete_query_template

Deletes a query template.

bigquery_delete_subscription

Deletes a subscription.

bigquery_get_capacity_commitment

Returns information about the capacity commitment.

bigquery_get_query_template

Gets a QueryTemplate

bigquery_get_subscription

Gets the details of a Subscription.

bigquery_get_subscription_iam_policy

Gets the IAM policy.

bigquery_list_capacity_commitments

Lists all the capacity commitments for the admin project.

bigquery_list_query_templates

Lists all QueryTemplates in a given project and location.

bigquery_list_subscriptions

Lists all subscriptions in a given project and location.

bigquery_merge_capacity_commitments

Merges capacity commitments of the same plan into a single commitment.

bigquery_refresh_subscription

Refreshes a Subscription to a Data Exchange.

bigquery_replace_dataset

Updates information in an existing dataset.

bigquery_revoke_subscription

Revokes a given subscription.

bigquery_set_subscription_iam_policy

Sets the IAM policy.

bigquery_split_capacity_commitment

Splits capacity commitment to two commitments of the same plan and `commitment_end_time`.

bigquery_submit_query_template

Submits a query template for approval.

bigquery_undelete_dataset

Undeletes a dataset which is within time travel window based on datasetId.

bigquery_update_capacity_commitment

Updates an existing capacity commitment.

bigquery_update_query_template

Updates an existing QueryTemplate

bigquery_check_data_source_credentials

Returns true if valid credentials exist for the given data source and requesting user.

bigquery_check_data_source_credentials_regionless

Returns true if valid credentials exist for the given data source and requesting user.

bigquery_delete_transfer_run

Deletes the specified transfer run.

bigquery_delete_transfer_run_regionless

Deletes the specified transfer run.

bigquery_get_data_source

Retrieves a supported data source and returns its settings.

bigquery_get_data_source_regionless

Retrieves a supported data source and returns its settings.

bigquery_get_transfer_run_regionless

Returns information about the particular transfer run.

bigquery_list_data_sources

Lists supported data sources and returns their settings.

bigquery_list_data_sources_regionless

Lists supported data sources and returns their settings.

bigquery_list_transfer_runs_regionless

Returns information about running and completed transfer runs.

bigquery_create_migration_workflow

Creates a migration workflow.

bigquery_create_reservation_group

Creates a new reservation group.

bigquery_delete_migration_workflow

Deletes a migration workflow by name.

bigquery_delete_reservation_group

Deletes a reservation.

bigquery_get_migration_workflow

Gets a previously created migration workflow.

bigquery_get_reservation_group

Returns information about the reservation group.

bigquery_list_migration_workflows

Lists previously created migration workflow.

bigquery_list_reservation_groups

Lists all the reservation groups for the project in the specified location.

bigquery_start_migration_workflow

Starts a previously created migration workflow.

bigquery_update_reservation_group

Updates an existing reservation group resource.

bigquery_delete_model

Deletes the model specified by modelId from the dataset.

bigquery_enroll_data_sources

Enroll data sources in an user project.

bigquery_get_transfer_location

Gets information about a location.

bigquery_get_transfer_resource

Returns a transfer resource.

bigquery_get_transfer_resource_regionless

Returns a transfer resource.

bigquery_list_transfer_locations

Lists information about the supported locations for this service.

bigquery_list_transfer_resources

Returns information about transfer resources.

bigquery_list_transfer_resources_regionless

Returns information about transfer resources.

bigquery_unenroll_data_sources

Unenroll data sources in an user project.

bigquery_update_model

Patch specific fields in the specified model.

bigquery_get_bi_reservation

Retrieves a BI reservation.

bigquery_search_all_assignments

Looks up assignments for a specified resource for a particular region.

bigquery_update_bi_reservation

Updates a BI reservation.

bigquery_get_migration_subtask

Gets a previously created migration subtask.

bigquery_get_project_service_account

RPC to get the service account for a project used for interactions with Google Cloud KMS.

bigquery_list_migration_subtasks

Lists previously created migration subtasks.

bigquery_list_transfer_run_logs_regionless

Returns log messages for the transfer run.

bigquery_enroll_data_sources_regionless

Enroll data sources in an user project.

bigquery_list_organization_data_exchanges

Lists all data exchanges from projects in a given organization and location.

Connect Google BigQuery to Claude, ChatGPT and Claude Code

Authorize once, then an endpoint your client signs into. Nothing to deploy, and nothing to install on the Google BigQuery side.

Bring your own Google Cloud OAuth client: paste the OAuth Client ID and Secret, authorize with an account that can use BigQuery, then pick the project queries run and bill in. Tick extra permissions only for Sheets tables or scheduled query edits.

OAuth Client ID1234567890-abc.apps.googleusercontent.com
OAuth Client Secret••••••••••••3f7a
Extra permissionsyour-google-bigquery-value
Authorize PopMCP on Google BigQueryAuthorize

Then just ask for the work

  • “How much would this query scan on the events table, and what does it return if it's under 5 GB?”

    • dry_run_query
    • run_query
  • “Show me the tables in the analytics dataset and the schema of the orders table”

    • list_datasets
    • list_tables
    • get_table
  • “Which scheduled queries failed last night, and what did their logs say?”

    • list_scheduled_queries
    • list_transfer_runs
    • list_transfer_run_logs
  • “Add these five trade-show signups to the leads table”

    • get_table
    • insert_rows

Use Google BigQuery from the assistant you already open

One hosted endpoint, registered once per client. The same tools and the same permissions, whichever window the request comes from.

Claude DesktopCustom connector

Add the PopMCP URL under Customize → Connectors and the tools appear in every chat.

Claude WebCustom connector

The same endpoint, registered in the browser. Nothing to install on the machine you are working from.

ChatGPTCustom connector

Register PopMCP as a custom connector, then let ChatGPT read and update the account.

CodexDesktop & CLI

Wire the endpoint into Codex or the Codex CLI when a task needs live business context, not a fixture.

OpenCodeCoding agent

Register the remote MCP server in OpenCode's config for terminal-first and scripted agent runs.

ZCodeDesktop app

Add PopMCP as an MCP server in Z.ai's desktop app and work the account from the same window.

Google BigQuery MCP server questions

What teams ask before putting Google BigQuery behind an AI client.

Which Google Cloud project do the queries run and bill in?

The one you pick after authorizing. It is where jobs run and are billed, and the default for every tool. It is not a lock: SQL can still read any table the Google account can read, such as a public dataset or a client's shared dataset, by its full project.dataset.table name. The picker lists projects where the account holds a project role. To narrow what the connection can read, authorize with an account that only has the access you want to give.

Can the AI change or delete data in BigQuery?

Only through the write tools. run_query is a read tool and refuses anything but one SELECT statement, checked in the SQL and again with a free dry run that asks BigQuery for the statement type. execute_sql runs INSERT, UPDATE, DELETE, MERGE, CREATE, DROP and scripts, and it is a write, like insert_rows and delete_table. New connections start read-only, so those stay off until an owner allows write actions.

How does it keep query costs down?

On-demand BigQuery bills by bytes scanned, and LIMIT does not reduce that. dry_run_query reports how many bytes a statement would process without running it or billing anything. Every query also carries a 100 GiB maximumBytesBilled by default, so BigQuery refuses a bigger one before it runs, at no charge, and the error names the limit. The AI can pass its own maximumBytesBilled when you really mean to scan more.

Can it query tables backed by Google Sheets or Drive files?

Yes, if you tick "Query Google Sheets and Drive tables" under Extra permissions when you connect. That adds Google Drive to the consent screen, where you leave both boxes ticked. Without it, a query on a Sheets-backed table fails with Google's "Permission denied while getting Drive credentials" error. The Google account you authorize with also needs access to the spreadsheet itself. To add the permission later, disconnect and connect again with it ticked.

Can the AI create or change scheduled queries?

Listing, running and deleting scheduled queries and transfers works with the default BigQuery permission, through list_scheduled_queries, start_transfer_runs and delete_transfer_config. Creating or editing one with create_scheduled_query or update_transfer_config needs "Create and edit scheduled queries and transfers" ticked when you connect, because Google only accepts its broad Google Cloud permission for that. The BigQuery Data Transfer API must be enabled in your project too.

Which BigQuery events can PopMCP watch?

13. Two are polled: a query, load, export or copy job starting, and a job finishing with an error. The rest use change detection: a dataset created or removed, a table or view created or removed, a row added to a table you watch, a scheduled query added or changed, a data transfer added, a transfer or scheduled query run finishing or failing, and a function or stored procedure created.

Do I have to run or host the Google BigQuery MCP server myself?

No. PopMCP hosts it and gives you a Streamable HTTP MCP URL. There is nothing to deploy, no callback URL to register, and no infrastructure to keep running or patch.

Which AI clients can use this MCP server?

Any client that supports a remote Streamable HTTP MCP server: Claude Desktop, Claude Web, Claude Code, ChatGPT custom connectors, Codex and the Codex CLI, OpenCode and Z.ai's ZCode, as well as editors such as Cursor, Windsurf and Zed. Your client signs in to PopMCP with OAuth; the provider credential never leaves the server.

How do I connect Google BigQuery to Claude Code?

Connect Google BigQuery in PopMCP first, then run claude mcp add --transport http popmcp https://app.popmcp.com/mcp in a terminal. Inside Claude Code, run /mcp and sign in to PopMCP in the browser window it opens, ticking Google BigQuery on the consent screen. The Google BigQuery tools are then available in that session, and no Google BigQuery credential is stored on your machine.

Why do only 35 of the 187 tools load by default?

Loading 187 tool definitions into every conversation burns context before the work starts. PopMCP loads a curated 35-tool set covering the everyday workflows and keeps the rest searchable, so your AI pulls a specialist tool only when a task needs it. Every tool stays searchable, and on Scale the owner can load the full catalog for a teammate's connection.

What is the difference between a tool and a trigger?

A tool is something your AI calls, and there are 187 here. A trigger is something PopMCP watches for you: 13 Google BigQuery events that can start work on the PopMCP side. Triggers never enter your AI client's context, and none of them ask you to paste a callback URL into Google BigQuery.

Connect Google BigQuery to your AI in minutes

Launch a hosted MCP endpoint for Google BigQuery, keep tool access under control, and start testing real workflow prompts right away.

Connect your first MCP