项目简介
GA4 BigQuery 语义层 MCP 服务器是一个基于 Model Context Protocol (MCP) 构建的应用后端。它利用 'boring-semantic-layer' 库在 Google Analytics 4 (GA4) 的 BigQuery 事件数据之上构建一个语义层。这个服务器以标准化的方式向大型语言模型 (LLM) 客户端提供GA4数据的上下文信息和查询能力,例如允许客户端直接通过自然语言查询GA4数据。
主要功能点
- 连接 BigQuery 数据: 能够连接到您的 Google BigQuery 项目和数据集,获取 GA4 事件原始数据。
- 语义模型定义: 帮助定义 GA4 事件数据的语义模型,将复杂的数据结构抽象为易于理解的维度和度量。
- MCP 服务暴露: 通过 MCP 服务器暴露语义模型,使得维度(如事件日期、用户 ID)和度量(如事件计数)可供 LLM 客户端访问。
- LLM 自然语言查询: 支持 MCP 客户端(如 Cursor)直接通过自然语言与语义模型交互,实现便捷的数据查询和分析。
安装步骤
-
克隆仓库: 打开您的终端,执行以下命令来克隆项目仓库:
git clone https://github.com/mohrstade/measurecamp-london-bigqery-mcp cd measurecamp-london-bigqery-mcp -
安装 'uv' (如果未安装): 本项目使用 'uv' 工具管理 Python 环境和依赖。如果您的系统上尚未安装 'uv',请先安装:
pip install uv
服务器配置
在启动 MCP 服务器之前,您需要对 'layer.py' 文件进行一些修改以连接到您的 BigQuery 数据。
-
BigQuery 连接信息: 打开 'layer.py' 文件,找到 'ibis.bigquery.connect' 这一行,将其中的 'project_id' 和 'dataset_id' 修改为您的 Google Cloud 项目 ID 和 BigQuery 数据集 ID。
-
GA4 表名: 在 'layer.py' 中,找到 'con.table("events_YYYYMMDD")' 这一行,将 'events_YYYYMMDD' 替换为您的 GA4 事件表名称。
-
主键配置 (可选): 如果您的语义模型需要定义主键,请更新 'ga4_events_sm' 模型中的 'primary_key' 字段。如果您的表没有单一列主键,建议暂时移除此行。
MCP 客户端配置:
MCP 服务器是为 MCP 客户端提供服务的。要让您的 MCP 客户端(如 Cursor)连接到此服务器,您需要在客户端的配置文件中添加以下配置。例如,在 Cursor 项目根目录下的 '.cursor/mcp.json' 文件中添加:
{ "mcpServers": { "ga4-semantic-layer": { "command": "uv run layer.py", "language": "python" } } }
- 'ga4-semantic-layer': 这是您为该 MCP 服务器定义的名称,您将在客户端中通过此名称引用它。
- 'command': 启动 MCP 服务器的命令。这里是 'uv run layer.py',它会使用 'uv' 运行 'layer.py' 脚本来启动服务器。
- 'language': 指示服务器所使用的编程语言。
基本使用方法
-
启动服务器: 在配置完成后,在项目根目录运行以下命令启动 MCP 服务器:
uv run layer.py服务器将启动并监听来自 MCP 客户端的连接。
-
客户端查询: 在支持 MCP 的客户端(例如 Cursor)中重新加载项目。您现在可以在客户端的聊天界面或代码中通过 '@ga4-semantic-layer' 提及服务器并提出问题。例如: '@ga4-semantic-layer 每天有多少事件?' MCP 服务器将接收您的自然语言查询,通过语义层将其转换为 BigQuery 查询,并从您的 GA4 数据中获取结果并返回给客户端。
信息
分类
数据库与文件