opencode

Connect OpenCode to Google BigQuery and Google Sheets

Hand OpenCode both BigQuery and Google Sheets and a spreadsheet becomes a control panel for your warehouse. It reads a provisioning plan from a sheet, creates the datasets, tables, and routines in BigQuery, then writes the results back so you can see what landed. Sheets is where people plan and track, and BigQuery is where the resources actually live. The agent moves between the two so a row in a sheet turns into a real table, and cleanups get logged as they happen.
Loading preview…
Opens a workflow with 123 tools ready to use.

What happens next

Set up in minutes

The open button drops you into a guided setup. It asks exactly this, nothing else:
  1. Choose where it runs

    On your computer through your own OpenCode, or hosted in the cloud. The rest of setup adapts to your choice:

  2. Pick what it can do in Google BigQuery

    A preset of real Google BigQuery operations. Each one becomes a tool the agent can call, and it can't touch anything outside the list.

  3. Pick what it can do in Google Sheets

    A preset of real Google Sheets operations. Each one becomes a tool the agent can call, and it can't touch anything outside the list.

  4. Connect Google BigQuery

    One sign-in. The agent acts through your account, scoped to the operations you picked.

  5. Connect Google Sheets

    One sign-in. The agent acts through your account, scoped to the operations you picked.

  6. Add your personal MCP link

    The last step mints a private MCP URL for this agent and walks you through exactly this, with your real link filled in. The page flips to Connected the moment your OpenCode first calls in.

    1. Run this in your terminal

    $opencode mcp add

    2. Choose Remote and paste your server URL

    https://mcp.noclick.app/s/<your-link>

    3. Choose No when asked about OAuth authentication — the link itself is the key

    <your-link> is your personal server URL — setup mints it for you.

Exact capabilities

Tools OpenCode gets

Pick the operations you want and each becomes a tool the agent can call directly while it works.

Google BigQuery

38 tools
Run Query

Run a SQL query and return results inline (synchronous, bounded by timeout).

Get Query Results

Page through the results of a (possibly async) query job.

Insert Job

Start a query / load / extract / copy job (async).

Get Job

Fetch a job's status and statistics (poll until DONE).

List Jobs

List jobs in a project (filter by state, time range).

Cancel Job

Request cancellation of a running job.

Delete Job

Delete a job's metadata.

List Datasets

List datasets in the project.

Get Dataset

Fetch dataset metadata.

Create Dataset

Create a new dataset.

Update Dataset

Full replace of dataset metadata (PUT).

Patch Dataset

Partial update of dataset metadata (PATCH).

Delete Dataset

Delete a dataset.

List Tables

List tables/views in a dataset.

Get Table

Fetch table metadata/schema.

Create Table

Create a table or view with a schema.

Patch Table

Partial update of a table (add columns, set expiration, etc.).

Update Table

Full replace of table metadata (PUT).

Delete Table

Delete a table or view.

Stream Insert Rows

Streaming insert of JSON rows into a table (real-time append).

List Table Data

Read rows from a table directly (paginated, no SQL).

List Routines

List stored procedures / UDFs / TVFs in a dataset.

Get Routine

Fetch a routine definition.

Create Routine

Create a stored procedure / UDF / TVF.

List Models

List BigQuery ML models in a dataset.

Get Model

Fetch BQML model metadata.

Delete Model

Delete a BQML model.

Get Service Account

Return the BigQuery service account for the project (KMS/transfer grants).

List Projects

List projects the caller can access (for project picker UIs).

Undelete Dataset

Restore a dataset within its time-travel window (datasets.undelete).

Update Routine

Replace a routine's full definition (routines.update, PUT).

Delete Routine

Delete a routine (routines.delete).

Patch Model

Update mutable BQML model metadata (models.patch).

Get Table IAM Policy

Get the IAM policy for a table (tables.getIamPolicy).

Set Table IAM Policy

Set the IAM policy for a table (tables.setIamPolicy).

Test Table IAM Permissions

Test the caller's permissions on a table (tables.testIamPermissions).

List Row Access Policies

List row access policies on a table (rowAccessPolicies.list).

Get Row Access Policy

Get a single row access policy (rowAccessPolicies.get).

Google Sheets

85 tools
Read Sheet Data

Configuration for reading data from a Google Sheet

Write Sheet Data

Configuration for writing data to a Google Sheet

Append Rows to Sheet

Configuration for appending rows to a Google Sheet

Clear Sheet Range

Configuration for clearing values from a range

Create New Spreadsheet

Configuration for creating a new spreadsheet

Fetch Spreadsheet Metadata

Configuration for getting spreadsheet metadata

Read Multiple Sheet Ranges

Configuration for reading multiple ranges at once

Write to Multiple Sheet Ranges

Configuration for writing to multiple ranges at once

Add Spreadsheet Sheet

Configuration for adding a new sheet/tab

Delete Spreadsheet Sheet

Configuration for deleting a sheet/tab

Copy Sheet to Spreadsheet

Configuration for copying a sheet to another spreadsheet

Rename Spreadsheet Sheet

Configuration for renaming a sheet/tab

Duplicate Sheet in Spreadsheet

Configuration for duplicating a sheet within the same spreadsheet

Find and Replace in Spreadsheet

Configuration for find and replace in a spreadsheet

Insert Sheet Rows

Configuration for inserting rows

Delete Sheet Rows

Configuration for deleting rows

Clear Multiple Sheet Ranges

Configuration for clearing multiple ranges at once

Insert Sheet Columns

Configuration for inserting columns

Delete Sheet Columns

Configuration for deleting columns

Format Cells

Configuration for formatting a range of cells

Update Sheet Properties

Configuration for sheet-level display properties

Auto-Resize Columns Or Rows

Configuration for auto-sizing columns or rows to fit their contents

Set Column Width Or Row Height

Configuration for setting an explicit column width or row height

Merge Cells

Configuration for merging cells

Unmerge Cells

Configuration for unmerging cells

Add Or Remove Borders

Configuration for drawing borders on a range

Add Alternating Colours

Configuration for alternating row colours

Set Filter

Configuration for adding a filter to a range

Clear Filter

Configuration for removing a filter

Add Conditional Formatting

Configuration for a conditional formatting rule

Sort Range

Configuration for sorting a range

Add Dropdown Or Input Rule

Configuration for adding a dropdown or input rule to a range

Remove Dropdown Or Input Rule

Configuration for removing dropdowns / input rules from a range

Remove Conditional Formatting

Configuration for removing conditional formatting rules

Remove Alternating Colours

Configuration for removing alternating row colours

Convert Range To Table

Configuration for turning a range into a Sheets table

Delete Table

Configuration for removing a table

Edit Conditional Formatting

Configuration for editing or reordering a conditional formatting rule

Recolour Alternating Colours

Configuration for recolouring existing banding in place

Edit Table

Configuration for changing a table's name, range or column types

Update Spreadsheet Properties

Configuration for spreadsheet-level properties

Add Named Range

Configuration for naming a range

Update Named Range

Configuration for changing a named range

Delete Named Range

Configuration for removing a named range

Protect Range

Configuration for protecting a range from edits

Update Protected Range

Configuration for changing a protected range

Unprotect Range

Configuration for removing range protection

Cell Notes

Configuration for putting a hover note on cells

Insert Smart Chips

Configuration for inserting people or link smart chips

Pivot Table

Configuration for anchoring a pivot table

Copy And Paste Range

Configuration for copying a range onto another

Cut And Paste Range

Configuration for moving a range

Paste Delimited Text

Configuration for pasting delimited text

Auto-Fill Range

Configuration for extending a series

Split Text To Columns

Configuration for splitting a column of text

Trim Whitespace

Configuration for trimming whitespace

Remove Duplicate Rows

Configuration for removing duplicate rows

Randomise Range

Configuration for shuffling rows

Insert Cells

Configuration for inserting cells and shifting the rest

Delete Cells

Configuration for deleting cells and shifting the rest

Move Rows Or Columns

Configuration for moving rows or columns

Append Rows Or Columns

Configuration for appending blank rows or columns

Add Chart

Configuration for adding a chart

Edit Chart

Configuration for changing an existing chart

Move Or Resize Chart

Configuration for moving or resizing a chart

Set Chart Border

Configuration for a chart's border colour

Delete Chart

Configuration for removing a chart

Append Rows After Data

Configuration for appending rows of cells after the last row of data

Filter View

Configuration for creating a saved filter view

Update Filter View

Configuration for changing a filter view

Duplicate Filter View

Configuration for copying a filter view

Delete Filter View

Configuration for removing a filter view

Group Rows Or Columns

Configuration for grouping rows or columns

Collapse Or Expand Group

Configuration for collapsing or expanding a group

Ungroup Rows Or Columns

Configuration for ungrouping rows or columns

Add Slicer

Configuration for adding a slicer control

Update Slicer

Configuration for changing a slicer

Add Developer Metadata

Configuration for tagging a sheet, row or column with durable metadata

Update Developer Metadata

Configuration for changing developer metadata

Delete Developer Metadata

Configuration for removing developer metadata

Connect BigQuery Data Source

Configuration for connecting a BigQuery data source

Repoint Data Source

Configuration for repointing a data source

Delete Data Source

Configuration for disconnecting a data source

Refresh Data Source

Configuration for refreshing connected data

Cancel Data Source Refresh

Configuration for cancelling a running refresh

Starting points

What you can build

Read a provisioning plan from a spreadsheet, then create the datasets, tables, and routines it lists in BigQuery.
After clearing out stale BigQuery tables and models, append a row to a cleanup log sheet for each one removed.
Create a new spreadsheet and write a status range into it tracking which BigQuery jobs were cancelled or deleted.
Read a set of table definitions from a sheet range, create each table in BigQuery, then clear the processed rows.

Meet the runner

About OpenCode

OpenCode is an open, model-agnostic command-line coding agent. In NoClick it runs hosted and gains your apps as tools, so it can act on real systems rather than just edit files. Wire an integration into the agent and OpenCode can use that app’s operations directly while it works. It is a flexible choice when you want an open agent with broad model support and real tool access.
Open and model-agnostic
Flexible across many underlying models
Good general-purpose tool use
Lightweight to point at a focused task

Good to know

Frequently asked questions

Keep exploring

More ways to connect

Make it yours

Open your OpenCode agent in one click.

NoClick runs OpenCode for you with Google BigQuery and Google Sheets wired in as tools. Connect your account and run.