Skip to main content
Glama

Server Details

The BigQuery remote MCP server is a fully managed service that uses the Model Context Protocol to connect AI applications and LLMs to BigQuery data sources. It provides secure, standardized tools for AI agents to list datasets and tables, retrieve schemas, generate and execute SQL queries through natural language, and analyze data—enabling direct access to enterprise analytics data without requiring manual SQL coding.

If you are the author of this connector, you can claim ownership with GitHub, an HTTP challenge, or a DNS record. Claimed connector authors can inspect health checks, view analytics, and manage their listing.
Status
Healthy
Uptime
100.0% over 38 days
Last Tested
Transport
Streamable HTTP · MCP 2025-11-25
URL

TDQS

A4.4/5.0

Scored across 8 tools

Disambiguation5/5

Each tool has a clearly distinct purpose: execute_sql for write/DDL operations, execute_sql_readonly strictly for SELECT, get_query_results for polling job status, cancel_job for termination, and metadata tools for datasets and tables. The descriptions provide explicit guidance on when to use each, eliminating ambiguity.

Naming Consistency5/5

All tool names follow a consistent verb_noun pattern: execute_sql, execute_sql_readonly, get_query_results, get_dataset_info, get_table_info, list_dataset_ids, list_table_ids, cancel_job. The only minor deviation is cancel_job vs. the prefix 'execute' or 'get', but the pattern remains readable and predictable.

Tool Count5/5

With 8 tools, the set is well-scoped for a BigQuery MCP server. It covers the essential operations—query execution, job management, and metadata retrieval—without unnecessary redundancy.

Completeness5/5

The surface covers the full query lifecycle: execution (read/write), result retrieval (including pagination), job cancellation, and dataset/table metadata listing and retrieval. No obvious gaps for typical BigQuery workflows; create/update operations are handled via SQL through execute_sql.

Available Tools

8 tools
cancel_jobA
DestructiveIdempotent
Inspect

Cancel a running BigQuery job.

Use this tool to cancel a query job that is currently executing (i.e. returned job_complete: false with a job_id from execute_sql or execute_sql_readonly). Specify the job_id to abort.

ParametersJSON Schema
NameRequiredDescriptionDefault
jobIdYesRequired. Job ID of the job to cancel.
locationNoOptional. The geographic location of the job.
projectIdYesRequired. Project ID of the job to cancel.

Output Schema

ParametersJSON Schema
NameRequiredDescription
jobNoThe final state of the job.
kindNoThe resource type of the response.

TDQS

A4.5/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already indicate destructive and non-read-only behavior; the description adds that only running jobs are affected and that a job must have returned `job_complete: false`. This is useful behavioral context beyond the structured annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is concise, front-loaded with the core action, and each sentence adds relevant context. No filler or redundant restatement of the schema.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple cancellation tool with fully documented parameters, clear annotations, and a known trigger condition, the description is complete. It gives the agent enough to call the tool correctly without missing prerequisites or ambiguous behavior.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so each parameter is documented. The description adds meaningful provenance for jobId, explaining that it comes from execute_sql or execute_sql_readonly, which helps an agent supply a correct value.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb ('Cancel'), a specific resource ('running BigQuery job'), and even clarifies the trigger condition (`job_complete: false`). This clearly distinguishes the tool from sibling tools like execute_sql or get_query_results.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description clearly says when to use the tool: to cancel a currently executing query job returned by execute_sql or execute_sql_readonly. It does not explicitly state when not to use it, such as ignoring completed jobs, but the context makes the intended use unambiguous.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

execute_sqlA
Destructive
Inspect

Run a SQL query in the project and return the result. Prefer the execute_sql_readonly tool if possible.

This tool can execute any query that bigquery supports including:

  • SQL Queries (SELECT, INSERT, UPDATE, DELETE, CREATE, etc.)

  • AI/ML functions like AI.FORECAST, ML.EVALUATE, ML.PREDICT

  • Any other query that bigquery supports.

Example Queries:

-- Insert data into a table.
INSERT INTO `my_project.my_dataset`.my_table (name, age)
VALUES ('Alice', 30);

-- Create a table.
CREATE TABLE `my_project.my_dataset`.my_table (
  name STRING,
  age INT64);

-- DELETE data from a table.
DELETE FROM `my_project.my_dataset`.my_table WHERE name = 'Alice';

-- Create Dataset
CREATE SCHEMA `my_project.my_dataset` OPTIONS (location = 'US');

-- Drop table
DROP TABLE `my_project.my_dataset`.my_table;

-- Drop dataset
DROP SCHEMA `my_project.my_dataset`;

-- Create Model
CREATE OR REPLACE MODEL `my_project.my_dataset.my_model`
OPTIONS (
  model_type = 'LINEAR_REG'
  LS_INIT_LEARN_RATE=0.15,
  L1_REG=1,
  MAX_ITERATIONS=5,
  DATA_SPLIT_METHOD='SEQ',
  DATA_SPLIT_EVAL_FRACTION=0.3,
  DATA_SPLIT_COL='timestamp') AS
SELECT col1, col2, timestamp, label FROM `my_project.my_dataset.my_table`;

Queries executed using the execute_sql tool will always have the default job label goog-mcp-server: true automatically set in addition to any custom labels provided in the request. Queries are charged to the project specified in the project_id field.

Query Execution Behavior:

  • If the query completes within the synchronous timeout (default 20 seconds or custom timeout_ms), the tool returns job_complete: true and the initial result rows directly. For fast queries, job_id may be omitted as no persistent background job is created; no further action or polling is needed.

  • If the query takes longer than timeout_ms, the tool returns job_complete: false and a job_id. In this case, use the get_query_results tool with job_id to poll until job_complete: true, or use cancel_job to abort the running query.

  • You can optionally specify timeout_ms to configure the maximum synchronous wait time in milliseconds (defaults to 20,000 ms), and job_timeout_ms to enforce a hard server-side timeout after which BigQuery automatically terminates the job.

ParametersJSON Schema
NameRequiredDescriptionDefault
queryYesRequired. The query to execute in the form of a GoogleSQL query.
dryRunNoOptional. If set to true, BigQuery doesn't run the job. Instead, if the query is valid, BigQuery returns statistics about the job such as how many bytes would be processed. If the query is invalid, an error returns. The default value is false.
labelsNoOptional. The labels associated with this query. Labels can be used to organize and group query jobs. Label keys and values can be no longer than 63 characters, can only contain lowercase letters, numeric characters, underscores and dashes. International characters are allowed. Label keys must start with a letter and each label in the map must have a different key.
projectIdYesRequired. Project that will be used for query execution and billing.
timeoutMsNoOptional. Optional: Specifies the maximum amount of time, in milliseconds, that the client is willing to wait for the query to complete. By default, this limit is 20 seconds (20,000 milliseconds).
jobTimeoutMsNoOptional. Optional: Job timeout in milliseconds. If this time limit is exceeded, BigQuery will attempt to stop the query job.

Output Schema

ParametersJSON Schema
NameRequiredDescription
rowsNoAn object with as many results as can be contained within the maximum permitted reply size. To get any additional rows, you can call GetQueryResults and specify the jobReference returned above.
jobIdNoOutput only. The ID of the BigQuery job created for this query, if any. Present when a query job is created (e.g. for long-running operations, DML, scripts). Use this ID with `get_query_results`, `cancel_job`, or `get_job`.
errorsNoOutput only. The first errors or warnings encountered during the running of the job. The final message includes the number of errors that caused the process to stop. Errors here do not necessarily mean that the job has completed or was unsuccessful. For more information about error messages, see [Error messages](https://cloud.google.com/bigquery/docs/error-messages).
schemaNoThe schema of the results. Present only when the query completes successfully.
queryIdNoOutput only. The ID of the query.
jobCompleteNoWhether the query has completed or not. If rows or totalRows are present, this will always be true. If this is false, totalRows will not be available.
totalSlotMsNoOutput only. Number of slot ms the user is actually billed for.
totalBytesBilledNoOutput only. The total number of bytes billed for the query. Only applies if the project is configured to use on-demand pricing.
numDmlAffectedRowsNoOutput only. The number of rows affected by a DML statement.
totalBytesProcessedNoOutput only. The total number of bytes processed for this query.

TDQS

A4.8/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

This is a rich, honest disclosure of behavior beyond the annotations: queries are billed to the specified project, a default job label is applied, synchronous behavior is bounded by `timeout_ms`, and long queries return `job_complete: false` with a `job_id` requiring follow-up. This fully prepares the agent for side effects and asynchronous behavior.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is well-organized with clear sections and front-loaded routing guidance. It is longer than strictly necessary, with some repetition ('Any other query that bigquery supports') and a lengthy example block, but the structure keeps it scannable and the examples are informative for a SQL execution tool.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a tool with significant side effects, async behavior, billing implications, and several related sibling tools, this description is complete. It covers what the tool can run, the read-only alternative, timeout behavior, polling, cancellation, labels, and billing project selection. The output schema covers return values, so nothing essential is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the schema already documents all parameters. The description adds value by explaining the practical effect of `timeout_ms` and `job_timeout_ms`, and by noting the automatic default label on top of any custom `labels` provided. This goes beyond the schema without fully re-documenting each parameter.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a clear verb and resource ('Run a SQL query in the project and return the result') and immediately distinguishes itself from the read-only sibling. The examples clarify the full scope including DML, DDL, and AI/ML functions, so an agent can confidently identify what this tool does.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explicitly instructs agents to prefer `execute_sql_readonly` when possible, providing a clear routing rule. It also explains when to use `get_query_results` for polling and `cancel_job` for aborting long-running queries, giving actionable guidance for the main workflow.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

execute_sql_readonlyA
Read-onlyIdempotent
Inspect

Run a read-only SQL query in the project and return the result. Prefer this tool over execute_sql if possible.

This tool is restricted to only SELECT statements. INSERT, UPDATE, and DELETE statements and stored procedures aren't allowed. If the query doesn't include a SELECT statement, an error is returned. For information on creating queries, see the GoogleSQL documentation.

Example Queries:

-- Count the number of penguins in each island.
SELECT island, COUNT(*) AS population
FROM bigquery-public-data.ml_datasets.penguins GROUP BY island

-- Evaluate a bigquery ML Model.
SELECT * FROM ML.EVALUATE(MODEL `my_dataset.my_model`)

-- Evaluate BigQuery ML model on custom data
SELECT *
FROM ML.EVALUATE(MODEL `my_dataset.my_model`, (SELECT * FROM `my_dataset.my_table`))

-- Predict using BigQuery ML model:
SELECT *
FROM ML.PREDICT(MODEL `my_dataset.my_model`, (SELECT * FROM `my_dataset.my_table`))

-- Forecast data using AI.FORECAST
SELECT *
FROM AI.FORECAST(TABLE `project.dataset.my_table`, data_col => 'num_trips',
  timestamp_col => 'date', id_cols => ['usertype'], horizon => 30)

Queries executed using the execute_sql_readonly tool will always have the job label goog-mcp-server: true automatically set in addition to any custom labels provided in the request. Queries are charged to the project specified in the project_id field.

Query Execution Behavior:

  • If the query completes within the synchronous timeout (default 20 seconds or custom timeout_ms), the tool returns job_complete: true and the result rows directly. For fast queries, job_id may be omitted as no persistent background job is created; no further action or polling is needed.

  • If the query takes longer than timeout_ms, the tool returns job_complete: false and a job_id. In this case, use the get_query_results tool with job_id to poll until job_complete: true, or use cancel_job to abort the running query.

  • You can optionally specify timeout_ms to configure the maximum synchronous wait time in milliseconds (defaults to 20,000 ms), and job_timeout_ms to enforce a hard server-side timeout after which BigQuery automatically terminates the job.

ParametersJSON Schema
NameRequiredDescriptionDefault
queryYesRequired. The query to execute in the form of a GoogleSQL query.
dryRunNoOptional. If set to true, BigQuery doesn't run the job. Instead, if the query is valid, BigQuery returns statistics about the job such as how many bytes would be processed. If the query is invalid, an error returns. The default value is false.
labelsNoOptional. The labels associated with this query. Labels can be used to organize and group query jobs. Label keys and values can be no longer than 63 characters, can only contain lowercase letters, numeric characters, underscores and dashes. International characters are allowed. Label keys must start with a letter and each label in the map must have a different key.
projectIdYesRequired. Project that will be used for query execution and billing.
timeoutMsNoOptional. Optional: Specifies the maximum amount of time, in milliseconds, that the client is willing to wait for the query to complete. By default, this limit is 20 seconds (20,000 milliseconds).
jobTimeoutMsNoOptional. Optional: Job timeout in milliseconds. If this time limit is exceeded, BigQuery will attempt to stop the query job.

Output Schema

ParametersJSON Schema
NameRequiredDescription
rowsNoAn object with as many results as can be contained within the maximum permitted reply size. To get any additional rows, you can call GetQueryResults and specify the jobReference returned above.
jobIdNoOutput only. The ID of the BigQuery job created for this query, if any. Present when a query job is created (e.g. for long-running operations, DML, scripts). Use this ID with `get_query_results`, `cancel_job`, or `get_job`.
errorsNoOutput only. The first errors or warnings encountered during the running of the job. The final message includes the number of errors that caused the process to stop. Errors here do not necessarily mean that the job has completed or was unsuccessful. For more information about error messages, see [Error messages](https://cloud.google.com/bigquery/docs/error-messages).
schemaNoThe schema of the results. Present only when the query completes successfully.
queryIdNoOutput only. The ID of the query.
jobCompleteNoWhether the query has completed or not. If rows or totalRows are present, this will always be true. If this is false, totalRows will not be available.
totalSlotMsNoOutput only. Number of slot ms the user is actually billed for.
totalBytesBilledNoOutput only. The total number of bytes billed for the query. Only applies if the project is configured to use on-demand pricing.
numDmlAffectedRowsNoOutput only. The number of rows affected by a DML statement.
totalBytesProcessedNoOutput only. The total number of bytes processed for this query.

TDQS

A4.6/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Beyond the `readOnlyHint` and `destructiveHint` annotations, the description adds crucial behavioral details: it automatically sets a job label, bills to the specified project, and explains the synchronous vs asynchronous execution model including timeouts and polling necessity. It also wraps up with clear query execution behavior, which is not captured by annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is thorough but well-structured, starting with a clear purpose and preference, followed by restrictions and examples, and then detailed execution behavior. It uses headings and bullet points to break down complex information, and though long, every sentence contributes to operational clarity with no filler.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

While the tool is complex with parameters like `dryRun` and `labels`, the description covers the main execution flow and error conditions but doesn't explicitly describe the output schema or return structure details. However, since an output schema is present sites can infer results, and the description explains job completion states. Missing a few details on `dryRun` and `labels` beyond schema, but overall adequate for the complexity.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% and each parameter is described in the schema, so the description doesn't repeat that. However, it adds context for `timeout_ms` and `job_timeout_ms` by explaining their roles in the execution flow, which goes slightly beyond the schema. Given high coverage, baseline 3 applies; the description adds minor extra value.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool runs a read-only SQL query and returns results, specifying it only supports SELECT statements. It distinguishes itself from `execute_sql` by explicitly preferring this tool when possible, making it easy to identify its specific role among siblings.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It explicitly instructs to prefer this tool over `execute_sql` when possible, and clarifies that non-SELECT statements are not allowed alerting users to errors. It also provides guidance on asynchronous behavior, referencing `get_query_results` and `cancel_job` for long-running queries, making when-to-use alternatives clear.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_dataset_infoA
Read-onlyIdempotent
Inspect

Get metadata information about a BigQuery dataset or BigLake namespace.

ParametersJSON Schema
NameRequiredDescriptionDefault
datasetIdYesRequired. Dataset ID of the dataset request.
projectIdYesRequired. Project ID of the dataset request.

Output Schema

ParametersJSON Schema
NameRequiredDescription
idNoOutput only. The fully-qualified unique name of the dataset in the format projectId:datasetId. The dataset name without the project name is given in the datasetId field. When creating a new dataset, leave this field blank, and instead specify the datasetId field.
etagNoOutput only. A hash of the resource.
kindNoOutput only. The resource type.
tagsNoOutput only. Tags for the dataset. To provide tags as inputs, use the `resourceTags` field.
typeNoOutput only. Same as `type` in `ListFormatDataset`. The type of the dataset, one of: * DEFAULT - only accessible by owner and authorized accounts, * PUBLIC - accessible by everyone, * LINKED - linked dataset, * EXTERNAL - dataset with definition in external metadata catalog, * BIGLAKE_ICEBERG - a Biglake dataset accessible through the Iceberg API, * BIGLAKE_HIVE - a Biglake dataset accessible through the Hive API.
accessNoOptional. An array of objects that define dataset access for one or more entities. You can set this property when inserting or updating a dataset in order to control who is allowed to access the data. If unspecified at dataset creation time, BigQuery adds default dataset access for the following entities: access.specialGroup: projectReaders; access.role: READER; access.specialGroup: projectWriters; access.role: WRITER; access.specialGroup: projectOwners; access.role: OWNER; access.userByEmail: [dataset creator email]; access.role: OWNER; If you patch a dataset, then this field is overwritten by the patched dataset's access field. To add entities, you must supply the entire existing access array in addition to any new entities that you want to add.
labelsNoThe labels associated with this dataset. You can use these to organize and group your datasets. You can set this property when inserting or updating a dataset. See [Creating and Updating Dataset Labels](https://cloud.google.com/bigquery/docs/creating-managing-labels#creating_and_updating_dataset_labels) for more information.
locationNoThe geographic location where the dataset should reside. See https://cloud.google.com/bigquery/docs/locations for supported locations.
selfLinkNoOutput only. A URL that can be used to access the resource again. You can use this URL in Get or Update requests to the resource.
descriptionNoOptional. A user-friendly description of the dataset.
creationTimeNoOutput only. The time when this dataset was created, in milliseconds since the epoch.
friendlyNameNoOptional. A descriptive name for the dataset.
resourceTagsNoOptional. The [tags](https://cloud.google.com/bigquery/docs/tags) attached to this dataset. Tag keys are globally unique. Tag key is expected to be in the namespaced format, for example "123456789012/environment" where 123456789012 is the ID of the parent organization or project resource for this tag key. Tag value is expected to be the short name, for example "Production". See [Tag definitions](https://cloud.google.com/iam/docs/tags-access-control#definitions) for more details.
restrictionsNoOptional. Output only. Restriction config for all tables and dataset. If set, restrict certain accesses on the dataset and all its tables based on the config. See [Data egress](https://cloud.google.com/bigquery/docs/analytics-hub-introduction#data_egress) for more details.
satisfiesPziNoOutput only. Reserved for future use.
satisfiesPzsNoOutput only. Reserved for future use.
catalogSourceNoOutput only. The origin of the dataset, one of: * (Unset) - Native BigQuery Dataset * BIGLAKE - Dataset is backed by a namespace stored natively in Biglake
datasetReferenceNoRequired. A reference that identifies the dataset.
defaultCollationNoOptional. Defines the default collation specification of future tables created in the dataset. If a table is created in this dataset without table-level default collation, then the table inherits the dataset default collation, which is applied to the string fields that do not have explicit collation specified. A change to this field affects only tables created afterwards, and does not alter the existing tables. The following values are supported: * 'und:ci': undetermined locale, case insensitive. * '': empty string. Default to case-sensitive behavior.
lastModifiedTimeNoOutput only. The date when this dataset was last modified, in milliseconds since the epoch.
isCaseInsensitiveNoOptional. TRUE if the dataset and its table names are case-insensitive, otherwise FALSE. By default, this is FALSE, which means the dataset and its table names are case-sensitive. This field does not affect routine references.
maxTimeTravelHoursNoOptional. Defines the time travel window in hours. The value can be from 48 to 168 hours (2 to 7 days). The default value is 168 hours if this is not set.
defaultRoundingModeNoOptional. Defines the default rounding mode specification of new tables created within this dataset. During table creation, if this field is specified, the table within this dataset will inherit the default rounding mode of the dataset. Setting the default rounding mode on a table overrides this option. Existing tables in the dataset are unaffected. If columns are defined during that table creation, they will immediately inherit the table's default rounding mode, unless otherwise specified.
linkedDatasetSourceNoOptional. The source dataset reference when the dataset is of type LINKED. For all other dataset types it is not set. This field cannot be updated once it is set. Any attempt to update this field using Update and Patch API Operations will be ignored.
storageBillingModelNoOptional. Updates storage_billing_model for the dataset.
linkedDatasetMetadataNoOutput only. Metadata about the LinkedDataset. Filled out when the dataset type is LINKED.
defaultTableExpirationMsNoOptional. The default lifetime of all tables in the dataset, in milliseconds. The minimum lifetime value is 3600000 milliseconds (one hour). To clear an existing default expiration with a PATCH request, set to 0. Once this property is set, all newly-created tables in the dataset will have an expirationTime property set to the creation time plus the value in this property, and changing the value will only affect new tables, not existing ones. When the expirationTime for a given table is reached, that table will be deleted automatically. If a table's expirationTime is modified or removed before the table expires, or if you provide an explicit expirationTime when creating a table, that value takes precedence over the default expiration time indicated by this property.
externalDatasetReferenceNoOptional. Reference to a read-only external dataset defined in data catalogs outside of BigQuery. Filled out when the dataset type is EXTERNAL.
defaultPartitionExpirationMsNoThis default partition expiration, expressed in milliseconds. When new time-partitioned tables are created in a dataset where this property is set, the table will inherit this value, propagated as the `TimePartitioning.expirationMs` property on the new table. If you set `TimePartitioning.expirationMs` explicitly when creating a table, the `defaultPartitionExpirationMs` of the containing dataset is ignored. When creating a partitioned table, if `defaultPartitionExpirationMs` is set, the `defaultTableExpirationMs` value is ignored and the table will not be inherit a table expiration deadline.
externalCatalogDatasetOptionsNoOptional. Options defining open source compatible datasets living in the BigQuery catalog. Contains metadata of open source database, schema or namespace represented by the current dataset.
defaultEncryptionConfigurationNoThe default encryption key for all tables in the dataset. After this property is set, the encryption key of all newly-created tables in the dataset is set to this value unless the table creation request or query explicitly overrides the key.

TDQS

A3.6/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, covering the safety profile. The description adds 'metadata information' but no extra behavioral context like response format or limitations. It does not contradict annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single sentence that is front-loaded with the verb and resource, with no redundant wording. It is concise and well-structured.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple metadata retrieval tool, the description is adequate. The output schema exists to define return values, and annotations cover safety. It could mention the relationship to sibling tools, but that is not essential for a straightforward get operation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100% with clear descriptions for both projectId and datasetId. The tool description adds no additional parameter meaning, so the baseline of 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb 'Get' and the resource 'metadata information about a BigQuery dataset or BigLake namespace'. It distinguishes from siblings like get_table_info (table metadata) and list_dataset_ids (listing IDs).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides no guidance on when to use this tool versus alternatives such as get_table_info or list_dataset_ids. It does not mention typical scenarios or exclusions, leaving the agent to infer context.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_query_resultsA
Read-onlyIdempotent
Inspect

Get the results of a BigQuery SQL query job.

Use this tool ONLY when:

  1. A previous execute_sql or execute_sql_readonly call returned job_complete: false with a job_id (poll with this tool until job_complete: true), OR

  2. You need to paginate through additional rows using page_token or start_index for a previously completed job.

Do NOT call this tool if the query already returned job_complete: true with all rows.

Supports pagination. Use max_results to limit results and page_token to retrieve the next page of results.

ParametersJSON Schema
NameRequiredDescriptionDefault
jobIdYesRequired. Job ID of the query job.
locationNoOptional. The geographic location of the job.
pageTokenNoOptional. Page token, returned by a previous call, to request the next page of results.
projectIdYesRequired. Project ID of the query job.
timeoutMsNoOptional. Specifies the maximum amount of time, in milliseconds, that the client is willing to wait for the query to complete.
maxResultsNoOptional. Maximum number of results to read.
startIndexNoOptional. Zero-based index of the starting row.

Output Schema

ParametersJSON Schema
NameRequiredDescription
rowsNoAn object with as many results as can be contained within the maximum permitted reply size. To get any additional rows, you can call GetQueryResults and specify the jobReference returned above.
jobIdNoOutput only. The ID of the BigQuery job created for this query, if any. Present when a query job is created (e.g. for long-running operations, DML, scripts). Use this ID with `get_query_results`, `cancel_job`, or `get_job`.
errorsNoOutput only. The first errors or warnings encountered during the running of the job. The final message includes the number of errors that caused the process to stop. Errors here do not necessarily mean that the job has completed or was unsuccessful. For more information about error messages, see [Error messages](https://cloud.google.com/bigquery/docs/error-messages).
schemaNoThe schema of the results. Present only when the query completes successfully.
queryIdNoOutput only. The ID of the query.
jobCompleteNoWhether the query has completed or not. If rows or totalRows are present, this will always be true. If this is false, totalRows will not be available.
totalSlotMsNoOutput only. Number of slot ms the user is actually billed for.
totalBytesBilledNoOutput only. The total number of bytes billed for the query. Only applies if the project is configured to use on-demand pricing.
numDmlAffectedRowsNoOutput only. The number of rows affected by a DML statement.
totalBytesProcessedNoOutput only. The total number of bytes processed for this query.

TDQS

A4.5/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The annotations already declare readOnlyHint: true, idempotentHint: true, and destructiveHint: false, so the safety profile is covered. The description adds valuable behavioral context about polling semantics (job_complete states), pagination via page_token, and use of max_results to limit results. This goes beyond the structured annotations to explain the tool's operational pattern.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is tight and well-structured: a one-sentence purpose, then clear numbered conditions for use, a negative instruction, and a short pagination note. Every sentence earns its place and the most important scoping information is front-loaded.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the rich input schema (7 params, all described) and the presence of an output schema, the description is comprehensive enough for correct invocation. It covers the workflow triggers, the polling loop, pagination, and the critical 'do not call' case. No significant missing context prevents an agent from using the tool correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the parameter meanings are already fully documented. The description adds minimal extra value by pointing out that max_results limits results and page_token retrieves the next page, but that information largely mirrors the schema. A score of 3 is appropriate because the schema carries the semantic weight.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description opens with a clear verb+resource: 'Get the results of a BigQuery SQL query job.' It is distinct from sibling tools such as execute_sql, cancel_job, or get_table_info, which have different responsibilities. The purpose is immediately clear and specific.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explicitly defines when to use the tool: after a prior execute_sql or execute_sql_readonly returned job_complete: false, or when paginating through additional rows. It also states when NOT to call it, saying to avoid calling if the query already returned job_complete: true with all rows. This gives an agent decisive routing guidance against alternatives.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_table_infoA
Read-onlyIdempotent
Inspect

Get metadata information about a BigQuery table or BigLake table.

ParametersJSON Schema
NameRequiredDescriptionDefault
tableIdYesRequired. Table ID of the table request.
datasetIdYesRequired. Dataset ID of the table request.
projectIdYesRequired. Project ID of the table request.

Output Schema

ParametersJSON Schema
NameRequiredDescription
idNoOutput only. An opaque ID uniquely identifying the table.
etagNoOutput only. A hash of this resource.
kindNoThe type of resource ID.
typeNoOutput only. Describes the table type. The following values are supported: * `TABLE`: A normal BigQuery table. * `VIEW`: A virtual table defined by a SQL query. * `EXTERNAL`: A table that references data stored in an external storage system, such as Google Cloud Storage. * `MATERIALIZED_VIEW`: A precomputed view defined by a SQL query. * `SNAPSHOT`: An immutable BigQuery table that preserves the contents of a base table at a particular time. See additional information on [table snapshots](https://cloud.google.com/bigquery/docs/table-snapshots-intro). The default value is `TABLE`.
viewNoOptional. The view definition.
labelsNoThe labels associated with this table. You can use these to organize and group your tables. Label keys and values can be no longer than 63 characters, can only contain lowercase letters, numeric characters, underscores and dashes. International characters are allowed. Label values are optional. Label keys must start with a letter and each label in the list must have a different key.
schemaNoOptional. Describes the schema of this table.
numRowsNoOutput only. The number of rows of data in this table, excluding any data in the streaming buffer.
locationNoOutput only. The geographic location where the table resides. This value is inherited from the dataset.
numBytesNoOutput only. The size of this table in logical bytes, excluding any data in the streaming buffer.
replicasNoOptional. Output only. Table references of all replicas currently active on the table.
selfLinkNoOutput only. A URL that can be used to access this resource again.
clusteringNoClustering specification for the table. Must be specified with time-based partitioning, data in the table will be first partitioned and subsequently clustered.
descriptionNoOptional. A user-friendly description of this table.
creationTimeNoOutput only. The time when this table was created, in milliseconds since the epoch.
friendlyNameNoOptional. A descriptive name for this table.
maxStalenessNoOptional. The maximum staleness of data that could be returned when the table (or stale MV) is queried. Staleness encoded as a string encoding of sql IntervalValue type.
resourceTagsNoOptional. The [tags](https://cloud.google.com/bigquery/docs/tags) attached to this table. Tag keys are globally unique. Tag key is expected to be in the namespaced format, for example "123456789012/environment" where 123456789012 is the ID of the parent organization or project resource for this tag key. Tag value is expected to be the short name, for example "Production". See [Tag definitions](https://cloud.google.com/iam/docs/tags-access-control#definitions) for more details.
restrictionsNoOptional. Output only. Restriction config for table. If set, restrict certain accesses on the table based on the config. See [Data egress](https://cloud.google.com/bigquery/docs/analytics-hub-introduction#data_egress) for more details.
numPartitionsNoOutput only. The number of partitions present in the table or materialized view. This data is not kept in real time, and might be delayed by a few seconds to a few minutes.
expirationTimeNoOptional. The time when this table expires, in milliseconds since the epoch. If not present, the table will persist indefinitely. Expired tables will be deleted and their storage reclaimed. The defaultTableExpirationMs property of the encapsulating dataset can be used to set a default expirationTime on newly created tables.
tableReferenceNoRequired. Reference describing the ID of this table.
cloneDefinitionNoOutput only. Contains information about the clone. This value is set via the clone operation.
streamingBufferNoOutput only. Contains information regarding this table's streaming buffer, if one is present. This field will be absent if the table is not being streamed to or if there is no data in the streaming buffer.
defaultCollationNoOptional. Defines the default collation specification of new STRING fields in the table. During table creation or update, if a STRING field is added to this table without explicit collation specified, then the table inherits the table default collation. A change to this field affects only fields added afterwards, and does not alter the existing fields. The following values are supported: * 'und:ci': undetermined locale, case insensitive. * '': empty string. Default to case-sensitive behavior.
lastModifiedTimeNoOutput only. The time when this table was last modified, in milliseconds since the epoch.
managedTableTypeNoOptional. If set, overrides the default managed table type configured in the dataset.
materializedViewNoOptional. The materialized view definition.
numLongTermBytesNoOutput only. The number of logical bytes in the table that are considered "long-term storage".
numPhysicalBytesNoOutput only. The physical size of this table in bytes. This includes storage used for time travel.
tableConstraintsNoOptional. Tables Primary Key and Foreign Key information
timePartitioningNoIf specified, configures time-based partitioning for this table.
rangePartitioningNoIf specified, configures range partitioning for this table.
snapshotDefinitionNoOutput only. Contains information about the snapshot. This value is set via snapshot creation.
defaultRoundingModeNoOptional. Defines the default rounding mode specification of new decimal fields (NUMERIC OR BIGNUMERIC) in the table. During table creation or update, if a decimal field is added to this table without an explicit rounding mode specified, then the field inherits the table default rounding mode. Changing this field doesn't affect existing fields.
partitionDefinitionNoOptional. The partition information for all table formats, including managed partitioned tables, hive partitioned tables, iceberg partitioned, and metastore partitioned tables. This field is only populated for metastore partitioned tables. For other table formats, this is an output only field.
biglakeConfigurationNoOptional. Specifies the configuration of a BigQuery table for Apache Iceberg.
numTotalLogicalBytesNoOutput only. Total number of logical bytes in the table or materialized view.
tableReplicationInfoNoOptional. Table replication info for table created `AS REPLICA` DDL like: `CREATE MATERIALIZED VIEW mv1 AS REPLICA OF src_mv`
numActiveLogicalBytesNoOutput only. Number of logical bytes that are less than 90 days old.
numTotalPhysicalBytesNoOutput only. The physical size of this table in bytes. This also includes storage used for time travel. This data is not kept in real time, and might be delayed by a few seconds to a few minutes.
materializedViewStatusNoOutput only. The materialized view status.
numActivePhysicalBytesNoOutput only. Number of physical bytes less than 90 days old. This data is not kept in real time, and might be delayed by a few seconds to a few minutes.
requirePartitionFilterNoOptional. If set to true, queries over this table require a partition filter that can be used for partition elimination to be specified.
encryptionConfigurationNoCustom encryption configuration (e.g., Cloud KMS keys).
numCurrentPhysicalBytesNoOutput only. Number of physical bytes used by current live data storage. This data is not kept in real time, and might be delayed by a few seconds to a few minutes.
numLongTermLogicalBytesNoOutput only. Number of logical bytes that are more than 90 days old.
numLongTermPhysicalBytesNoOutput only. Number of physical bytes more than 90 days old. This data is not kept in real time, and might be delayed by a few seconds to a few minutes.
externalDataConfigurationNoOptional. Describes the data format, location, and other properties of a table stored outside of BigQuery. By defining these properties, the data source can then be queried as if it were a standard BigQuery table.
numTimeTravelPhysicalBytesNoOutput only. Number of physical bytes used by time travel storage (deleted or changed data). This data is not kept in real time, and might be delayed by a few seconds to a few minutes.
externalCatalogTableOptionsNoOptional. Options defining open source compatible table.

TDQS

A3.9/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true and destructiveHint=false, so the description does not need to restate these. The description adds no extra behavioral context, but the annotations are sufficient to establish non-modifying behavior, so a higher score is appropriate.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, clear sentence with no redundancy or extraneous information. It directly states the tool's function without unnecessary detail, making it highly concise and well-structured.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the simplicity of the tool (retrieving metadata for a single table), the description and fully-annotated input schema are adequate. The presence of an output schema means return values do not need to be explained in the description, and no edge cases or limitations are relevant for this straightforward operation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100% with each parameter having a description, meeting the high-coverage baseline. However, the parameter descriptions are terse and redundant (e.g., 'Table ID of the table request'), adding little semantic value beyond the parameter names themselves.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb 'Get' and the resource 'metadata information about a BigQuery table or BigLake table'. It is distinguishable from sibling tools like get_dataset_info or list_table_ids by its specific focus on a single table's metadata.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description does not provide explicit guidance on when to use this tool versus alternatives such as execute_sql_readonly for metadata queries. It lacks any mention of use cases or exclusion criteria, leaving the agent to infer usage from the name alone.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_dataset_idsA
Read-onlyIdempotent
Inspect

List BigQuery dataset IDs and BigLake namespaces in a Google Cloud project. Supports pagination. Use page_size to limit results and page_token to retrieve next page.

ParametersJSON Schema
NameRequiredDescriptionDefault
pageSizeNoOptional. The maximum number of results to return in a single response page. If unset, the default page size of 5000 is used.
pageTokenNoOptional. Page token, returned by a previous call, to request the next page of results.
projectIdYesRequired. Project ID of the dataset request.

Output Schema

ParametersJSON Schema
NameRequiredDescription
datasetsNoThe datasets that matched the request.
nextPageTokenNoA token that can be used to request the next results page.

TDQS

A4.8/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations (readOnlyHint, idempotentHint, destructiveHint) cover behavioral aspects, and the description does not contradict them. The mention of pagination adds transparency about result streaming.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is concise, with two sentences that state the action and pagination usage. It is front-loaded and contains no redundant information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description indicates the output (dataset IDs and BigLake namespaces) and the presence of an output schema (though not shown) means return values are already defined. No additional context is needed for a listing operation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

All three parameters (projectId, pageSize, pageToken) are described in the schema with clear meanings, and the description also references page_size and page_token, achieving 100% coverage.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool lists BigQuery dataset IDs and BigLake namespaces in a project, using the specific verb 'List' and identifying the resource. It distinguishes itself from siblings like list_table_ids, which lists table IDs.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides explicit pagination instructions ('Use page_size to limit results and page_token to retrieve next page') and indicates the tool supports pagination. It does not explicitly contrast with sibling tools, but the purpose is clear enough for typical use.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_table_idsA
Read-onlyIdempotent
Inspect

List table ids in a BigQuery dataset or BigLake namespace. Supports pagination. Use page_size to limit results and page_token to retrieve next page.

ParametersJSON Schema
NameRequiredDescriptionDefault
pageSizeNoOptional. The maximum number of results to return in a single response page. If unset, the default page size of 5000 is used.
datasetIdYesRequired. Dataset ID of the table request.
pageTokenNoOptional. Page token, returned by a previous call, to request the next page of results.
projectIdYesRequired. Project ID of the table request.

Output Schema

ParametersJSON Schema
NameRequiredDescription
tablesNoThe tables that matched the request.
nextPageTokenNoA token that can be used to request the next results page.

TDQS

A4.1/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The annotations already signal read-only/idempotent/non-destructive behavior, and the description adds the pagination behavior. It does not describe potential errors or permissions, but annotations adequately cover the key side-effect profile.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two sentences, front-loaded with the core purpose, and contains no unnecessary detail.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple listing tool with pagination and an output schema, the description is complete: it states the scope, pagination support, and how to use the pagination parameters. The output schema is available, so return-value details are not required in the description.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, and the description adds semantic meaning for pageSize/pageToken. However, it refers to them as 'page_size' and 'page_token' in snake_case, while the actual schema properties are camelCase, which is a minor mismatch that could cause confusion.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action ('List') and the resource ('table ids in a BigQuery dataset or BigLake namespace'), making it distinct from sibling tools like list_dataset_ids or get_table_info.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It provides pagination guidance ('Use page_size to limit results and page_token to retrieve next page') but does not explicitly explain when to choose this tool over alternative siblings such as execute_sql or list_dataset_ids.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 4 tool updates
    • Addedcancel_job
    • Changedexecute_sql3 fields changed
      • addedInput schema / properties / jobTimeoutMs
        Added value: +{
        +  "description": "Optional. Optional: Job timeout in milliseconds. If this time limit is exceeded, BigQuery will attempt to stop the query job.",
        +  "format": "int64",
        +  "type": "string"
        +}
      • addedInput schema / properties / timeoutMs
        Added value: +{
        +  "description": "Optional. Optional: Specifies the maximum amount of time, in milliseconds, that the client is willing to wait for the query to complete. By default, this limit is 20 seconds (20,000 milliseconds).",
        +  "format": "int64",
        +  "maximum": 4294967295,
        +  "minimum": 0,
        +  "type": "integer"
        +}
      • addedOutput schema / properties / jobId
        Added value: +{
        +  "description": "Output only. The ID of the BigQuery job created for this query, if any. Present when a query job is created (e.g. for long-running operations, DML, scripts). Use this ID with `get_query_results`, `cancel_job`, or `get_job`.",
        +  "readOnly": true,
        +  "type": "string"
        +}
    • Changedexecute_sql_readonly3 fields changed
      • addedInput schema / properties / jobTimeoutMs
        Added value: +{
        +  "description": "Optional. Optional: Job timeout in milliseconds. If this time limit is exceeded, BigQuery will attempt to stop the query job.",
        +  "format": "int64",
        +  "type": "string"
        +}
      • addedInput schema / properties / timeoutMs
        Added value: +{
        +  "description": "Optional. Optional: Specifies the maximum amount of time, in milliseconds, that the client is willing to wait for the query to complete. By default, this limit is 20 seconds (20,000 milliseconds).",
        +  "format": "int64",
        +  "maximum": 4294967295,
        +  "minimum": 0,
        +  "type": "integer"
        +}
      • addedOutput schema / properties / jobId
        Added value: +{
        +  "description": "Output only. The ID of the BigQuery job created for this query, if any. Present when a query job is created (e.g. for long-running operations, DML, scripts). Use this ID with `get_query_results`, `cancel_job`, or `get_job`.",
        +  "readOnly": true,
        +  "type": "string"
        +}
    • Addedget_query_results
  2. 4 tool updates
    • Removedcancel_job
    • Changedexecute_sql3 fields changed
      • removedInput schema / properties / jobTimeoutMs
        Removed value: -{
        -  "description": "Optional. Optional: Job timeout in milliseconds. If this time limit is exceeded, BigQuery will attempt to stop the query job.",
        -  "format": "int64",
        -  "type": "string"
        -}
      • removedInput schema / properties / timeoutMs
        Removed value: -{
        -  "description": "Optional. Optional: Specifies the maximum amount of time, in milliseconds, that the client is willing to wait for the query to complete. By default, this limit is 20 seconds (20,000 milliseconds).",
        -  "format": "int64",
        -  "maximum": 4294967295,
        -  "minimum": 0,
        -  "type": "integer"
        -}
      • removedOutput schema / properties / jobId
        Removed value: -{
        -  "description": "Output only. The ID of the BigQuery job created for this query, if any. Present when a query job is created (e.g. for long-running operations, DML, scripts). Use this ID with `get_query_results`, `cancel_job`, or `get_job`.",
        -  "readOnly": true,
        -  "type": "string"
        -}
    • Changedexecute_sql_readonly3 fields changed
      • removedInput schema / properties / jobTimeoutMs
        Removed value: -{
        -  "description": "Optional. Optional: Job timeout in milliseconds. If this time limit is exceeded, BigQuery will attempt to stop the query job.",
        -  "format": "int64",
        -  "type": "string"
        -}
      • removedInput schema / properties / timeoutMs
        Removed value: -{
        -  "description": "Optional. Optional: Specifies the maximum amount of time, in milliseconds, that the client is willing to wait for the query to complete. By default, this limit is 20 seconds (20,000 milliseconds).",
        -  "format": "int64",
        -  "maximum": 4294967295,
        -  "minimum": 0,
        -  "type": "integer"
        -}
      • removedOutput schema / properties / jobId
        Removed value: -{
        -  "description": "Output only. The ID of the BigQuery job created for this query, if any. Present when a query job is created (e.g. for long-running operations, DML, scripts). Use this ID with `get_query_results`, `cancel_job`, or `get_job`.",
        -  "readOnly": true,
        -  "type": "string"
        -}
    • Removedget_query_results
  3. 4 tool updates
    • Addedcancel_job
    • Changedexecute_sql3 fields changed
      • addedInput schema / properties / jobTimeoutMs
        Added value: +{
        +  "description": "Optional. Optional: Job timeout in milliseconds. If this time limit is exceeded, BigQuery will attempt to stop the query job.",
        +  "format": "int64",
        +  "type": "string"
        +}
      • addedInput schema / properties / timeoutMs
        Added value: +{
        +  "description": "Optional. Optional: Specifies the maximum amount of time, in milliseconds, that the client is willing to wait for the query to complete. By default, this limit is 20 seconds (20,000 milliseconds).",
        +  "format": "int64",
        +  "maximum": 4294967295,
        +  "minimum": 0,
        +  "type": "integer"
        +}
      • addedOutput schema / properties / jobId
        Added value: +{
        +  "description": "Output only. The ID of the BigQuery job created for this query, if any. Present when a query job is created (e.g. for long-running operations, DML, scripts). Use this ID with `get_query_results`, `cancel_job`, or `get_job`.",
        +  "readOnly": true,
        +  "type": "string"
        +}
    • Changedexecute_sql_readonly3 fields changed
      • addedInput schema / properties / jobTimeoutMs
        Added value: +{
        +  "description": "Optional. Optional: Job timeout in milliseconds. If this time limit is exceeded, BigQuery will attempt to stop the query job.",
        +  "format": "int64",
        +  "type": "string"
        +}
      • addedInput schema / properties / timeoutMs
        Added value: +{
        +  "description": "Optional. Optional: Specifies the maximum amount of time, in milliseconds, that the client is willing to wait for the query to complete. By default, this limit is 20 seconds (20,000 milliseconds).",
        +  "format": "int64",
        +  "maximum": 4294967295,
        +  "minimum": 0,
        +  "type": "integer"
        +}
      • addedOutput schema / properties / jobId
        Added value: +{
        +  "description": "Output only. The ID of the BigQuery job created for this query, if any. Present when a query job is created (e.g. for long-running operations, DML, scripts). Use this ID with `get_query_results`, `cancel_job`, or `get_job`.",
        +  "readOnly": true,
        +  "type": "string"
        +}
    • Addedget_query_results
  4. 4 tool updates
    • Removedcancel_job
    • Changedexecute_sql3 fields changed
      • removedInput schema / properties / jobTimeoutMs
        Removed value: -{
        -  "description": "Optional. Optional: Job timeout in milliseconds. If this time limit is exceeded, BigQuery will attempt to stop the query job.",
        -  "format": "int64",
        -  "type": "string"
        -}
      • removedInput schema / properties / timeoutMs
        Removed value: -{
        -  "description": "Optional. Optional: Specifies the maximum amount of time, in milliseconds, that the client is willing to wait for the query to complete. By default, this limit is 20 seconds (20,000 milliseconds).",
        -  "format": "int64",
        -  "maximum": 4294967295,
        -  "minimum": 0,
        -  "type": "integer"
        -}
      • removedOutput schema / properties / jobId
        Removed value: -{
        -  "description": "Output only. The ID of the BigQuery job created for this query, if any. Present when a query job is created (e.g. for long-running operations, DML, scripts). Use this ID with `get_query_results`, `cancel_job`, or `get_job`.",
        -  "readOnly": true,
        -  "type": "string"
        -}
    • Changedexecute_sql_readonly3 fields changed
      • removedInput schema / properties / jobTimeoutMs
        Removed value: -{
        -  "description": "Optional. Optional: Job timeout in milliseconds. If this time limit is exceeded, BigQuery will attempt to stop the query job.",
        -  "format": "int64",
        -  "type": "string"
        -}
      • removedInput schema / properties / timeoutMs
        Removed value: -{
        -  "description": "Optional. Optional: Specifies the maximum amount of time, in milliseconds, that the client is willing to wait for the query to complete. By default, this limit is 20 seconds (20,000 milliseconds).",
        -  "format": "int64",
        -  "maximum": 4294967295,
        -  "minimum": 0,
        -  "type": "integer"
        -}
      • removedOutput schema / properties / jobId
        Removed value: -{
        -  "description": "Output only. The ID of the BigQuery job created for this query, if any. Present when a query job is created (e.g. for long-running operations, DML, scripts). Use this ID with `get_query_results`, `cancel_job`, or `get_job`.",
        -  "readOnly": true,
        -  "type": "string"
        -}
    • Removedget_query_results
  5. 4 tool updates
    • Addedcancel_job
    • Changedexecute_sql3 fields changed
      • addedInput schema / properties / jobTimeoutMs
        Added value: +{
        +  "description": "Optional. Optional: Job timeout in milliseconds. If this time limit is exceeded, BigQuery will attempt to stop the query job.",
        +  "format": "int64",
        +  "type": "string"
        +}
      • addedInput schema / properties / timeoutMs
        Added value: +{
        +  "description": "Optional. Optional: Specifies the maximum amount of time, in milliseconds, that the client is willing to wait for the query to complete. By default, this limit is 20 seconds (20,000 milliseconds).",
        +  "format": "int64",
        +  "maximum": 4294967295,
        +  "minimum": 0,
        +  "type": "integer"
        +}
      • addedOutput schema / properties / jobId
        Added value: +{
        +  "description": "Output only. The ID of the BigQuery job created for this query, if any. Present when a query job is created (e.g. for long-running operations, DML, scripts). Use this ID with `get_query_results`, `cancel_job`, or `get_job`.",
        +  "readOnly": true,
        +  "type": "string"
        +}
    • Changedexecute_sql_readonly3 fields changed
      • addedInput schema / properties / jobTimeoutMs
        Added value: +{
        +  "description": "Optional. Optional: Job timeout in milliseconds. If this time limit is exceeded, BigQuery will attempt to stop the query job.",
        +  "format": "int64",
        +  "type": "string"
        +}
      • addedInput schema / properties / timeoutMs
        Added value: +{
        +  "description": "Optional. Optional: Specifies the maximum amount of time, in milliseconds, that the client is willing to wait for the query to complete. By default, this limit is 20 seconds (20,000 milliseconds).",
        +  "format": "int64",
        +  "maximum": 4294967295,
        +  "minimum": 0,
        +  "type": "integer"
        +}
      • addedOutput schema / properties / jobId
        Added value: +{
        +  "description": "Output only. The ID of the BigQuery job created for this query, if any. Present when a query job is created (e.g. for long-running operations, DML, scripts). Use this ID with `get_query_results`, `cancel_job`, or `get_job`.",
        +  "readOnly": true,
        +  "type": "string"
        +}
    • Addedget_query_results
  6. 4 tool updates
    • Removedcancel_job
    • Changedexecute_sql3 fields changed
      • removedInput schema / properties / jobTimeoutMs
        Removed value: -{
        -  "description": "Optional. Optional: Job timeout in milliseconds. If this time limit is exceeded, BigQuery will attempt to stop the query job.",
        -  "format": "int64",
        -  "type": "string"
        -}
      • removedInput schema / properties / timeoutMs
        Removed value: -{
        -  "description": "Optional. Optional: Specifies the maximum amount of time, in milliseconds, that the client is willing to wait for the query to complete. By default, this limit is 20 seconds (20,000 milliseconds).",
        -  "format": "int64",
        -  "maximum": 4294967295,
        -  "minimum": 0,
        -  "type": "integer"
        -}
      • removedOutput schema / properties / jobId
        Removed value: -{
        -  "description": "Output only. The ID of the BigQuery job created for this query, if any. Present when a query job is created (e.g. for long-running operations, DML, scripts). Use this ID with `get_query_results`, `cancel_job`, or `get_job`.",
        -  "readOnly": true,
        -  "type": "string"
        -}
    • Changedexecute_sql_readonly3 fields changed
      • removedInput schema / properties / jobTimeoutMs
        Removed value: -{
        -  "description": "Optional. Optional: Job timeout in milliseconds. If this time limit is exceeded, BigQuery will attempt to stop the query job.",
        -  "format": "int64",
        -  "type": "string"
        -}
      • removedInput schema / properties / timeoutMs
        Removed value: -{
        -  "description": "Optional. Optional: Specifies the maximum amount of time, in milliseconds, that the client is willing to wait for the query to complete. By default, this limit is 20 seconds (20,000 milliseconds).",
        -  "format": "int64",
        -  "maximum": 4294967295,
        -  "minimum": 0,
        -  "type": "integer"
        -}
      • removedOutput schema / properties / jobId
        Removed value: -{
        -  "description": "Output only. The ID of the BigQuery job created for this query, if any. Present when a query job is created (e.g. for long-running operations, DML, scripts). Use this ID with `get_query_results`, `cancel_job`, or `get_job`.",
        -  "readOnly": true,
        -  "type": "string"
        -}
    • Removedget_query_results
  7. 4 tool updates
    • Addedcancel_job
    • Changedexecute_sql3 fields changed
      • addedInput schema / properties / jobTimeoutMs
        Added value: +{
        +  "description": "Optional. Optional: Job timeout in milliseconds. If this time limit is exceeded, BigQuery will attempt to stop the query job.",
        +  "format": "int64",
        +  "type": "string"
        +}
      • addedInput schema / properties / timeoutMs
        Added value: +{
        +  "description": "Optional. Optional: Specifies the maximum amount of time, in milliseconds, that the client is willing to wait for the query to complete. By default, this limit is 20 seconds (20,000 milliseconds).",
        +  "format": "int64",
        +  "maximum": 4294967295,
        +  "minimum": 0,
        +  "type": "integer"
        +}
      • addedOutput schema / properties / jobId
        Added value: +{
        +  "description": "Output only. The ID of the BigQuery job created for this query, if any. Present when a query job is created (e.g. for long-running operations, DML, scripts). Use this ID with `get_query_results`, `cancel_job`, or `get_job`.",
        +  "readOnly": true,
        +  "type": "string"
        +}
    • Changedexecute_sql_readonly3 fields changed
      • addedInput schema / properties / jobTimeoutMs
        Added value: +{
        +  "description": "Optional. Optional: Job timeout in milliseconds. If this time limit is exceeded, BigQuery will attempt to stop the query job.",
        +  "format": "int64",
        +  "type": "string"
        +}
      • addedInput schema / properties / timeoutMs
        Added value: +{
        +  "description": "Optional. Optional: Specifies the maximum amount of time, in milliseconds, that the client is willing to wait for the query to complete. By default, this limit is 20 seconds (20,000 milliseconds).",
        +  "format": "int64",
        +  "maximum": 4294967295,
        +  "minimum": 0,
        +  "type": "integer"
        +}
      • addedOutput schema / properties / jobId
        Added value: +{
        +  "description": "Output only. The ID of the BigQuery job created for this query, if any. Present when a query job is created (e.g. for long-running operations, DML, scripts). Use this ID with `get_query_results`, `cancel_job`, or `get_job`.",
        +  "readOnly": true,
        +  "type": "string"
        +}
    • Addedget_query_results
  8. 4 tool updates
    • Removedcancel_job
    • Changedexecute_sql3 fields changed
      • removedInput schema / properties / jobTimeoutMs
        Removed value: -{
        -  "description": "Optional. Optional: Job timeout in milliseconds. If this time limit is exceeded, BigQuery will attempt to stop the query job.",
        -  "format": "int64",
        -  "type": "string"
        -}
      • removedInput schema / properties / timeoutMs
        Removed value: -{
        -  "description": "Optional. Optional: Specifies the maximum amount of time, in milliseconds, that the client is willing to wait for the query to complete. By default, this limit is 20 seconds (20,000 milliseconds).",
        -  "format": "int64",
        -  "maximum": 4294967295,
        -  "minimum": 0,
        -  "type": "integer"
        -}
      • removedOutput schema / properties / jobId
        Removed value: -{
        -  "description": "Output only. The ID of the BigQuery job created for this query, if any. Present when a query job is created (e.g. for long-running operations, DML, scripts). Use this ID with `get_query_results`, `cancel_job`, or `get_job`.",
        -  "readOnly": true,
        -  "type": "string"
        -}
    • Changedexecute_sql_readonly3 fields changed
      • removedInput schema / properties / jobTimeoutMs
        Removed value: -{
        -  "description": "Optional. Optional: Job timeout in milliseconds. If this time limit is exceeded, BigQuery will attempt to stop the query job.",
        -  "format": "int64",
        -  "type": "string"
        -}
      • removedInput schema / properties / timeoutMs
        Removed value: -{
        -  "description": "Optional. Optional: Specifies the maximum amount of time, in milliseconds, that the client is willing to wait for the query to complete. By default, this limit is 20 seconds (20,000 milliseconds).",
        -  "format": "int64",
        -  "maximum": 4294967295,
        -  "minimum": 0,
        -  "type": "integer"
        -}
      • removedOutput schema / properties / jobId
        Removed value: -{
        -  "description": "Output only. The ID of the BigQuery job created for this query, if any. Present when a query job is created (e.g. for long-running operations, DML, scripts). Use this ID with `get_query_results`, `cancel_job`, or `get_job`.",
        -  "readOnly": true,
        -  "type": "string"
        -}
    • Removedget_query_results
  9. 4 tool updates
    • Addedcancel_job
    • Changedexecute_sql3 fields changed
      • addedInput schema / properties / jobTimeoutMs
        Added value: +{
        +  "description": "Optional. Optional: Job timeout in milliseconds. If this time limit is exceeded, BigQuery will attempt to stop the query job.",
        +  "format": "int64",
        +  "type": "string"
        +}
      • addedInput schema / properties / timeoutMs
        Added value: +{
        +  "description": "Optional. Optional: Specifies the maximum amount of time, in milliseconds, that the client is willing to wait for the query to complete. By default, this limit is 20 seconds (20,000 milliseconds).",
        +  "format": "int64",
        +  "maximum": 4294967295,
        +  "minimum": 0,
        +  "type": "integer"
        +}
      • addedOutput schema / properties / jobId
        Added value: +{
        +  "description": "Output only. The ID of the BigQuery job created for this query, if any. Present when a query job is created (e.g. for long-running operations, DML, scripts). Use this ID with `get_query_results`, `cancel_job`, or `get_job`.",
        +  "readOnly": true,
        +  "type": "string"
        +}
    • Changedexecute_sql_readonly3 fields changed
      • addedInput schema / properties / jobTimeoutMs
        Added value: +{
        +  "description": "Optional. Optional: Job timeout in milliseconds. If this time limit is exceeded, BigQuery will attempt to stop the query job.",
        +  "format": "int64",
        +  "type": "string"
        +}
      • addedInput schema / properties / timeoutMs
        Added value: +{
        +  "description": "Optional. Optional: Specifies the maximum amount of time, in milliseconds, that the client is willing to wait for the query to complete. By default, this limit is 20 seconds (20,000 milliseconds).",
        +  "format": "int64",
        +  "maximum": 4294967295,
        +  "minimum": 0,
        +  "type": "integer"
        +}
      • addedOutput schema / properties / jobId
        Added value: +{
        +  "description": "Output only. The ID of the BigQuery job created for this query, if any. Present when a query job is created (e.g. for long-running operations, DML, scripts). Use this ID with `get_query_results`, `cancel_job`, or `get_job`.",
        +  "readOnly": true,
        +  "type": "string"
        +}
    • Addedget_query_results
  10. 4 tool updates
    • Removedcancel_job
    • Changedexecute_sql3 fields changed
      • removedInput schema / properties / jobTimeoutMs
        Removed value: -{
        -  "description": "Optional. Optional: Job timeout in milliseconds. If this time limit is exceeded, BigQuery will attempt to stop the query job.",
        -  "format": "int64",
        -  "type": "string"
        -}
      • removedInput schema / properties / timeoutMs
        Removed value: -{
        -  "description": "Optional. Optional: Specifies the maximum amount of time, in milliseconds, that the client is willing to wait for the query to complete. By default, this limit is 20 seconds (20,000 milliseconds).",
        -  "format": "int64",
        -  "maximum": 4294967295,
        -  "minimum": 0,
        -  "type": "integer"
        -}
      • removedOutput schema / properties / jobId
        Removed value: -{
        -  "description": "Output only. The ID of the BigQuery job created for this query, if any. Present when a query job is created (e.g. for long-running operations, DML, scripts). Use this ID with `get_query_results`, `cancel_job`, or `get_job`.",
        -  "readOnly": true,
        -  "type": "string"
        -}
    • Changedexecute_sql_readonly3 fields changed
      • removedInput schema / properties / jobTimeoutMs
        Removed value: -{
        -  "description": "Optional. Optional: Job timeout in milliseconds. If this time limit is exceeded, BigQuery will attempt to stop the query job.",
        -  "format": "int64",
        -  "type": "string"
        -}
      • removedInput schema / properties / timeoutMs
        Removed value: -{
        -  "description": "Optional. Optional: Specifies the maximum amount of time, in milliseconds, that the client is willing to wait for the query to complete. By default, this limit is 20 seconds (20,000 milliseconds).",
        -  "format": "int64",
        -  "maximum": 4294967295,
        -  "minimum": 0,
        -  "type": "integer"
        -}
      • removedOutput schema / properties / jobId
        Removed value: -{
        -  "description": "Output only. The ID of the BigQuery job created for this query, if any. Present when a query job is created (e.g. for long-running operations, DML, scripts). Use this ID with `get_query_results`, `cancel_job`, or `get_job`.",
        -  "readOnly": true,
        -  "type": "string"
        -}
    • Removedget_query_results
  11. 4 tool updates
    • Addedcancel_job
    • Changedexecute_sql3 fields changed
      • addedInput schema / properties / jobTimeoutMs
        Added value: +{
        +  "description": "Optional. Optional: Job timeout in milliseconds. If this time limit is exceeded, BigQuery will attempt to stop the query job.",
        +  "format": "int64",
        +  "type": "string"
        +}
      • addedInput schema / properties / timeoutMs
        Added value: +{
        +  "description": "Optional. Optional: Specifies the maximum amount of time, in milliseconds, that the client is willing to wait for the query to complete. By default, this limit is 20 seconds (20,000 milliseconds).",
        +  "format": "int64",
        +  "maximum": 4294967295,
        +  "minimum": 0,
        +  "type": "integer"
        +}
      • addedOutput schema / properties / jobId
        Added value: +{
        +  "description": "Output only. The ID of the BigQuery job created for this query, if any. Present when a query job is created (e.g. for long-running operations, DML, scripts). Use this ID with `get_query_results`, `cancel_job`, or `get_job`.",
        +  "readOnly": true,
        +  "type": "string"
        +}
    • Changedexecute_sql_readonly3 fields changed
      • addedInput schema / properties / jobTimeoutMs
        Added value: +{
        +  "description": "Optional. Optional: Job timeout in milliseconds. If this time limit is exceeded, BigQuery will attempt to stop the query job.",
        +  "format": "int64",
        +  "type": "string"
        +}
      • addedInput schema / properties / timeoutMs
        Added value: +{
        +  "description": "Optional. Optional: Specifies the maximum amount of time, in milliseconds, that the client is willing to wait for the query to complete. By default, this limit is 20 seconds (20,000 milliseconds).",
        +  "format": "int64",
        +  "maximum": 4294967295,
        +  "minimum": 0,
        +  "type": "integer"
        +}
      • addedOutput schema / properties / jobId
        Added value: +{
        +  "description": "Output only. The ID of the BigQuery job created for this query, if any. Present when a query job is created (e.g. for long-running operations, DML, scripts). Use this ID with `get_query_results`, `cancel_job`, or `get_job`.",
        +  "readOnly": true,
        +  "type": "string"
        +}
    • Addedget_query_results
  12. 4 tool updates
    • Removedcancel_job
    • Changedexecute_sql3 fields changed
      • removedInput schema / properties / jobTimeoutMs
        Removed value: -{
        -  "description": "Optional. Optional: Job timeout in milliseconds. If this time limit is exceeded, BigQuery will attempt to stop the query job.",
        -  "format": "int64",
        -  "type": "string"
        -}
      • removedInput schema / properties / timeoutMs
        Removed value: -{
        -  "description": "Optional. Optional: Specifies the maximum amount of time, in milliseconds, that the client is willing to wait for the query to complete. By default, this limit is 20 seconds (20,000 milliseconds).",
        -  "format": "int64",
        -  "maximum": 4294967295,
        -  "minimum": 0,
        -  "type": "integer"
        -}
      • removedOutput schema / properties / jobId
        Removed value: -{
        -  "description": "Output only. The ID of the BigQuery job created for this query, if any. Present when a query job is created (e.g. for long-running operations, DML, scripts). Use this ID with `get_query_results`, `cancel_job`, or `get_job`.",
        -  "readOnly": true,
        -  "type": "string"
        -}
    • Changedexecute_sql_readonly3 fields changed
      • removedInput schema / properties / jobTimeoutMs
        Removed value: -{
        -  "description": "Optional. Optional: Job timeout in milliseconds. If this time limit is exceeded, BigQuery will attempt to stop the query job.",
        -  "format": "int64",
        -  "type": "string"
        -}
      • removedInput schema / properties / timeoutMs
        Removed value: -{
        -  "description": "Optional. Optional: Specifies the maximum amount of time, in milliseconds, that the client is willing to wait for the query to complete. By default, this limit is 20 seconds (20,000 milliseconds).",
        -  "format": "int64",
        -  "maximum": 4294967295,
        -  "minimum": 0,
        -  "type": "integer"
        -}
      • removedOutput schema / properties / jobId
        Removed value: -{
        -  "description": "Output only. The ID of the BigQuery job created for this query, if any. Present when a query job is created (e.g. for long-running operations, DML, scripts). Use this ID with `get_query_results`, `cancel_job`, or `get_job`.",
        -  "readOnly": true,
        -  "type": "string"
        -}
    • Removedget_query_results
  13. 4 tool updates
    • Addedcancel_job
    • Changedexecute_sql3 fields changed
      • addedInput schema / properties / jobTimeoutMs
        Added value: +{
        +  "description": "Optional. Optional: Job timeout in milliseconds. If this time limit is exceeded, BigQuery will attempt to stop the query job.",
        +  "format": "int64",
        +  "type": "string"
        +}
      • addedInput schema / properties / timeoutMs
        Added value: +{
        +  "description": "Optional. Optional: Specifies the maximum amount of time, in milliseconds, that the client is willing to wait for the query to complete. By default, this limit is 20 seconds (20,000 milliseconds).",
        +  "format": "int64",
        +  "maximum": 4294967295,
        +  "minimum": 0,
        +  "type": "integer"
        +}
      • addedOutput schema / properties / jobId
        Added value: +{
        +  "description": "Output only. The ID of the BigQuery job created for this query, if any. Present when a query job is created (e.g. for long-running operations, DML, scripts). Use this ID with `get_query_results`, `cancel_job`, or `get_job`.",
        +  "readOnly": true,
        +  "type": "string"
        +}
    • Changedexecute_sql_readonly3 fields changed
      • addedInput schema / properties / jobTimeoutMs
        Added value: +{
        +  "description": "Optional. Optional: Job timeout in milliseconds. If this time limit is exceeded, BigQuery will attempt to stop the query job.",
        +  "format": "int64",
        +  "type": "string"
        +}
      • addedInput schema / properties / timeoutMs
        Added value: +{
        +  "description": "Optional. Optional: Specifies the maximum amount of time, in milliseconds, that the client is willing to wait for the query to complete. By default, this limit is 20 seconds (20,000 milliseconds).",
        +  "format": "int64",
        +  "maximum": 4294967295,
        +  "minimum": 0,
        +  "type": "integer"
        +}
      • addedOutput schema / properties / jobId
        Added value: +{
        +  "description": "Output only. The ID of the BigQuery job created for this query, if any. Present when a query job is created (e.g. for long-running operations, DML, scripts). Use this ID with `get_query_results`, `cancel_job`, or `get_job`.",
        +  "readOnly": true,
        +  "type": "string"
        +}
    • Addedget_query_results
  14. 4 tool updates
    • Removedcancel_job
    • Changedexecute_sql3 fields changed
      • removedInput schema / properties / jobTimeoutMs
        Removed value: -{
        -  "description": "Optional. Optional: Job timeout in milliseconds. If this time limit is exceeded, BigQuery will attempt to stop the query job.",
        -  "format": "int64",
        -  "type": "string"
        -}
      • removedInput schema / properties / timeoutMs
        Removed value: -{
        -  "description": "Optional. Optional: Specifies the maximum amount of time, in milliseconds, that the client is willing to wait for the query to complete. By default, this limit is 20 seconds (20,000 milliseconds).",
        -  "format": "int64",
        -  "maximum": 4294967295,
        -  "minimum": 0,
        -  "type": "integer"
        -}
      • removedOutput schema / properties / jobId
        Removed value: -{
        -  "description": "Output only. The ID of the BigQuery job created for this query, if any. Present when a query job is created (e.g. for long-running operations, DML, scripts). Use this ID with `get_query_results`, `cancel_job`, or `get_job`.",
        -  "readOnly": true,
        -  "type": "string"
        -}
    • Changedexecute_sql_readonly3 fields changed
      • removedInput schema / properties / jobTimeoutMs
        Removed value: -{
        -  "description": "Optional. Optional: Job timeout in milliseconds. If this time limit is exceeded, BigQuery will attempt to stop the query job.",
        -  "format": "int64",
        -  "type": "string"
        -}
      • removedInput schema / properties / timeoutMs
        Removed value: -{
        -  "description": "Optional. Optional: Specifies the maximum amount of time, in milliseconds, that the client is willing to wait for the query to complete. By default, this limit is 20 seconds (20,000 milliseconds).",
        -  "format": "int64",
        -  "maximum": 4294967295,
        -  "minimum": 0,
        -  "type": "integer"
        -}
      • removedOutput schema / properties / jobId
        Removed value: -{
        -  "description": "Output only. The ID of the BigQuery job created for this query, if any. Present when a query job is created (e.g. for long-running operations, DML, scripts). Use this ID with `get_query_results`, `cancel_job`, or `get_job`.",
        -  "readOnly": true,
        -  "type": "string"
        -}
    • Removedget_query_results
  15. 4 tool updates
    • Addedcancel_job
    • Changedexecute_sql3 fields changed
      • addedInput schema / properties / jobTimeoutMs
        Added value: +{
        +  "description": "Optional. Optional: Job timeout in milliseconds. If this time limit is exceeded, BigQuery will attempt to stop the query job.",
        +  "format": "int64",
        +  "type": "string"
        +}
      • addedInput schema / properties / timeoutMs
        Added value: +{
        +  "description": "Optional. Optional: Specifies the maximum amount of time, in milliseconds, that the client is willing to wait for the query to complete. By default, this limit is 20 seconds (20,000 milliseconds).",
        +  "format": "int64",
        +  "maximum": 4294967295,
        +  "minimum": 0,
        +  "type": "integer"
        +}
      • addedOutput schema / properties / jobId
        Added value: +{
        +  "description": "Output only. The ID of the BigQuery job created for this query, if any. Present when a query job is created (e.g. for long-running operations, DML, scripts). Use this ID with `get_query_results`, `cancel_job`, or `get_job`.",
        +  "readOnly": true,
        +  "type": "string"
        +}
    • Changedexecute_sql_readonly3 fields changed
      • addedInput schema / properties / jobTimeoutMs
        Added value: +{
        +  "description": "Optional. Optional: Job timeout in milliseconds. If this time limit is exceeded, BigQuery will attempt to stop the query job.",
        +  "format": "int64",
        +  "type": "string"
        +}
      • addedInput schema / properties / timeoutMs
        Added value: +{
        +  "description": "Optional. Optional: Specifies the maximum amount of time, in milliseconds, that the client is willing to wait for the query to complete. By default, this limit is 20 seconds (20,000 milliseconds).",
        +  "format": "int64",
        +  "maximum": 4294967295,
        +  "minimum": 0,
        +  "type": "integer"
        +}
      • addedOutput schema / properties / jobId
        Added value: +{
        +  "description": "Output only. The ID of the BigQuery job created for this query, if any. Present when a query job is created (e.g. for long-running operations, DML, scripts). Use this ID with `get_query_results`, `cancel_job`, or `get_job`.",
        +  "readOnly": true,
        +  "type": "string"
        +}
    • Addedget_query_results
  16. 4 tool updates
    • Removedcancel_job
    • Changedexecute_sql3 fields changed
      • removedInput schema / properties / jobTimeoutMs
        Removed value: -{
        -  "description": "Optional. Optional: Job timeout in milliseconds. If this time limit is exceeded, BigQuery will attempt to stop the query job.",
        -  "format": "int64",
        -  "type": "string"
        -}
      • removedInput schema / properties / timeoutMs
        Removed value: -{
        -  "description": "Optional. Optional: Specifies the maximum amount of time, in milliseconds, that the client is willing to wait for the query to complete. By default, this limit is 20 seconds (20,000 milliseconds).",
        -  "format": "int64",
        -  "maximum": 4294967295,
        -  "minimum": 0,
        -  "type": "integer"
        -}
      • removedOutput schema / properties / jobId
        Removed value: -{
        -  "description": "Output only. The ID of the BigQuery job created for this query, if any. Present when a query job is created (e.g. for long-running operations, DML, scripts). Use this ID with `get_query_results`, `cancel_job`, or `get_job`.",
        -  "readOnly": true,
        -  "type": "string"
        -}
    • Changedexecute_sql_readonly3 fields changed
      • removedInput schema / properties / jobTimeoutMs
        Removed value: -{
        -  "description": "Optional. Optional: Job timeout in milliseconds. If this time limit is exceeded, BigQuery will attempt to stop the query job.",
        -  "format": "int64",
        -  "type": "string"
        -}
      • removedInput schema / properties / timeoutMs
        Removed value: -{
        -  "description": "Optional. Optional: Specifies the maximum amount of time, in milliseconds, that the client is willing to wait for the query to complete. By default, this limit is 20 seconds (20,000 milliseconds).",
        -  "format": "int64",
        -  "maximum": 4294967295,
        -  "minimum": 0,
        -  "type": "integer"
        -}
      • removedOutput schema / properties / jobId
        Removed value: -{
        -  "description": "Output only. The ID of the BigQuery job created for this query, if any. Present when a query job is created (e.g. for long-running operations, DML, scripts). Use this ID with `get_query_results`, `cancel_job`, or `get_job`.",
        -  "readOnly": true,
        -  "type": "string"
        -}
    • Removedget_query_results
  17. 4 tool updates
    • Addedcancel_job
    • Changedexecute_sql3 fields changed
      • addedInput schema / properties / jobTimeoutMs
        Added value: +{
        +  "description": "Optional. Optional: Job timeout in milliseconds. If this time limit is exceeded, BigQuery will attempt to stop the query job.",
        +  "format": "int64",
        +  "type": "string"
        +}
      • addedInput schema / properties / timeoutMs
        Added value: +{
        +  "description": "Optional. Optional: Specifies the maximum amount of time, in milliseconds, that the client is willing to wait for the query to complete. By default, this limit is 20 seconds (20,000 milliseconds).",
        +  "format": "int64",
        +  "maximum": 4294967295,
        +  "minimum": 0,
        +  "type": "integer"
        +}
      • addedOutput schema / properties / jobId
        Added value: +{
        +  "description": "Output only. The ID of the BigQuery job created for this query, if any. Present when a query job is created (e.g. for long-running operations, DML, scripts). Use this ID with `get_query_results`, `cancel_job`, or `get_job`.",
        +  "readOnly": true,
        +  "type": "string"
        +}
    • Changedexecute_sql_readonly3 fields changed
      • addedInput schema / properties / jobTimeoutMs
        Added value: +{
        +  "description": "Optional. Optional: Job timeout in milliseconds. If this time limit is exceeded, BigQuery will attempt to stop the query job.",
        +  "format": "int64",
        +  "type": "string"
        +}
      • addedInput schema / properties / timeoutMs
        Added value: +{
        +  "description": "Optional. Optional: Specifies the maximum amount of time, in milliseconds, that the client is willing to wait for the query to complete. By default, this limit is 20 seconds (20,000 milliseconds).",
        +  "format": "int64",
        +  "maximum": 4294967295,
        +  "minimum": 0,
        +  "type": "integer"
        +}
      • addedOutput schema / properties / jobId
        Added value: +{
        +  "description": "Output only. The ID of the BigQuery job created for this query, if any. Present when a query job is created (e.g. for long-running operations, DML, scripts). Use this ID with `get_query_results`, `cancel_job`, or `get_job`.",
        +  "readOnly": true,
        +  "type": "string"
        +}
    • Addedget_query_results
  18. 4 tool updates
    • Removedcancel_job
    • Changedexecute_sql3 fields changed
      • removedInput schema / properties / jobTimeoutMs
        Removed value: -{
        -  "description": "Optional. Optional: Job timeout in milliseconds. If this time limit is exceeded, BigQuery will attempt to stop the query job.",
        -  "format": "int64",
        -  "type": "string"
        -}
      • removedInput schema / properties / timeoutMs
        Removed value: -{
        -  "description": "Optional. Optional: Specifies the maximum amount of time, in milliseconds, that the client is willing to wait for the query to complete. By default, this limit is 20 seconds (20,000 milliseconds).",
        -  "format": "int64",
        -  "maximum": 4294967295,
        -  "minimum": 0,
        -  "type": "integer"
        -}
      • removedOutput schema / properties / jobId
        Removed value: -{
        -  "description": "Output only. The ID of the BigQuery job created for this query, if any. Present when a query job is created (e.g. for long-running operations, DML, scripts). Use this ID with `get_query_results`, `cancel_job`, or `get_job`.",
        -  "readOnly": true,
        -  "type": "string"
        -}
    • Changedexecute_sql_readonly3 fields changed
      • removedInput schema / properties / jobTimeoutMs
        Removed value: -{
        -  "description": "Optional. Optional: Job timeout in milliseconds. If this time limit is exceeded, BigQuery will attempt to stop the query job.",
        -  "format": "int64",
        -  "type": "string"
        -}
      • removedInput schema / properties / timeoutMs
        Removed value: -{
        -  "description": "Optional. Optional: Specifies the maximum amount of time, in milliseconds, that the client is willing to wait for the query to complete. By default, this limit is 20 seconds (20,000 milliseconds).",
        -  "format": "int64",
        -  "maximum": 4294967295,
        -  "minimum": 0,
        -  "type": "integer"
        -}
      • removedOutput schema / properties / jobId
        Removed value: -{
        -  "description": "Output only. The ID of the BigQuery job created for this query, if any. Present when a query job is created (e.g. for long-running operations, DML, scripts). Use this ID with `get_query_results`, `cancel_job`, or `get_job`.",
        -  "readOnly": true,
        -  "type": "string"
        -}
    • Removedget_query_results
  19. 4 tool updates
    • Addedcancel_job
    • Changedexecute_sql3 fields changed
      • addedInput schema / properties / jobTimeoutMs
        Added value: +{
        +  "description": "Optional. Optional: Job timeout in milliseconds. If this time limit is exceeded, BigQuery will attempt to stop the query job.",
        +  "format": "int64",
        +  "type": "string"
        +}
      • addedInput schema / properties / timeoutMs
        Added value: +{
        +  "description": "Optional. Optional: Specifies the maximum amount of time, in milliseconds, that the client is willing to wait for the query to complete. By default, this limit is 20 seconds (20,000 milliseconds).",
        +  "format": "int64",
        +  "maximum": 4294967295,
        +  "minimum": 0,
        +  "type": "integer"
        +}
      • addedOutput schema / properties / jobId
        Added value: +{
        +  "description": "Output only. The ID of the BigQuery job created for this query, if any. Present when a query job is created (e.g. for long-running operations, DML, scripts). Use this ID with `get_query_results`, `cancel_job`, or `get_job`.",
        +  "readOnly": true,
        +  "type": "string"
        +}
    • Changedexecute_sql_readonly3 fields changed
      • addedInput schema / properties / jobTimeoutMs
        Added value: +{
        +  "description": "Optional. Optional: Job timeout in milliseconds. If this time limit is exceeded, BigQuery will attempt to stop the query job.",
        +  "format": "int64",
        +  "type": "string"
        +}
      • addedInput schema / properties / timeoutMs
        Added value: +{
        +  "description": "Optional. Optional: Specifies the maximum amount of time, in milliseconds, that the client is willing to wait for the query to complete. By default, this limit is 20 seconds (20,000 milliseconds).",
        +  "format": "int64",
        +  "maximum": 4294967295,
        +  "minimum": 0,
        +  "type": "integer"
        +}
      • addedOutput schema / properties / jobId
        Added value: +{
        +  "description": "Output only. The ID of the BigQuery job created for this query, if any. Present when a query job is created (e.g. for long-running operations, DML, scripts). Use this ID with `get_query_results`, `cancel_job`, or `get_job`.",
        +  "readOnly": true,
        +  "type": "string"
        +}
    • Addedget_query_results
  20. 4 tool updates
    • Removedcancel_job
    • Changedexecute_sql3 fields changed
      • removedInput schema / properties / jobTimeoutMs
        Removed value: -{
        -  "description": "Optional. Optional: Job timeout in milliseconds. If this time limit is exceeded, BigQuery will attempt to stop the query job.",
        -  "format": "int64",
        -  "type": "string"
        -}
      • removedInput schema / properties / timeoutMs
        Removed value: -{
        -  "description": "Optional. Optional: Specifies the maximum amount of time, in milliseconds, that the client is willing to wait for the query to complete. By default, this limit is 20 seconds (20,000 milliseconds).",
        -  "format": "int64",
        -  "maximum": 4294967295,
        -  "minimum": 0,
        -  "type": "integer"
        -}
      • removedOutput schema / properties / jobId
        Removed value: -{
        -  "description": "Output only. The ID of the BigQuery job created for this query, if any. Present when a query job is created (e.g. for long-running operations, DML, scripts). Use this ID with `get_query_results`, `cancel_job`, or `get_job`.",
        -  "readOnly": true,
        -  "type": "string"
        -}
    • Changedexecute_sql_readonly3 fields changed
      • removedInput schema / properties / jobTimeoutMs
        Removed value: -{
        -  "description": "Optional. Optional: Job timeout in milliseconds. If this time limit is exceeded, BigQuery will attempt to stop the query job.",
        -  "format": "int64",
        -  "type": "string"
        -}
      • removedInput schema / properties / timeoutMs
        Removed value: -{
        -  "description": "Optional. Optional: Specifies the maximum amount of time, in milliseconds, that the client is willing to wait for the query to complete. By default, this limit is 20 seconds (20,000 milliseconds).",
        -  "format": "int64",
        -  "maximum": 4294967295,
        -  "minimum": 0,
        -  "type": "integer"
        -}
      • removedOutput schema / properties / jobId
        Removed value: -{
        -  "description": "Output only. The ID of the BigQuery job created for this query, if any. Present when a query job is created (e.g. for long-running operations, DML, scripts). Use this ID with `get_query_results`, `cancel_job`, or `get_job`.",
        -  "readOnly": true,
        -  "type": "string"
        -}
    • Removedget_query_results

Related MCP Connectors

  • The Google GKE MCP server is a managed Model Context Protocol server that provides AI applications with tools to manage Google Kubernetes Engine (GKE) clusters and Kubernetes resources. It exposes a structured, discoverable interface that allows AI agents to interact with GKE and Kubernetes APIs, enabling them to inspect cluster configurations, retrieve Kubernetes resource YAMLs, monitor operations like cluster upgrades, diagnose issues, and optimize costs—all without needing to parse text output or use complex kubectl commands.

  • The Google Compute Engine MCP server is a fully-managed Model Context Protocol server that provides tools to manage Google Compute Engine resources through AI agents. It enables capabilities including instance management (creating, starting, stopping, resetting, listing), disk management, handling instance templates and group managers, viewing machine and accelerator types, managing images, and accessing reservation and commitment information. The server operates as a zero-deployment, enterprise-grade endpoint at https://compute.googleapis.com/mcp with built-in IAM-based security.

  • The Remote MCP server acts as a standardized bridge between LLM applications (like Claude, ChatGPT, and Cursor) and external services, enabling AI agents to access external tools and resources. Its primary capability is providing a centralized search tool to discover other MCP servers and their respective tools. Unlike local implementations, it runs remotely with OAuth authentication and permission controls for security.

  • The CustomGPT.ai MCP server is a fully managed, RAG-powered endpoint that connects large language models with private knowledge bases and external data sources. It provides tools for retrieval-augmented generation queries (send_message), data ingestion (upload_file), and source listing, enabling AI agents to query private documents like PDFs with high accuracy and real-time citations.

Related MCP Servers

  • A
    license
    Not graded
    quality
    D
    maintenance
    MCP server for secure BigQuery access across multiple Google Cloud projects, enabling querying, schema exploration, and data analysis with SQL validation and read-only controls.
    2
    MIT
  • A
    license
    Not graded
    quality
    C
    maintenance
    Enterprise-grade MCP server for Google Cloud BigQuery with keyless Workload Identity Federation authentication, enabling secure SQL query execution, dataset management, and schema inspection with comprehensive audit logging and encryption.
    MIT
  • A
    license
    Not graded
    quality
    D
    maintenance
    Production-ready MCP server for BigQuery that translates natural language questions to SQL, executes queries securely, and delivers results via stdio or HTTP for integration with GitHub Copilot, Power BI, and web applications.
    1,873 npm
    MIT
Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources