flin-bigquery-mcp
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| GOOGLE_CLIENT_ID | No | Google Desktop OAuth client ID. Required in OAuth mode. | |
| GOOGLE_CLIENT_SECRET | No | Google Desktop OAuth client secret. Required in OAuth mode. | |
| GOOGLE_BIGQUERY_PROJECT | No | Default metadata and billing/job project. Otherwise project_id must be passed to project-specific tools. | |
| GOOGLE_BIGQUERY_LOCATION | No | Optional BigQuery location (EU, US, or a region); must match the queried data. | |
| GOOGLE_BIGQUERY_AUTH_MODE | No | Authentication mode: 'oauth' (default) or 'adc' for service accounts/workload identity/gcloud application-default credentials. | oauth |
| GOOGLE_BIGQUERY_TOKEN_DIR | No | Directory for named-account token files; defaults to the default token's directory. | |
| GOOGLE_BIGQUERY_OAUTH_PORT | No | Local loopback port for the OAuth callback; 0 picks an available port. | 0 |
| GOOGLE_BIGQUERY_TOKEN_PATH | No | Path to the default account's OAuth token file. | |
| GOOGLE_APPLICATION_CREDENTIALS | No | Standard Google ADC credential file setting, optionally used in ADC mode. | |
| GOOGLE_BIGQUERY_MAX_BYTES_BILLED | No | Hard per-query byte ceiling as a positive integer (default 1 GiB). Tool arguments may lower but cannot raise this ceiling. | 1073741824 |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": false
} |
| prompts | {
"listChanged": false
} |
| resources | {
"subscribe": false,
"listChanged": false
} |
| experimental | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| health_checkB | Check local configuration without contacting Google or opening a browser. ADC is not probed. |
| list_projectsA | List one page of accessible projects. First use may open Google sign-in and save a local token. |
| list_datasetsA | List one page of datasets in project_id or the configured default project. |
| get_datasetB | Get dataset location, description and labels. dataset_id must not include the project prefix. |
| list_tablesB | List one page of tables and views within a dataset. |
| get_tableB | Read nested schema, size, row count, partitioning and clustering before writing SQL. |
| preview_tableA | Read a bounded page from a physical table without a SQL query job. Row order is unspecified. |
| dry_run_queryA | Validate a single SELECT and estimate bytes without executing it. Named parameters use @name in SQL. |
| run_queryA | Dry-run then submit a SELECT job that can incur Google charges. Never raises the configured byte ceiling. Returns a job reference immediately. Use get_query_results to poll and paginate; do not resubmit to poll. project_id is the billing/job project; fully qualified SQL may read data from other accessible projects. |
| get_query_resultsA | Poll a query job or read one result page. Reuse project_id, location and account from submission. If job_complete is false, call again later. Pass next_page_token unchanged to read the next page. NUMERIC values are decimal strings, dates are ISO strings, bytes are base64 strings. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
TDQS
Scored across 10 tools
Tools split cleanly along metadata vs. data vs. query-execution lines, and the run_query/get_query_results pair explicitly warns against resubmission to poll, removing the classic confusion. Minor overlap remains between get_table, get_dataset and preview_table, which all read table/dataset information, though the descriptions distinguish schema metadata from bounded row previews.
Nine of ten names follow a predictable verb_noun snake_case pattern (list_projects, get_dataset, preview_table, dry_run_query, run_query, get_query_results). health_check is the one deviation, using a noun_noun form, but it is a widely understood idiom and does not hurt readability.
Ten tools is a well-scoped surface for a BigQuery server: enumeration, metadata inspection, preview, validation, execution and result polling each appear once. Nothing looks padded or redundant.
The core read/query lifecycle (project -> dataset -> table -> dry run -> run -> poll/paginate) is fully covered with no dead ends. Gaps are the absence of job management (cancel, list recent jobs/costs) and any write DDL/DML, which appears intentional for a read-only, cost-guarded server.