bigquery

This comprehensive guide shows you how to create a Google Cloud service account with the necessary permissions for BigQuery MCP integration, using both the Google Cloud Console UI and command-line tools.

Table of Contents

Prerequisites

  • A Google Cloud Platform account

  • An existing GCP project (or create a new one)

  • Billing enabled on your project

  • Project Owner or Editor permissions, or specific IAM roles:

    • roles/iam.serviceAccountAdmin

    • roles/iam.serviceAccountKeyAdmin

    • roles/resourcemanager.projectIamAdmin

Method 1: Google Cloud Console (UI)

Step 1: Access the Google Cloud Console

  1. Sign in with your Google account

  2. Select your project from the dropdown at the top of the page

Step 2: Enable Required APIs

  1. Navigate to APIs & ServicesLibrary

  2. Search for "BigQuery API" and click on it

  3. Click Enable if not already enabled

  4. Repeat for "Cloud Resource Manager API" if creating a new project

Step 3: Create a Service Account

  1. Navigate to IAM & AdminService Accounts

  2. Click + CREATE SERVICE ACCOUNT

  3. Fill in the service account details:

    • Service account name: bigquery-mcp-service

    • Service account ID: bigquery-mcp-service (auto-generated)

    • Description: Service account for BigQuery MCP access

  4. Click CREATE AND CONTINUE

Step 4: Grant Permissions

  1. In the Grant this service account access to project section:

    • Click Select a role

    • Choose one of the following roles based on your needs:

      • For read-only access: Search for "BigQuery Data Viewer" and select BigQuery Data Viewer (roles/bigquery.dataViewer)

      • For query execution: Search for "BigQuery User" and select BigQuery User (roles/bigquery.user)

      • For full admin access: Search for "BigQuery Admin" and select BigQuery Admin (roles/bigquery.admin)

  2. Click CONTINUE

  3. Skip the optional "Grant users access to this service account" section

  4. Click DONE

Step 5: Create and Download Service Account Key

  1. In the Service Accounts list, find your newly created service account

  2. Click on the service account name to open its details

  3. Navigate to the KEYS tab

  4. Click ADD KEYCreate new key

  5. Select JSON as the key type

  6. Click CREATE

  7. The JSON key file will automatically download to your computer

  8. Important: Store this file securely and never share it publicly

Step 6: Note Your Project ID

  1. In the Google Cloud Console header, note your Project ID

  2. You'll need this for the MCP configuration

Method 2: Command Line (gcloud CLI)

Step 1: Install and Setup gcloud CLI

  1. Authenticate with your Google account:

  2. Set your project (replace YOUR_PROJECT_ID):

Step 2: Enable Required APIs

Step 3: Create Service Account

Step 4: Grant BigQuery Permissions

Step 5: Create and Download Service Account Key

Required Permissions

Configure the required roles and permissions to complete this task. You will need the BigQuery User role (roles/bigquery.user), the BigQuery Data Viewer role (roles/bigquery.dataViewer), or equivalent IAM permissions to connect to the instance.

The service account needs one of the following permission configurations for BigQuery MCP:

  • BigQuery User (roles/bigquery.user) - Standard user access to run queries and jobs

  • BigQuery Data Viewer (roles/bigquery.dataViewer) - Read-only access to datasets and tables

  • BigQuery Admin (roles/bigquery.admin) - Full administrative access to BigQuery resources

Alternative Granular Permissions (if you prefer minimal permissions)

Instead of BigQuery Admin, you can grant these specific permissions:

  • bigquery.datasets.create

  • bigquery.datasets.get

  • bigquery.datasets.getIamPolicy

  • bigquery.datasets.update

  • bigquery.jobs.create

  • bigquery.jobs.get

  • bigquery.jobs.list

  • bigquery.tables.create

  • bigquery.tables.delete

  • bigquery.tables.get

  • bigquery.tables.getData

  • bigquery.tables.list

  • bigquery.tables.update

  • bigquery.tables.updateData

To grant granular permissions via CLI:

Converting to Base64

For some configurations, you may need to convert your service account JSON to base64 encoding.

Method 1: Online Tool

  1. Copy the entire contents of your bigquery-service-account.json file

  2. Paste it into the text area on the website

  3. Click Encode to get the base64 string

  4. Copy the resulting base64 string

Method 2: Command Line (macOS/Linux)

Method 3: Command Line (Windows)

Method 4: Python (Cross-platform)

Next Steps: Configure MCP

Once you have your service account JSON file (and optionally base64 encoded), you can configure the BigQuery MCP:

  1. Download the GenAI toolbox:

  2. Add the MCP configuration:

Troubleshooting

Common Issues

Error: "Permission denied"

  • Ensure your user account has the necessary IAM permissions

  • Verify the service account has the correct roles assigned

  • Check that the required APIs are enabled

Error: "Service account not found"

  • Verify the service account was created successfully

  • Check that you're using the correct project ID

  • Ensure the service account email format is correct

Error: "Invalid key file"

  • Verify the JSON file is valid and not corrupted

  • Check file permissions and ensure it's readable

  • Make sure the file path in the configuration is correct

Error: "Quota exceeded"

  • Check your project's API quotas

  • Ensure billing is enabled on your project

  • Verify you haven't exceeded service account limits

Verification Commands

Security Best Practices

  1. Store credentials securely: Never commit service account keys to version control

  2. Use least privilege: Grant only the minimum permissions needed

  3. Rotate keys regularly: Create new keys and delete old ones periodically

  4. Monitor usage: Enable audit logging to track service account usage

  5. Use short-lived tokens when possible: Consider using Workload Identity Federation for enhanced security

Support

If you encounter issues:

  1. Check the Claude MCP documentation for configuration issues