BigQuery MCP 服务器
一个提供对 BigQuery 访问的模型上下文协议服务器。该服务器使 LLM 能够检查数据库架构并执行查询。
组件
工具
服务器实现了一个工具:
execute-query:使用 BigQuery 语法执行 SQL 查询list-tables:列出 BigQuery 数据库中的所有表describe-table:描述特定表的架构
配置
服务器可以通过命令行参数或环境变量进行配置。
| 参数 | 环境变量 | 是否必需 | 描述 |
|---|---|---|---|
--project | BIGQUERY_PROJECT | 是 | GCP 项目 ID。 |
--location | BIGQUERY_LOCATION | 是 | GCP 位置(例如 europe-west9)。 |
--dataset | BIGQUERY_DATASETS | 否 | 仅考虑特定的 BigQuery 数据集。可以通过重复参数指定多个数据集(例如 --dataset my_dataset_1 --dataset my_dataset_2),或通过环境变量中的逗号连接(例如 BIGQUERY_DATASETS=my_dataset_1,my_dataset_2)。如果未提供,将考虑项目中的所有数据集。 |
--key-file | BIGQUERY_KEY_FILE | 否 | BigQuery 服务账户密钥文件的路径。如果未提供,服务器将使用默认凭证。 |
快速入门
安装
通过 Smithery 安装
通过 Smithery 自动安装 Claude Desktop 的 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}} 替换为适当值。
开发
构建和发布
为分发准备包:
-
在
pyproject.toml中增加版本号 -
同步依赖并更新锁文件:
uv sync
- 构建包分发:
uv build
这将创建 dist/ 目录中的源代码和轮包分发。
- 发布到 PyPI:
uv publish
注意:您需要通过环境变量或命令标志设置 PyPI 凭证:
- 令牌:
--token或UV_PUBLISH_TOKEN - 或用户名/密码:
--username/UV_PUBLISH_USERNAME和--password/UV_PUBLISH_PASSWORD
调试
由于 MCP 服务器通过 stdio 运行,调试可能具有挑战性。为获得最佳调试体验,我们强烈建议使用 MCP 检查器。
您可以通过 npm 使用以下命令启动 MCP 检查器:
npx @modelcontextprotocol/inspector uv --directory {{PATH_TO_REPO}} run mcp-server-bigquery
启动后,检查器将显示一个 URL,您可以在浏览器中访问该 URL 以开始调试。