article
README
🚀 BigQuery MCP 服务器
一个提供对 BigQuery 访问的模型上下文协议(Model Context Protocol,MCP)服务器。此服务器让大型语言模型(LLMs)能够检查数据库架构并执行查询,为数据交互提供了便捷途径。
🚀 快速开始
安装
使用 Smithery 安装
要通过 Smithery 自动安装 BigQuery 服务器,可使用以下命令:
npx -y @smithery/cli install mcp-server-bigquery --client claude
Claude Desktop 配置
- MacOS:配置文件路径为
~/Library/Application\ Support/Claude/claude_desktop_config.json - Windows:配置文件路径为
%APPDATA%/Claude/claude_desktop_config.json
开发/未发布的服务器配置
"mcpServers": {
"bigquery": {
"command": "uv",
"args": [
"--directory",
"{{PATH_TO_REPO}}",
"run",
"mcp-server-bigquery",
"--project",
"{{GCP_PROJECT_ID}}",
"--location",
"{{GCP_LOCATION}}"
]
}
}
已发布的服务器配置
"mcpServers": {
"bigquery": {
"command": "uvx",
"args": [
"mcp-server-bigquery",
"--project",
"{{GCP_PROJECT_ID}}",
"--location",
"{{GCP_LOCATION}}"
]
}
}
请将 {{PATH_TO_REPO}}、{{GCP_PROJECT_ID}} 和 {{GCP_LOCATION}} 替换为适当的值。
✨ 主要特性
该服务器实现了以下工具,为用户提供了便捷的数据库操作方式:
execute-query:使用 BigQuery 方言执行 SQL 查询list-tables:列出 BigQuery 数据库中的所有表describe-table:描述特定表格的架构信息
📦 安装指南
服务器可以通过以下参数进行配置:
--project(必需):GCP 项目 ID。--location(必需):GCP 地理位置(例如europe-west9)。--dataset(可选):仅考虑特定的 BigQuery 数据集。可以通过重复参数指定多个数据集(例如--dataset my_dataset_1 --dataset my_dataset_2)。如果未提供,则会考虑项目中的所有数据集。--key-file(可选):BigQuery 服务帐号密钥文件的路径。如果未提供,默认使用凭据。
💻 使用示例
基础用法
# 使用 Smithery 安装 BigQuery 服务器
npx -y @smithery/cli install mcp-server-bigquery --client claude
高级用法
# 开发/未发布的服务器配置示例
"mcpServers": {
"bigquery": {
"command": "uv",
"args": [
"--directory",
"{{PATH_TO_REPO}}",
"run",
"mcp-server-bigquery",
"--project",
"{{GCP_PROJECT_ID}}",
"--location",
"{{GCP_LOCATION}}"
]
}
}
🔧 技术细节
构建和发布
要准备分发包,可按以下步骤操作:
- 同步依赖并更新锁定文件:
uv sync
- 构建发行版:
uv build
这将在 dist/ 目录下创建源代码和 wheel 发行版。
3. 发布到 PyPI:
uv publish
注意:你需要通过环境变量或命令参数设置 PyPI 凭证:
- 令牌:
--token或UV_PUBLISH_TOKEN - 或者用户名/密码:
--username/UV_PUBLISH_USERNAME和--password/UV_PUBLISH_PASSWORD
调试
由于 MCP 服务器通过标准输入输出运行,调试可能具有挑战性。为了获得最佳的调试体验,我们强烈推荐使用 MCP Inspector。 你可以通过以下命令启动 MCP Inspector:
npx @modelcontextprotocol/inspector uv --directory {{PATH_TO_REPO}} run mcp-server-bigquery
启动后,Inspector 会显示一个 URL,你可以在浏览器中访问该 URL 开始调试。
微信扫一扫