bigquery_create_ scheduled_ queryCreate a scheduled query: a SQL statement BigQuery runs on a schedule, optionally writing its result to a table.
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
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_ queryCreate a scheduled query: a SQL statement BigQuery runs on a schedule, optionally writing its result to a table.
bigquery_delete_ transfer_ configDeletes a data transfer configuration, including any associated transfer runs and logs.
bigquery_get_ transfer_ configReturns information about a data transfer config.
bigquery_list_ scheduled_ queriesList the scheduled queries in a project and location: name, SQL, schedule, destination dataset, state and next run time.
bigquery_list_ transfer_ configsReturns information about all transfer configs owned by a project in the specified location.
bigquery_start_ transfer_ runsManually initiates transfer runs.
bigquery_update_ transfer_ configUpdates a data transfer configuration.
bigquery_cancel_ jobRequests that a job be cancelled.
bigquery_create_ jobStarts a new asynchronous job.
bigquery_create_ tableCreates a new, empty table in the dataset.
bigquery_delete_ tableDeletes the table specified by tableId from the dataset.
bigquery_dry_ run_ queryValidate a SQL statement and estimate what it would cost WITHOUT running it.
bigquery_execute_ sqlRun 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_ jobReturns information about a specific job.
bigquery_get_ query_ resultsRPC to get the results of a query job.
bigquery_get_ tableGets the specified table resource by table ID.
bigquery_list_ jobsLists all jobs that you started in the specified project.
bigquery_list_ tablesLists all tables in the specified dataset.
bigquery_run_ queryRuns a BigQuery SQL query synchronously and returns query results if the query completes within a specified timeout.
bigquery_update_ tableUpdates information in an existing table.
bigquery_create_ routineCreates a new routine in the dataset.
bigquery_get_ routineGets the specified routine resource by routine ID.
bigquery_list_ routinesLists all routines in the specified dataset.
bigquery_create_ datasetCreates a new empty dataset.
bigquery_get_ datasetReturns the dataset specified by datasetID.
bigquery_list_ datasetsLists all datasets in the specified project to which the user has been granted the READER dataset role.
bigquery_update_ datasetUpdates information in an existing dataset.
bigquery_get_ transfer_ runReturns information about the particular transfer run.
bigquery_list_ transfer_ runsReturns information about running and completed transfer runs.
bigquery_get_ modelGets the specified model resource by model ID.
bigquery_list_ modelsLists all models in the specified dataset.
bigquery_insert_ rowsStreams data into BigQuery one record at a time without needing to run a load job.
bigquery_list_ projectsRPC to list projects to which the user has been granted any project role.
bigquery_list_ table_ rowsList the content of a table in rows.
bigquery_list_ transfer_ run_ logsReturns log messages for the transfer run.
bigquery_create_ transfer_ configCreates a new data transfer configuration.
bigquery_create_ transfer_ config_ regionlessCreates a new data transfer configuration.
bigquery_delete_ transfer_ config_ regionlessDeletes a data transfer configuration, including any associated transfer runs and logs.
bigquery_get_ transfer_ config_ regionlessReturns information about a data transfer config.
bigquery_list_ transfer_ configs_ regionlessReturns information about all transfer configs owned by a project in the specified location.
bigquery_start_ transfer_ runs_ regionlessManually initiates transfer runs.
bigquery_update_ transfer_ config_ regionlessUpdates a data transfer configuration.
bigquery_add_ data_ policy_ granteesAdds new grantees to a data policy.
bigquery_create_ data_ exchangeCreates a new data exchange.
bigquery_create_ data_ policyCreates a new data policy under a project with the given `data_policy_id` (used as the display name), and data policy type.
bigquery_create_ listingCreates a new listing.
bigquery_delete_ data_ exchangeDeletes an existing data exchange.
bigquery_delete_ data_ policyDeletes the data policy specified by its resource name.
bigquery_delete_ listingDeletes a listing.
bigquery_get_ data_ exchangeGets the details of a data exchange.
bigquery_get_ data_ exchange_ iam_ policyGets the IAM policy.
bigquery_get_ data_ policyGets the data policy specified by its resource name.
bigquery_get_ data_ policy_ iam_ policyGets the IAM policy for the specified data policy.
bigquery_get_ listingGets the details of a listing.
bigquery_get_ listing_ iam_ policyGets the IAM policy.
bigquery_list_ data_ exchange_ subscriptionsLists all subscriptions on a given Data Exchange or Listing.
bigquery_list_ data_ exchangesLists all data exchanges in a given project and location.
bigquery_list_ data_ policiesList all of the data policies in the specified parent project.
bigquery_list_ listing_ subscriptionsLists all subscriptions on a given Data Exchange or Listing.
bigquery_list_ listingsLists all listings in a given project and location.
bigquery_remove_ data_ policy_ granteesRemoves grantees from a data policy.
bigquery_set_ data_ exchange_ iam_ policySets the IAM policy.
bigquery_set_ data_ policy_ iam_ policySets the IAM policy for the specified data policy.
bigquery_set_ listing_ iam_ policySets the IAM policy.
bigquery_subscribe_ data_ exchangeCreates a Subscription to a Data Clean Room.
bigquery_subscribe_ listingSubscribes to a listing.
bigquery_test_ data_ exchange_ iam_ permissionsReturns the permissions that a caller has.
bigquery_test_ data_ policy_ iam_ permissionsReturns the caller's permission on the specified data policy resource.
bigquery_test_ listing_ iam_ permissionsReturns the permissions that a caller has.
bigquery_update_ data_ exchangeUpdates an existing data exchange.
bigquery_update_ data_ policyUpdates the metadata for an existing data policy.
bigquery_update_ listingUpdates an existing listing.
bigquery_create_ data_ policy_ v1Creates a new data policy under a project with the given `dataPolicyId` (used as the display name), policy tag, and data policy type.
bigquery_create_ reservationCreates a new reservation resource.
bigquery_delete_ data_ policy_ v1Deletes the data policy specified by its resource name.
bigquery_delete_ jobRequests the deletion of the metadata of a job.
bigquery_delete_ reservationDeletes a reservation.
bigquery_failover_ reservationFail over a reservation to the secondary location.
bigquery_get_ data_ policy_ iam_ policy_ v1Gets the IAM policy for the specified data policy.
bigquery_get_ data_ policy_ v1Gets the data policy specified by its resource name.
bigquery_get_ reservationReturns information about the reservation.
bigquery_get_ reservation_ iam_ policyGets the access control policy for a resource.
bigquery_get_ table_ iam_ policyGets the access control policy for a resource.
bigquery_list_ data_ policies_ v1List all of the data policies in the specified parent project.
bigquery_list_ reservationsLists all the reservations for the project in the specified location.
bigquery_rename_ data_ policy_ v1Renames the id (display name) of the specified data policy.
bigquery_replace_ tableUpdates information in an existing table.
bigquery_set_ data_ policy_ iam_ policy_ v1Sets the IAM policy for the specified data policy.
bigquery_set_ reservation_ iam_ policySets an access control policy for a resource.
bigquery_set_ table_ iam_ policySets the access control policy on the specified resource.
bigquery_test_ data_ policy_ iam_ permissions_ v1Returns the caller's permission on the specified data policy resource.
bigquery_test_ reservation_ iam_ permissionsGets your permissions on a resource.
bigquery_test_ table_ iam_ permissionsReturns permissions that a caller has on the specified resource.
bigquery_update_ data_ policy_ v1Updates the metadata for an existing data policy.
bigquery_update_ reservationUpdates an existing reservation resource.
bigquery_batch_ delete_ row_ access_ policiesDeletes provided row access policies.
bigquery_create_ connectionCreates a new connection.
bigquery_create_ reservation_ assignmentCreates 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_ policyCreates a row access policy.
bigquery_delete_ connectionDeletes connection and associated credential.
bigquery_delete_ reservation_ assignmentDeletes an assignment.
bigquery_delete_ routineDeletes the routine specified by routineId from the dataset.
bigquery_delete_ row_ access_ policyDeletes a row access policy.
bigquery_get_ connectionReturns specified connection.
bigquery_get_ connection_ iam_ policyGets the access control policy for a resource.
bigquery_get_ reservation_ assignment_ iam_ policyGets the access control policy for a resource.
bigquery_get_ routine_ iam_ policyGets the access control policy for a resource.
bigquery_get_ row_ access_ policyGets the specified row access policy by policy ID.
bigquery_get_ row_ access_ policy_ iam_ policyGets the access control policy for a resource.
bigquery_list_ connectionsReturns a list of connections in the given project.
bigquery_list_ reservation_ assignmentsLists assignments.
bigquery_list_ row_ access_ policiesLists all row access policies on the specified table.
bigquery_move_ reservation_ assignmentMoves an assignment under a new reservation.
bigquery_replace_ routineUpdates information in an existing routine.
bigquery_replace_ row_ access_ policyUpdates a row access policy.
bigquery_set_ connection_ iam_ policySets the access control policy on the specified resource.
bigquery_set_ reservation_ assignment_ iam_ policySets an access control policy for a resource.
bigquery_set_ routine_ iam_ policySets the access control policy on the specified resource.
bigquery_test_ connection_ iam_ permissionsReturns permissions that a caller has on the specified resource.
bigquery_test_ reservation_ assignment_ iam_ permissionsGets your permissions on a resource.
bigquery_test_ routine_ iam_ permissionsReturns permissions that a caller has on the specified resource.
bigquery_test_ row_ access_ policy_ iam_ permissionsReturns permissions that a caller has on the specified resource.
bigquery_update_ connectionUpdates the specified connection.
bigquery_update_ reservation_ assignmentUpdates an existing assignment.
bigquery_approve_ query_ templateApproves a query template.
bigquery_create_ capacity_ commitmentCreates a new capacity commitment resource.
bigquery_create_ query_ templateCreates a new QueryTemplate
bigquery_delete_ capacity_ commitmentDeletes a capacity commitment.
bigquery_delete_ datasetDeletes the dataset specified by the datasetId value.
bigquery_delete_ query_ templateDeletes a query template.
bigquery_delete_ subscriptionDeletes a subscription.
bigquery_get_ capacity_ commitmentReturns information about the capacity commitment.
bigquery_get_ query_ templateGets a QueryTemplate
bigquery_get_ subscriptionGets the details of a Subscription.
bigquery_get_ subscription_ iam_ policyGets the IAM policy.
bigquery_list_ capacity_ commitmentsLists all the capacity commitments for the admin project.
bigquery_list_ query_ templatesLists all QueryTemplates in a given project and location.
bigquery_list_ subscriptionsLists all subscriptions in a given project and location.
bigquery_merge_ capacity_ commitmentsMerges capacity commitments of the same plan into a single commitment.
bigquery_refresh_ subscriptionRefreshes a Subscription to a Data Exchange.
bigquery_replace_ datasetUpdates information in an existing dataset.
bigquery_revoke_ subscriptionRevokes a given subscription.
bigquery_set_ subscription_ iam_ policySets the IAM policy.
bigquery_split_ capacity_ commitmentSplits capacity commitment to two commitments of the same plan and `commitment_end_time`.
bigquery_submit_ query_ templateSubmits a query template for approval.
bigquery_undelete_ datasetUndeletes a dataset which is within time travel window based on datasetId.
bigquery_update_ capacity_ commitmentUpdates an existing capacity commitment.
bigquery_update_ query_ templateUpdates an existing QueryTemplate
bigquery_check_ data_ source_ credentialsReturns true if valid credentials exist for the given data source and requesting user.
bigquery_check_ data_ source_ credentials_ regionlessReturns true if valid credentials exist for the given data source and requesting user.
bigquery_delete_ transfer_ runDeletes the specified transfer run.
bigquery_delete_ transfer_ run_ regionlessDeletes the specified transfer run.
bigquery_get_ data_ sourceRetrieves a supported data source and returns its settings.
bigquery_get_ data_ source_ regionlessRetrieves a supported data source and returns its settings.
bigquery_get_ transfer_ run_ regionlessReturns information about the particular transfer run.
bigquery_list_ data_ sourcesLists supported data sources and returns their settings.
bigquery_list_ data_ sources_ regionlessLists supported data sources and returns their settings.
bigquery_list_ transfer_ runs_ regionlessReturns information about running and completed transfer runs.
bigquery_create_ migration_ workflowCreates a migration workflow.
bigquery_create_ reservation_ groupCreates a new reservation group.
bigquery_delete_ migration_ workflowDeletes a migration workflow by name.
bigquery_delete_ reservation_ groupDeletes a reservation.
bigquery_get_ migration_ workflowGets a previously created migration workflow.
bigquery_get_ reservation_ groupReturns information about the reservation group.
bigquery_list_ migration_ workflowsLists previously created migration workflow.
bigquery_list_ reservation_ groupsLists all the reservation groups for the project in the specified location.
bigquery_start_ migration_ workflowStarts a previously created migration workflow.
bigquery_update_ reservation_ groupUpdates an existing reservation group resource.
bigquery_delete_ modelDeletes the model specified by modelId from the dataset.
bigquery_enroll_ data_ sourcesEnroll data sources in an user project.
bigquery_get_ transfer_ locationGets information about a location.
bigquery_get_ transfer_ resourceReturns a transfer resource.
bigquery_get_ transfer_ resource_ regionlessReturns a transfer resource.
bigquery_list_ transfer_ locationsLists information about the supported locations for this service.
bigquery_list_ transfer_ resourcesReturns information about transfer resources.
bigquery_list_ transfer_ resources_ regionlessReturns information about transfer resources.
bigquery_unenroll_ data_ sourcesUnenroll data sources in an user project.
bigquery_update_ modelPatch specific fields in the specified model.
bigquery_get_ bi_ reservationRetrieves a BI reservation.
bigquery_search_ all_ assignmentsLooks up assignments for a specified resource for a particular region.
bigquery_update_ bi_ reservationUpdates a BI reservation.
bigquery_get_ migration_ subtaskGets a previously created migration subtask.
bigquery_get_ project_ service_ accountRPC to get the service account for a project used for interactions with Google Cloud KMS.
bigquery_list_ migration_ subtasksLists previously created migration subtasks.
bigquery_list_ transfer_ run_ logs_ regionlessReturns log messages for the transfer run.
bigquery_enroll_ data_ sources_ regionlessEnroll data sources in an user project.
bigquery_list_ organization_ data_ exchangesLists all data exchanges from projects in a given organization and location.
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.
1234567890-abc.apps.googleusercontent.com••••••••••••3f7ayour-google-bigquery-valuerun_query only runs one SELECT. Once an owner allows writes (off by default), execute_sql, insert_rows and delete_table change data as soon as the AI calls them. Tick BigQuery on the PopMCP consent screen only for clients that should write; IAM still applies.
Drop the PopMCP URL into Claude, ChatGPT, Claude Code, Codex or any other supported client. It signs in through PopMCP with OAuth, so your Google BigQuery credential never leaves the server.
app.popmcp.com/mcpAsk for something harmless before the agent changes anything. Writes run as soon as it calls them, so confirm it reads the right account first.
How much would this query scan on the events table, and what does it return if it's under 5 GB?
bigquery_dry_run_queryok
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?”
“Show me the tables in the analytics dataset and the schema of the orders table”
“Which scheduled queries failed last night, and what did their logs say?”
“Add these five trade-show signups to the leads table”
One hosted endpoint, registered once per client. The same tools and the same permissions, whichever window the request comes from.
Add the PopMCP URL under Customize → Connectors and the tools appear in every chat.
The same endpoint, registered in the browser. Nothing to install on the machine you are working from.
Register PopMCP as a custom connector, then let ChatGPT read and update the account.
Wire the endpoint into Codex or the Codex CLI when a task needs live business context, not a fixture.
Register the remote MCP server in OpenCode's config for terminal-first and scripted agent runs.
Add PopMCP as an MCP server in Z.ai's desktop app and work the account from the same window.
FAQ
What teams ask before putting Google BigQuery behind an AI client.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
Launch a hosted MCP endpoint for Google BigQuery, keep tool access under control, and start testing real workflow prompts right away.