这是一个提供BigQuery访问能力的模型上下文协议(MCP)服务器。该服务器使大型语言模型(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自动为Claude Desktop安装BigQuery服务器:
npx -y @smithery/cli install mcp-server-bigquery --client claude
在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/
目录中创建源代码和wheel分发。
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以开始调试。