Google Big Query
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.
- Status
- Healthy
- Uptime
- 100.0% over 38 days
- Last Tested
- Transport
- Streamable HTTP · MCP 2025-11-25
- URL
TDQS
Scored across 8 tools
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.
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.
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.
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 toolscancel_jobADestructiveIdempotentInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| jobId | Yes | Required. Job ID of the job to cancel. | |
| location | No | Optional. The geographic location of the job. | |
| projectId | Yes | Required. Project ID of the job to cancel. |
Output Schema
| Name | Required | Description |
|---|---|---|
| job | No | The final state of the job. |
| kind | No | The resource type of the response. |
TDQS
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.
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.
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.
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.
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.
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_sqlADestructiveInspect
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.PREDICTAny 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 returnsjob_complete: trueand the initial result rows directly. For fast queries,job_idmay 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 returnsjob_complete: falseand ajob_id. In this case, use theget_query_resultstool withjob_idto poll untiljob_complete: true, or usecancel_jobto abort the running query.You can optionally specify
timeout_msto configure the maximum synchronous wait time in milliseconds (defaults to 20,000 ms), andjob_timeout_msto enforce a hard server-side timeout after which BigQuery automatically terminates the job.
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes | Required. The query to execute in the form of a GoogleSQL query. | |
| dryRun | No | Optional. 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. | |
| labels | No | Optional. 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. | |
| projectId | Yes | Required. Project that will be used for query execution and billing. | |
| timeoutMs | No | 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). | |
| jobTimeoutMs | No | Optional. Optional: Job timeout in milliseconds. If this time limit is exceeded, BigQuery will attempt to stop the query job. |
Output Schema
| Name | Required | Description |
|---|---|---|
| rows | No | An 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. |
| jobId | No | 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`. |
| errors | No | Output 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). |
| schema | No | The schema of the results. Present only when the query completes successfully. |
| queryId | No | Output only. The ID of the query. |
| jobComplete | No | Whether 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. |
| totalSlotMs | No | Output only. Number of slot ms the user is actually billed for. |
| totalBytesBilled | No | Output only. The total number of bytes billed for the query. Only applies if the project is configured to use on-demand pricing. |
| numDmlAffectedRows | No | Output only. The number of rows affected by a DML statement. |
| totalBytesProcessed | No | Output only. The total number of bytes processed for this query. |
TDQS
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.
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.
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.
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.
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.
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_readonlyARead-onlyIdempotentInspect
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 returnsjob_complete: trueand the result rows directly. For fast queries,job_idmay 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 returnsjob_complete: falseand ajob_id. In this case, use theget_query_resultstool withjob_idto poll untiljob_complete: true, or usecancel_jobto abort the running query.You can optionally specify
timeout_msto configure the maximum synchronous wait time in milliseconds (defaults to 20,000 ms), andjob_timeout_msto enforce a hard server-side timeout after which BigQuery automatically terminates the job.
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes | Required. The query to execute in the form of a GoogleSQL query. | |
| dryRun | No | Optional. 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. | |
| labels | No | Optional. 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. | |
| projectId | Yes | Required. Project that will be used for query execution and billing. | |
| timeoutMs | No | 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). | |
| jobTimeoutMs | No | Optional. Optional: Job timeout in milliseconds. If this time limit is exceeded, BigQuery will attempt to stop the query job. |
Output Schema
| Name | Required | Description |
|---|---|---|
| rows | No | An 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. |
| jobId | No | 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`. |
| errors | No | Output 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). |
| schema | No | The schema of the results. Present only when the query completes successfully. |
| queryId | No | Output only. The ID of the query. |
| jobComplete | No | Whether 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. |
| totalSlotMs | No | Output only. Number of slot ms the user is actually billed for. |
| totalBytesBilled | No | Output only. The total number of bytes billed for the query. Only applies if the project is configured to use on-demand pricing. |
| numDmlAffectedRows | No | Output only. The number of rows affected by a DML statement. |
| totalBytesProcessed | No | Output only. The total number of bytes processed for this query. |
TDQS
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.
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.
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.
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.
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.
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_infoARead-onlyIdempotentInspect
Get metadata information about a BigQuery dataset or BigLake namespace.
| Name | Required | Description | Default |
|---|---|---|---|
| datasetId | Yes | Required. Dataset ID of the dataset request. | |
| projectId | Yes | Required. Project ID of the dataset request. |
Output Schema
| Name | Required | Description |
|---|---|---|
| id | No | Output 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. |
| etag | No | Output only. A hash of the resource. |
| kind | No | Output only. The resource type. |
| tags | No | Output only. Tags for the dataset. To provide tags as inputs, use the `resourceTags` field. |
| type | No | Output 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. |
| access | No | Optional. 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. |
| labels | No | The 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. |
| location | No | The geographic location where the dataset should reside. See https://cloud.google.com/bigquery/docs/locations for supported locations. |
| selfLink | No | Output 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. |
| description | No | Optional. A user-friendly description of the dataset. |
| creationTime | No | Output only. The time when this dataset was created, in milliseconds since the epoch. |
| friendlyName | No | Optional. A descriptive name for the dataset. |
| resourceTags | No | Optional. 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. |
| restrictions | No | Optional. 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. |
| satisfiesPzi | No | Output only. Reserved for future use. |
| satisfiesPzs | No | Output only. Reserved for future use. |
| catalogSource | No | Output only. The origin of the dataset, one of: * (Unset) - Native BigQuery Dataset * BIGLAKE - Dataset is backed by a namespace stored natively in Biglake |
| datasetReference | No | Required. A reference that identifies the dataset. |
| defaultCollation | No | Optional. 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. |
| lastModifiedTime | No | Output only. The date when this dataset was last modified, in milliseconds since the epoch. |
| isCaseInsensitive | No | Optional. 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. |
| maxTimeTravelHours | No | Optional. 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. |
| defaultRoundingMode | No | Optional. 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. |
| linkedDatasetSource | No | Optional. 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. |
| storageBillingModel | No | Optional. Updates storage_billing_model for the dataset. |
| linkedDatasetMetadata | No | Output only. Metadata about the LinkedDataset. Filled out when the dataset type is LINKED. |
| defaultTableExpirationMs | No | Optional. 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. |
| externalDatasetReference | No | Optional. Reference to a read-only external dataset defined in data catalogs outside of BigQuery. Filled out when the dataset type is EXTERNAL. |
| defaultPartitionExpirationMs | No | This 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. |
| externalCatalogDatasetOptions | No | Optional. 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. |
| defaultEncryptionConfiguration | No | The 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
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.
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.
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.
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.
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.
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_resultsARead-onlyIdempotentInspect
Get the results of a BigQuery SQL query job.
Use this tool ONLY when:
A previous
execute_sqlorexecute_sql_readonlycall returnedjob_complete: falsewith ajob_id(poll with this tool untiljob_complete: true), ORYou need to paginate through additional rows using
page_tokenorstart_indexfor 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.
| Name | Required | Description | Default |
|---|---|---|---|
| jobId | Yes | Required. Job ID of the query job. | |
| location | No | Optional. The geographic location of the job. | |
| pageToken | No | Optional. Page token, returned by a previous call, to request the next page of results. | |
| projectId | Yes | Required. Project ID of the query job. | |
| timeoutMs | No | Optional. Specifies the maximum amount of time, in milliseconds, that the client is willing to wait for the query to complete. | |
| maxResults | No | Optional. Maximum number of results to read. | |
| startIndex | No | Optional. Zero-based index of the starting row. |
Output Schema
| Name | Required | Description |
|---|---|---|
| rows | No | An 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. |
| jobId | No | 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`. |
| errors | No | Output 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). |
| schema | No | The schema of the results. Present only when the query completes successfully. |
| queryId | No | Output only. The ID of the query. |
| jobComplete | No | Whether 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. |
| totalSlotMs | No | Output only. Number of slot ms the user is actually billed for. |
| totalBytesBilled | No | Output only. The total number of bytes billed for the query. Only applies if the project is configured to use on-demand pricing. |
| numDmlAffectedRows | No | Output only. The number of rows affected by a DML statement. |
| totalBytesProcessed | No | Output only. The total number of bytes processed for this query. |
TDQS
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.
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.
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.
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.
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.
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_infoARead-onlyIdempotentInspect
Get metadata information about a BigQuery table or BigLake table.
| Name | Required | Description | Default |
|---|---|---|---|
| tableId | Yes | Required. Table ID of the table request. | |
| datasetId | Yes | Required. Dataset ID of the table request. | |
| projectId | Yes | Required. Project ID of the table request. |
Output Schema
| Name | Required | Description |
|---|---|---|
| id | No | Output only. An opaque ID uniquely identifying the table. |
| etag | No | Output only. A hash of this resource. |
| kind | No | The type of resource ID. |
| type | No | Output 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`. |
| view | No | Optional. The view definition. |
| labels | No | The 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. |
| schema | No | Optional. Describes the schema of this table. |
| numRows | No | Output only. The number of rows of data in this table, excluding any data in the streaming buffer. |
| location | No | Output only. The geographic location where the table resides. This value is inherited from the dataset. |
| numBytes | No | Output only. The size of this table in logical bytes, excluding any data in the streaming buffer. |
| replicas | No | Optional. Output only. Table references of all replicas currently active on the table. |
| selfLink | No | Output only. A URL that can be used to access this resource again. |
| clustering | No | Clustering specification for the table. Must be specified with time-based partitioning, data in the table will be first partitioned and subsequently clustered. |
| description | No | Optional. A user-friendly description of this table. |
| creationTime | No | Output only. The time when this table was created, in milliseconds since the epoch. |
| friendlyName | No | Optional. A descriptive name for this table. |
| maxStaleness | No | Optional. 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. |
| resourceTags | No | Optional. 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. |
| restrictions | No | Optional. 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. |
| numPartitions | No | Output 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. |
| expirationTime | No | Optional. 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. |
| tableReference | No | Required. Reference describing the ID of this table. |
| cloneDefinition | No | Output only. Contains information about the clone. This value is set via the clone operation. |
| streamingBuffer | No | Output 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. |
| defaultCollation | No | Optional. 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. |
| lastModifiedTime | No | Output only. The time when this table was last modified, in milliseconds since the epoch. |
| managedTableType | No | Optional. If set, overrides the default managed table type configured in the dataset. |
| materializedView | No | Optional. The materialized view definition. |
| numLongTermBytes | No | Output only. The number of logical bytes in the table that are considered "long-term storage". |
| numPhysicalBytes | No | Output only. The physical size of this table in bytes. This includes storage used for time travel. |
| tableConstraints | No | Optional. Tables Primary Key and Foreign Key information |
| timePartitioning | No | If specified, configures time-based partitioning for this table. |
| rangePartitioning | No | If specified, configures range partitioning for this table. |
| snapshotDefinition | No | Output only. Contains information about the snapshot. This value is set via snapshot creation. |
| defaultRoundingMode | No | Optional. 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. |
| partitionDefinition | No | Optional. 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. |
| biglakeConfiguration | No | Optional. Specifies the configuration of a BigQuery table for Apache Iceberg. |
| numTotalLogicalBytes | No | Output only. Total number of logical bytes in the table or materialized view. |
| tableReplicationInfo | No | Optional. Table replication info for table created `AS REPLICA` DDL like: `CREATE MATERIALIZED VIEW mv1 AS REPLICA OF src_mv` |
| numActiveLogicalBytes | No | Output only. Number of logical bytes that are less than 90 days old. |
| numTotalPhysicalBytes | No | Output 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. |
| materializedViewStatus | No | Output only. The materialized view status. |
| numActivePhysicalBytes | No | Output 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. |
| requirePartitionFilter | No | Optional. If set to true, queries over this table require a partition filter that can be used for partition elimination to be specified. |
| encryptionConfiguration | No | Custom encryption configuration (e.g., Cloud KMS keys). |
| numCurrentPhysicalBytes | No | Output 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. |
| numLongTermLogicalBytes | No | Output only. Number of logical bytes that are more than 90 days old. |
| numLongTermPhysicalBytes | No | Output 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. |
| externalDataConfiguration | No | Optional. 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. |
| numTimeTravelPhysicalBytes | No | Output 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. |
| externalCatalogTableOptions | No | Optional. Options defining open source compatible table. |
TDQS
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.
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.
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.
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.
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.
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_idsARead-onlyIdempotentInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| pageSize | No | Optional. The maximum number of results to return in a single response page. If unset, the default page size of 5000 is used. | |
| pageToken | No | Optional. Page token, returned by a previous call, to request the next page of results. | |
| projectId | Yes | Required. Project ID of the dataset request. |
Output Schema
| Name | Required | Description |
|---|---|---|
| datasets | No | The datasets that matched the request. |
| nextPageToken | No | A token that can be used to request the next results page. |
TDQS
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.
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.
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.
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.
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.
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_idsARead-onlyIdempotentInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| pageSize | No | Optional. The maximum number of results to return in a single response page. If unset, the default page size of 5000 is used. | |
| datasetId | Yes | Required. Dataset ID of the table request. | |
| pageToken | No | Optional. Page token, returned by a previous call, to request the next page of results. | |
| projectId | Yes | Required. Project ID of the table request. |
Output Schema
| Name | Required | Description |
|---|---|---|
| tables | No | The tables that matched the request. |
| nextPageToken | No | A token that can be used to request the next results page. |
TDQS
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.
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.
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.
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.
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.
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.
4 tool updates
- Added
cancel_job - Changed
execute_sql3 fields changed- added
Input schema / properties / jobTimeoutMsAdded 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" +} - added
Input schema / properties / timeoutMsAdded 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" +} - added
Output schema / properties / jobIdAdded 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" +}
- Changed
execute_sql_readonly3 fields changed- added
Input schema / properties / jobTimeoutMsAdded 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" +} - added
Input schema / properties / timeoutMsAdded 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" +} - added
Output schema / properties / jobIdAdded 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" +}
- Added
get_query_results
4 tool updates
- Removed
cancel_job - Changed
execute_sql3 fields changed- removed
Input schema / properties / jobTimeoutMsRemoved 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" -} - removed
Input schema / properties / timeoutMsRemoved 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" -} - removed
Output schema / properties / jobIdRemoved 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" -}
- Changed
execute_sql_readonly3 fields changed- removed
Input schema / properties / jobTimeoutMsRemoved 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" -} - removed
Input schema / properties / timeoutMsRemoved 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" -} - removed
Output schema / properties / jobIdRemoved 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" -}
- Removed
get_query_results
4 tool updates
- Added
cancel_job - Changed
execute_sql3 fields changed- added
Input schema / properties / jobTimeoutMsAdded 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" +} - added
Input schema / properties / timeoutMsAdded 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" +} - added
Output schema / properties / jobIdAdded 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" +}
- Changed
execute_sql_readonly3 fields changed- added
Input schema / properties / jobTimeoutMsAdded 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" +} - added
Input schema / properties / timeoutMsAdded 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" +} - added
Output schema / properties / jobIdAdded 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" +}
- Added
get_query_results
4 tool updates
- Removed
cancel_job - Changed
execute_sql3 fields changed- removed
Input schema / properties / jobTimeoutMsRemoved 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" -} - removed
Input schema / properties / timeoutMsRemoved 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" -} - removed
Output schema / properties / jobIdRemoved 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" -}
- Changed
execute_sql_readonly3 fields changed- removed
Input schema / properties / jobTimeoutMsRemoved 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" -} - removed
Input schema / properties / timeoutMsRemoved 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" -} - removed
Output schema / properties / jobIdRemoved 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" -}
- Removed
get_query_results
4 tool updates
- Added
cancel_job - Changed
execute_sql3 fields changed- added
Input schema / properties / jobTimeoutMsAdded 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" +} - added
Input schema / properties / timeoutMsAdded 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" +} - added
Output schema / properties / jobIdAdded 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" +}
- Changed
execute_sql_readonly3 fields changed- added
Input schema / properties / jobTimeoutMsAdded 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" +} - added
Input schema / properties / timeoutMsAdded 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" +} - added
Output schema / properties / jobIdAdded 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" +}
- Added
get_query_results
4 tool updates
- Removed
cancel_job - Changed
execute_sql3 fields changed- removed
Input schema / properties / jobTimeoutMsRemoved 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" -} - removed
Input schema / properties / timeoutMsRemoved 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" -} - removed
Output schema / properties / jobIdRemoved 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" -}
- Changed
execute_sql_readonly3 fields changed- removed
Input schema / properties / jobTimeoutMsRemoved 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" -} - removed
Input schema / properties / timeoutMsRemoved 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" -} - removed
Output schema / properties / jobIdRemoved 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" -}
- Removed
get_query_results
4 tool updates
- Added
cancel_job - Changed
execute_sql3 fields changed- added
Input schema / properties / jobTimeoutMsAdded 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" +} - added
Input schema / properties / timeoutMsAdded 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" +} - added
Output schema / properties / jobIdAdded 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" +}
- Changed
execute_sql_readonly3 fields changed- added
Input schema / properties / jobTimeoutMsAdded 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" +} - added
Input schema / properties / timeoutMsAdded 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" +} - added
Output schema / properties / jobIdAdded 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" +}
- Added
get_query_results
4 tool updates
- Removed
cancel_job - Changed
execute_sql3 fields changed- removed
Input schema / properties / jobTimeoutMsRemoved 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" -} - removed
Input schema / properties / timeoutMsRemoved 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" -} - removed
Output schema / properties / jobIdRemoved 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" -}
- Changed
execute_sql_readonly3 fields changed- removed
Input schema / properties / jobTimeoutMsRemoved 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" -} - removed
Input schema / properties / timeoutMsRemoved 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" -} - removed
Output schema / properties / jobIdRemoved 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" -}
- Removed
get_query_results
4 tool updates
- Added
cancel_job - Changed
execute_sql3 fields changed- added
Input schema / properties / jobTimeoutMsAdded 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" +} - added
Input schema / properties / timeoutMsAdded 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" +} - added
Output schema / properties / jobIdAdded 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" +}
- Changed
execute_sql_readonly3 fields changed- added
Input schema / properties / jobTimeoutMsAdded 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" +} - added
Input schema / properties / timeoutMsAdded 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" +} - added
Output schema / properties / jobIdAdded 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" +}
- Added
get_query_results
4 tool updates
- Removed
cancel_job - Changed
execute_sql3 fields changed- removed
Input schema / properties / jobTimeoutMsRemoved 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" -} - removed
Input schema / properties / timeoutMsRemoved 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" -} - removed
Output schema / properties / jobIdRemoved 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" -}
- Changed
execute_sql_readonly3 fields changed- removed
Input schema / properties / jobTimeoutMsRemoved 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" -} - removed
Input schema / properties / timeoutMsRemoved 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" -} - removed
Output schema / properties / jobIdRemoved 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" -}
- Removed
get_query_results
4 tool updates
- Added
cancel_job - Changed
execute_sql3 fields changed- added
Input schema / properties / jobTimeoutMsAdded 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" +} - added
Input schema / properties / timeoutMsAdded 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" +} - added
Output schema / properties / jobIdAdded 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" +}
- Changed
execute_sql_readonly3 fields changed- added
Input schema / properties / jobTimeoutMsAdded 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" +} - added
Input schema / properties / timeoutMsAdded 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" +} - added
Output schema / properties / jobIdAdded 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" +}
- Added
get_query_results
4 tool updates
- Removed
cancel_job - Changed
execute_sql3 fields changed- removed
Input schema / properties / jobTimeoutMsRemoved 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" -} - removed
Input schema / properties / timeoutMsRemoved 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" -} - removed
Output schema / properties / jobIdRemoved 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" -}
- Changed
execute_sql_readonly3 fields changed- removed
Input schema / properties / jobTimeoutMsRemoved 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" -} - removed
Input schema / properties / timeoutMsRemoved 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" -} - removed
Output schema / properties / jobIdRemoved 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" -}
- Removed
get_query_results
4 tool updates
- Added
cancel_job - Changed
execute_sql3 fields changed- added
Input schema / properties / jobTimeoutMsAdded 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" +} - added
Input schema / properties / timeoutMsAdded 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" +} - added
Output schema / properties / jobIdAdded 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" +}
- Changed
execute_sql_readonly3 fields changed- added
Input schema / properties / jobTimeoutMsAdded 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" +} - added
Input schema / properties / timeoutMsAdded 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" +} - added
Output schema / properties / jobIdAdded 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" +}
- Added
get_query_results
4 tool updates
- Removed
cancel_job - Changed
execute_sql3 fields changed- removed
Input schema / properties / jobTimeoutMsRemoved 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" -} - removed
Input schema / properties / timeoutMsRemoved 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" -} - removed
Output schema / properties / jobIdRemoved 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" -}
- Changed
execute_sql_readonly3 fields changed- removed
Input schema / properties / jobTimeoutMsRemoved 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" -} - removed
Input schema / properties / timeoutMsRemoved 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" -} - removed
Output schema / properties / jobIdRemoved 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" -}
- Removed
get_query_results
4 tool updates
- Added
cancel_job - Changed
execute_sql3 fields changed- added
Input schema / properties / jobTimeoutMsAdded 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" +} - added
Input schema / properties / timeoutMsAdded 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" +} - added
Output schema / properties / jobIdAdded 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" +}
- Changed
execute_sql_readonly3 fields changed- added
Input schema / properties / jobTimeoutMsAdded 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" +} - added
Input schema / properties / timeoutMsAdded 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" +} - added
Output schema / properties / jobIdAdded 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" +}
- Added
get_query_results
4 tool updates
- Removed
cancel_job - Changed
execute_sql3 fields changed- removed
Input schema / properties / jobTimeoutMsRemoved 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" -} - removed
Input schema / properties / timeoutMsRemoved 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" -} - removed
Output schema / properties / jobIdRemoved 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" -}
- Changed
execute_sql_readonly3 fields changed- removed
Input schema / properties / jobTimeoutMsRemoved 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" -} - removed
Input schema / properties / timeoutMsRemoved 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" -} - removed
Output schema / properties / jobIdRemoved 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" -}
- Removed
get_query_results
4 tool updates
- Added
cancel_job - Changed
execute_sql3 fields changed- added
Input schema / properties / jobTimeoutMsAdded 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" +} - added
Input schema / properties / timeoutMsAdded 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" +} - added
Output schema / properties / jobIdAdded 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" +}
- Changed
execute_sql_readonly3 fields changed- added
Input schema / properties / jobTimeoutMsAdded 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" +} - added
Input schema / properties / timeoutMsAdded 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" +} - added
Output schema / properties / jobIdAdded 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" +}
- Added
get_query_results
4 tool updates
- Removed
cancel_job - Changed
execute_sql3 fields changed- removed
Input schema / properties / jobTimeoutMsRemoved 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" -} - removed
Input schema / properties / timeoutMsRemoved 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" -} - removed
Output schema / properties / jobIdRemoved 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" -}
- Changed
execute_sql_readonly3 fields changed- removed
Input schema / properties / jobTimeoutMsRemoved 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" -} - removed
Input schema / properties / timeoutMsRemoved 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" -} - removed
Output schema / properties / jobIdRemoved 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" -}
- Removed
get_query_results
4 tool updates
- Added
cancel_job - Changed
execute_sql3 fields changed- added
Input schema / properties / jobTimeoutMsAdded 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" +} - added
Input schema / properties / timeoutMsAdded 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" +} - added
Output schema / properties / jobIdAdded 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" +}
- Changed
execute_sql_readonly3 fields changed- added
Input schema / properties / jobTimeoutMsAdded 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" +} - added
Input schema / properties / timeoutMsAdded 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" +} - added
Output schema / properties / jobIdAdded 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" +}
- Added
get_query_results
4 tool updates
- Removed
cancel_job - Changed
execute_sql3 fields changed- removed
Input schema / properties / jobTimeoutMsRemoved 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" -} - removed
Input schema / properties / timeoutMsRemoved 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" -} - removed
Output schema / properties / jobIdRemoved 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" -}
- Changed
execute_sql_readonly3 fields changed- removed
Input schema / properties / jobTimeoutMsRemoved 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" -} - removed
Input schema / properties / timeoutMsRemoved 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" -} - removed
Output schema / properties / jobIdRemoved 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" -}
- Removed
get_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
- AlicenseNot gradedqualityDmaintenanceMCP server for secure BigQuery access across multiple Google Cloud projects, enabling querying, schema exploration, and data analysis with SQL validation and read-only controls.2MIT
- AlicenseNot gradedqualityCmaintenanceEnterprise-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
- AlicenseNot gradedqualityDmaintenanceProduction-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 npmMIT
- AlicenseNot gradedqualityDmaintenanceA Model Context Protocol (MCP) server that enables LLMs to interact with Google BigQuery.MIT
Glama MCP Gateway
Add one secure layer between your agents and this server.