bq_mcp_server
BigQuery
Documentation
BigQuery MCP Server
This is a Python-based MCP (Model Context Protocol) server that retrieves dataset, table, and schema information from Google Cloud BigQuery, caches it locally, and serves it via MCP. Its primary purpose is to enable generative AI systems to quickly understand BigQuery's structure and execute queries securely.
Key Features
- Metadata Management: Retrieves and caches information about BigQuery datasets, tables, and columns
- Keyword Search: Supports keyword search of cached metadata
- Secure Query Execution: Provides SQL execution capabilities with automatic LIMIT clause insertion and cost control
- File Export: Execute queries and save results to local files in CSV or JSONL format
- MCP Compliance: Offers tools via the Model Context Protocol
MCP Server Tools
Available tools:
1. `get_datasets` - Retrieves a list of all datasets
2. `get_tables` - Retrieves all tables within a specified dataset (requires dataset_id, optionally accepts project_id)
3. `search_metadata` - Searches metadata for datasets, tables, and columns
4. `execute_query` - Safely executes BigQuery SQL queries with automatic LIMIT clause insertion and cost control
5. `check_query_scan_amount` - Retrieves the scan amount for BigQuery SQL queries
6. `save_query_result` - Executes BigQuery SQL queries and saves results to local files (CSV or JSONL format)
Tool Details
`save_query_result`
The `save_query_result` tool provides advanced query execution with file export capabilities:
Parameters:
- `sql` (required): SQL query to execute
- `output_path` (required): Local file path to save results
- `format` (optional): Output format - `"csv"` (default) or `"jsonl"`
- `project_id` (optional): Target GCP project ID
- `include_header` (optional): Include header row in CSV output (default: true)
Key Features:
- No Automatic LIMIT: Unlike `execute_query`, this tool does not automatically add LIMIT clauses to your SQL queries
- Cost Control: Maintains scan amount limits (default: 1GB) and safety checks to prevent expensive queries
- Security: Path validation prevents directory traversal attacks
- Flexible Formats: Supports both CSV and JSONL output formats
- Large Dataset Support: Handles large query results efficiently within scan limits
Example Usage:
-- Export all rows without LIMIT restriction (subject to scan amount limits)
SELECT customer_id, order_date, total_amount
FROM `project.dataset.orders`
WHERE order_date >= '2024-01-01'Important Note: While this tool doesn't add LIMIT clauses, it still enforces scan amount limits for cost protection. Queries that would scan more than the configured limit (default: 1GB) will be rejected.
Installation and Environment Setup
Prerequisites
- Python 3.11 or later
- Google Cloud Platform account
- GCP project with BigQuery API enabled
Install
uv
uv add bq_mcp_serverpip
pip install bq_mcp_serverInstalling Dependencies
This project uses `uv` for package management:
# Install uv if not already installed
curl -LsSf https://astral.sh/uv/install.sh | sh
# Install dependencies
uv syncConfiguring Option
For a list of configuration values, see:
MCP Setting
Claude Code
claude mcp add bq_mcp_server -- uvx --from git+https://github.com/takada-at/bq_mcp_server bq_mcp_server --project-idsJSON
{
"mcpServers": {
"bq_mcp_server": {
"command": "uvx",
"args": [
"--from",
"git+https://github.com/takada-at/bq_mcp_server",
"bq_mcp_server",
"--project-ids",
""
]
}
}
}Running Tests
Running All Tests
pytestRunning Specific Test Files
pytest tests/test_logic.pyRunning Specific Test Functions
pytest -k test_function_nameChecking Test Coverage
pytest --cov=bq_mcp_serverLocal Development
Starting the MCP Server
uv run bq_mcp_serverStarting the FastAPI REST API Server
uvicorn bq_mcp_server.adapters.web:app --reloadDevelopment Commands
Code Formatting and Linting
# Code formatting
ruff format
# Linting checks
ruff check
# Automatic fixes
ruff check --fixDependency Management
# Adding new dependencies
uv add
# Adding development dependencies
uv add --dev
# Updating dependencies
uv syncFrequently asked questions
What is bq_mcp_server?
bq_mcp_server is BigQuery
How do I install bq_mcp_server?
Open the GitHub repository and follow its README. Most MCP servers are added to your client's MCP config, then called by your agent.
Is bq_mcp_server open source?
Yes — it is hosted on GitHub at https://github.com/takada-at/bq_mcp_server.
Related MCP tools
Cognee is the open-source AI memory platform for agents. Give your AI agents persistent long-term memory across sessions with a self-hosted knowledge graph engine.
Automate browser based workflows with AI
Hindsight: Agent Memory That Learns
A privacy-first app that strips AI watermarks from content you own.
Agent framework and applications built upon Qwen>=3.0, featuring Function Calling, MCP, Code Interpreter, RAG, Chrome extension, etc.
The power of Claude Code / GeminiCLI / CodexCLI + [Gemini / OpenAI / OpenRouter / Azure / Grok / Ollama / Custom Model / All Of The Above] working as one.
Run your own MCP server? See who uses it and what to fix.
Measure it with TrackMCP