bq-mcp

AobaIwaki123/bq-mcp

3.2

If you are the rightful owner of bq-mcp and would like to certify it and/or have it hosted online, please leave a comment on the right or send an email to henry@mcphub.com.

This document provides a comprehensive guide to setting up an MCP Server for Big Query, enabling seamless interaction between AI agents and Big Query databases.

Tools
  1. search-hotels-by-name

    Search for hotels based on name using a SQL query.

  2. search-hotels-by-location

    Search for hotels based on location using a SQL query.

MCP Server for Big Query

目標

  • Big Queryを操作するためのMCP Serverを構築する

目的

  1. 技術観点: MCP Server for BQのための知見を蓄積する
  2. チーム観点: テーブル調査業務を簡単にする

Vertex AIの有効化

1. Vertex AIのAPIを有効化

2. Application Default Credentialを取得

$ gcloud auth application-default login

MCP Toolbox for Database

このToolboxはAI Agentがデータベースにアクセスするためのtoolを提供する toolとは、AI Agentが使用する外部リソースへのアクセス手段のことである。 以下に示すようにAgentが自律的にデータベースにアクセスすることをサポートする。

alt text

Install Toolbox for Mac

$ wget https://storage.googleapis.com/genai-toolbox/v0.7.0/darwin/arm64/toolbox
$ chmod +x toolbox

Configure Toolbox

  • データソースを指定
  my-bigquery-source:
    kind: bigquery
    project: mcp-server-for-big-query
    location: US
  • Agentに利用可能なtoolを提供
toolsets:
  my-toolset: # Toolset name
  - search-hotels-by-name
  - search-hotels-by-location
  • 具体的なtoolの定義
  search-hotels-by-name:
    kind: bigquery-sql
    source: my-bigquery-source # Source name
    description: Search for hotels based on name. # Description
    parameters: # Parameters for the SQL query
    - name: name
      type: string
      description: The name of the hotel.
    # 与えられたホテル名を用いた曖昧検索を行うSQL文
    statement: SELECT * FROM `sample.hotels` WHERE LOWER(name) LIKE LOWER(CONCAT('%', @name, '%'));

Running Toolbox Server

$ ./toolbox --tools-file tools.yml
2025-06-27T16:55:21.625816+09:00 INFO "Server ready to serve!" 
# localhost:5000 でToolbox Serverが起動します
  • 動作確認
$ curl http://127.0.0.1:5000
🧰 Hello, World! 🧰%     

MCP Server

以上で設定したToolboxとAI Agentを接続し、MCP Serverを構築する。

toolbox = ToolboxSyncClient("http://127.0.0.1:5000")

Agentにtoolsを引数として渡すことでToolboxを利用できるようになる。

tools = toolbox.load_toolset("my-toolset")

root_agent = Agent(
    ...,
    tools=tools,
)

.env for ADK

GOOGLE_GENAI_USE_VERTEXAI=TRUE # Vertex AIを使用する場合はTRUE
GOOGLE_CLOUD_PROJECT=GCP_PROJECT # Google CloudプロジェクトID
GOOGLE_CLOUD_LOCATION=global # Vertex AIのロケーション

Running MCP Server

$ cd hotel_agent
$ adk web
INFO:     Uvicorn running on http://127.0.0.1:8000 (Press CTRL+C to quit)
  • 動作確認

ブラウザで、localhost:8000にアクセスし、チャットにhelloと入力 何らかのレスポンスが返って来ればOK

MCP Server for Big Query全体の動作確認

ブラウザで、localhost:8000にアクセスし、以下を入力

search for Comfort Inn Bern

下記画像のようなレスポンスが返って来ればOK

alt text

MCP ToolboxとIDEを連携する

Windsurf

  • Cascade Assistant > MCP > Configure MCP > View Raw Config
{
  "mcpServers": {
    "bigquery": {
      "command": "./PATH/TO/toolbox",
      "args": ["--prebuilt","bigquery","--stdio"],
      "env": {
        "BIGQUERY_PROJECT": "PROJECT_ID"
      }
    }
  }
}

Cursor

.cursor/mcp.json

{
  "mcpServers": {
    "bigquery": {
      "command": "toolbox",
      "args": ["--prebuilt","bigquery","--stdio"],
      "env": {
        "BIGQUERY_PROJECT": "PROJECT_ID"
      }
    }
  }
}

VSCode

.vscode/mcp.json

{
  "servers": {
    "bigquery": {
      "command": "toolbox",
      "args": [
        "--prebuilt",
        "bigquery",
        "--stdio"
      ],
      "env": {
        "BIGQUERY_PROJECT": "mcp-server-for-big-query"
      }
    }
  }
}

参考