适合谁
- 希望为 AI 智能体提供受治理数据访问接口的数据团队
- 需要在仓库之上构建分析型 MCP 服务器或 API 的开发者
- 使用 dbt、Cube、Ossie 等已有语义配置并希望复用的团队
- 需要在 Python 应用中嵌入语义层的工程师
SLayer 是 Motley 团队维护的 MIT 许可开源语义层,专注于为 AI 智能体提供受治理的数据访问与查询能力。它支持 MCP 等多种接口,安装方式清晰,适合希望在数据仓库上构建分析型智能体或 API 的团队;其只读连接与凭据传递方式需要使用者留意安全配置。
SLayer 是 Motley 团队开发并维护的可嵌入、表达力强的语义层,用于在数据仓库之上实现 AI 驱动的数据分析。它为智能体提供受治理的共享接口,通过该接口访问数据与指标并获得可靠答案。SLayer 负责数据库连接(只读)、SQL 翻译、常用数据转换和行级安全,让 LLM 与人类无需处理这些细节。它既可以作为独立工具使用,也可以作为 Python 库导入并嵌入任意 Python 应用,用于构建分析型 MCP 服务器或 API,或直接以语义方式查询数据库。与传统 BI 语义层不同,SLayer 允许只定义一次 columns(如 revenue),然后通过表达式(如 revenue:sum、revenue:avg、revenue:sum / *:count、time_shift(revenue:sum, -1, 'year'))查询,并支持多阶段查询。SLayer 聚焦于智能体常见的 search → inspect → query 流程,提供 search 工具用于高效发现,以及 memory store 用于关联业务上下文。它支持 MCP、REST API、CLI、Python 客户端、Flight SQL 和基于 Postgres 的 SQL API 等多种接口,并提供 dbt、Cube、Ossie 配置的导入器。
推荐使用 uv。首先执行 uv tool install 'motley-slayer[all]';如果之后在 PATH 中找不到 slayer,执行 uv tool update-shell 并重新打开终端。使用演示数据集:claude mcp add slayer_demo -- slayer mcp --demo(内置 Jaffle Shop 演示数据,零配置)。使用自有数据:先创建数据源,例如 slayer datasources create 'postgresql://user:${DB_PASSWORD}@hostname/db_name',密码在初始化时读取,不会保存到磁盘或暴露给 Claude;然后执行 claude mcp add slayer -- slayer mcp --ingest-on-startup。请从已导出 DB_PASSWORD 的 shell 启动 Claude Code,因为 MCP 子进程会继承启动进程的环境变量。