mcpField
M
mcp-server-sigma

mcp-server-sigma

本地服务
github.com/christianclaudio数据与分析21 天前更新

关于 mcp-server-sigma

mcp-server-sigma 是用于自动化 Sigma Computing 分析操作的社区 MCP 服务。它提供连接、工作簿、数据模型及组织资源管理工具,也包含模板部署和数据源替换工作流。

主要功能

  1. 01管理连接、工作簿和数据模型
  2. 02管理成员与团队
  3. 03部署工作簿模板并替换数据源
  4. 04支持只读模式和破坏性操作防护

适用场景

  1. 01将工作簿模板部署到客户文件夹
  2. 02更改工作簿的数据仓库来源
  3. 03以只读模式检查 Sigma 组织资源

MCP 相关

该 MCP 服务将 Sigma Computing 管理和分析操作作为工具提供给 MCP 客户端,并支持 stdio 和 Streamable HTTP 传输。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

mcp.json · 通用配置
{
"mcpServers": {
"christianclaudio-sigma": {
"command": "uvx",
"args": [
"mcp-server-sigma"
],
"env": {
"SIGMA_CLIENT_ID": "<SIGMA_CLIENT_ID>",
"SIGMA_CLIENT_SECRET": "<SIGMA_CLIENT_SECRET>",
"SIGMA_API_BASE_URL": "<SIGMA_API_BASE_URL>"
}
}
}
}
启动命令uvx mcp-server-sigma
需要配置的环境变量
SIGMA_CLIENT_ID密钥Your Sigma API client ID
SIGMA_CLIENT_SECRET密钥Your Sigma API client secret
SIGMA_API_BASE_URLRegion-specific Sigma API host URL (e.g. https://api.us-a.aws.sigmacomputing.com)

本地服务需要在你的电脑上安装运行环境(如 Node.js 18+)。各客户端的配置文件位置不同,请参考客户端文档。

安装包
pypimcp-server-sigma2.1.1

工具

还没有获取到工具列表

本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。

详细介绍

📊 mcp-server-sigma

CI PyPI Python License: Apache-2.0 Coverage CodeRabbit Reviews

为你的 AI Agent 注入原生 Sigma Computing 超能力! ⚡
企业级 Model Context Protocol(MCP)服务,提供 257 个工具,涵盖连接、工作簿、数据模型、成员、团队、部署、Webhook、多租户操作,以及可直接用于你最喜爱的 AI 助手的组合式工作流配方。


⚠️ 免责声明与安全警告

重要

社区项目免责声明
mcp-server-sigma 是一个独立的开源社区项目,与 Sigma Computing, Inc. 不存在关联、赞助、认可或支持关系。"Sigma Computing" 是 Sigma Computing, Inc. 的商标。

警告

凭据与安全须知
此服务使用适用于你所在 Sigma 组织的 API 凭据。工具可以修改工作簿、用户、团队和数据模型。

  • 只读模式: 如需安全运行且避免修改风险,请设置 SIGMA_MCP_READONLY=1 或 --profile readonly(仅列出标注为 readOnlyHint=true 的 120 个工具,并拒绝所有其他调用)。
  • 破坏性操作安全门: 所有单项删除工具都要求显式设置 confirm=True;未设置时不会进行任何更改,而是返回正常结果(isError: false),提示调用方使用 confirm=true 重新调用。缺少参数或参数无效时会返回工具错误(isError: true),供模型修正;其他调用失败也会如此,例如找不到成员、导出超时或批量停用模式被拒绝(参见 docs/errors.md)。若批处理工具中的所有项目均失败,则会返回 isError: true 和 "type": "batch_failed";部分成功仍会返回正常结果,其中包含 "status": "partial_success"、<verb>_count、failed_count、results 和 errors。每个条目都包含 id、status,以及 result 或 error,并保留各工具此前返回的字段名;早期版本曾列在 results 中的失败项目也仍会保留(参见 docs/errors.md)。批量破坏性操作(admin_bulk_deactivate_members、admin_bulk_remove_team_members)会列在 full 中,但调用时会被拒绝,除非设置 SIGMA_MCP_ALLOW_BULK_DESTRUCTIVE=1。
  • 在部署到生产环境前,请阅读 SECURITY.md。

💡 为什么要构建此项目

Sigma Computing 有一种独特的架构不对称性,影响着自动化方式:

  1. **数据模型 100% 可通过代码表示:**你可以通过编程构建数据模型、定义列、联接和 SQL 逻辑、更新 JSON 规范,并通过 API 替换数据仓库数据源。
  2. **工作簿布局主要由 UI 驱动:**虽然 Sigma 已推出用于工作簿规范的 Beta 端点(/v2/workbooks/spec),但从头开始以编程方式构建布局元素仍然非常复杂。

自动化 BI 仪表板的标准做法是:
先在 Sigma UI 中构建一次布局并将其保存为模板,然后在此后始终通过编程方式实例化模板并替换数据源! 🎨 ➡️ 🤖

我们的组合配方工具(如 workbooks_deploy_template_to_folder 和 elements_swap_workbook_sources)只需一次 MCP 工具调用,就能自动完成这一模式(如果中间步骤失败,则返回结构化的步骤进度或部分失败详情):

graph TD
    UI["Sigma UI"] -->|"1. Build Layout Once & Save"| TPL["Sigma Template"]
    Agent["AI Agent / LLM"] -->|"2. Call workbooks_deploy_template_to_folder"| MCP["mcp-server-sigma"]
    MCP -->|"POST /v2/templates/{id}/instantiate"| API1["Instantiate Workbook"]
    MCP -->|"POST /v2/workbooks/{id}/swap_sources"| API2["Swap Warehouse Sources"]
    API2 -->|"Delivered"| Dest["Target Customer Folder"]

📦 快速入门与安装

1. 通过 pip 或 uv 安装
pip install mcp-server-sigma
# or with uv
uv pip install mcp-server-sigma
或通过 Docker 运行
docker run --rm -i --env-file .env \
  ghcr.io/christianclaudio/mcp-server-sigma:latest

镜像的默认命令使用 stdio。若要从容器提供 Streamable HTTP 服务,请在容器内绑定 0.0.0.0 并传入令牌。不要将令牌放在命令行中(它会出现在 Shell 历史记录和 ps 输出中):请将 SIGMA_MCP_AUTH_TOKEN 放入 .env,或者导出该变量,并使用 -e 仅传入变量名:

export SIGMA_MCP_AUTH_TOKEN="$(openssl rand -hex 32)"  # or read it from your secret store
docker run --rm -p 8000:8000 --env-file .env \
  -e SIGMA_MCP_AUTH_TOKEN \
  ghcr.io/christianclaudio/mcp-server-sigma:latest \
  --transport streamable-http --host 0.0.0.0 --port 8000 --allowed-host mcp.example.com
2. 设置环境变量
export SIGMA_CLIENT_ID="your-client-id"
export SIGMA_CLIENT_SECRET="your-client-secret"
export SIGMA_API_BASE_URL="https://api.us-a.aws.sigmacomputing.com"

提示

请使用分配给你所在组织所在区域的 API 基础 URL。

区域基础 URL
AWS 美国东部https://api.us-a.aws.sigmacomputing.com
AWS 美国西部https://aws-api.sigmacomputing.com
AWS 加拿大https://api.ca.aws.sigmacomputing.com
AWS 欧盟https://api.eu.aws.sigmacomputing.com
AWS 英国https://api.uk.aws.sigmacomputing.com
AWS 澳大利亚https://api.au.aws.sigmacomputing.com
Azure 美国https://api.us.azure.sigmacomputing.com
Azure 欧盟https://api.eu.azure.sigmacomputing.com
Azure 加拿大https://api.ca.azure.sigmacomputing.com
Azure 英国https://api.uk.azure.sigmacomputing.com
Azure 澳大利亚https://api.au.azure.sigmacomputing.com
GCP 美国https://api.sigmacomputing.com
GCP 沙特阿拉伯https://api.sa.gcp.sigmacomputing.com

🔌 AI 助手与 IDE 集成指南

mcp-server-sigma 可通过标准 stdio 或 streamable-http,与所有主流 AI 助手、IDE 和 CLI 工具无缝协作。

🧡 Claude Desktop 与 Claude Code

添加到 ~/Library/Application Support/Claude/claude_desktop_config.json(macOS)或 %APPDATA%\Claude\claude_desktop_config.json(Windows):

{
  "mcpServers": {
    "sigma": {
      "command": "sigma-mcp",
      "env": {
        "SIGMA_CLIENT_ID": "your-client-id",
        "SIGMA_CLIENT_SECRET": "your-client-secret",
        "SIGMA_API_BASE_URL": "https://api.us-a.aws.sigmacomputing.com"
      }
    }
  }
}

对于 Claude Code CLI:

claude mcp add sigma -- sigma-mcp
♊ Google Antigravity 与 Gemini CLI

添加到项目的 .agents/mcp_config.json(或全局配置 ~/.gemini/config/mcp_config.json):

{
  "mcpServers": {
    "sigma": {
      "command": "sigma-mcp",
      "args": [],
      "env": {
        "SIGMA_CLIENT_ID": "your-client-id",
        "SIGMA_CLIENT_SECRET": "your-client-secret",
        "SIGMA_API_BASE_URL": "https://api.us-a.aws.sigmacomputing.com"
      }
    }
  }
}
🤖 OpenAI Codex 与本地 HTTP 客户端

以网络传输模式(Streamable HTTP)运行,供本地 CLI 和 Agent 扩展使用:

# Source environment variables from a protected file or secret manager
source .env

# Launch server on HTTP localhost port 8000 for local clients
sigma-mcp --transport streamable-http --host 127.0.0.1 --port 8000

将本地 Codex / Streamable HTTP 客户端指向 http://127.0.0.1:8000/mcp。设置 SIGMA_MCP_AUTH_TOKEN 后,客户端必须发送 Authorization: Bearer <token>;未携带该令牌或令牌不匹配的请求将收到 HTTP 401。

HTTP 传输遵循 MCP 关于本地服务绑定到 localhost 的指南;只要服务可从该地址之外访问,就必须使用 bearer 令牌:

  • 在 127.0.0.1、::1 或 localhost 上(--host 的默认值为 127.0.0.1),无论是否设置 SIGMA_MCP_AUTH_TOKEN,HTTP 都会运行;未设置时会发出警告,说明请求未经身份验证。
  • 在其他任何主机上(0.0.0.0、::、局域网地址),除非设置了 SIGMA_MCP_AUTH_TOKEN,否则服务会拒绝启动(退出代码为 2);也可设置 SIGMA_MCP_ALLOW_UNAUTHENTICATED_BIND=1,接受未经身份验证的绑定(会记录警告),例如在由网关代为进行身份验证的情况下。
  • 构建服务时会附加令牌,因此 fastmcp run src/sigma_mcp/server.py:mcp --transport http 和挂载 mcp.http_app() 的 ASGI 主机也会强制执行令牌验证。这些入口点不知道绑定主机,因此无法拒绝公开绑定;如需应用此策略,请使用 sigma-mcp。
  • 在默认的(有状态)HTTP 模式下,空闲 30 分钟的会话会过期:该会话的下一次请求会收到 HTTP 404,客户端必须启动新会话。可通过 FastMCP 的 session_idle_timeout(在 http_app() 上)或 FASTMCP_HTTP_SESSION_IDLE_TIMEOUT(秒数,或设为 none 表示永不过期)更改此设置;请参阅 FastMCP 4.1.0 发布说明和 #5229。

托管版 ChatGPT Actions 或 Custom GPT 注意事项: 托管云服务无法访问 localhost。连接云服务之前,请在服务前放置一个带身份验证的 HTTPS 代理(例如 ngrok、Cloudflare Tunnel,或启用了 TLS 和 Auth 的 Caddy)。

⚡ VS Code(Cline、Roo Code、GitHub Copilot Agent Mode、Continue)
Cline / Roo Code 设置(cline_mcp_settings.json):
{
  "mcpServers": {
    "sigma": {
      "command": "sigma-mcp",
      "env": {
        "SIGMA_CLIENT_ID": "your-client-id",
        "SIGMA_CLIENT_SECRET": "your-client-secret",
        "SIGMA_API_BASE_URL": "https://api.us-a.aws.sigmacomputing.com"
      }
    }
  }
}
Continue.dev 配置(~/.continue/config.yaml):
mcpServers:
  - name: sigma
    command: sigma-mcp
    env:
      SIGMA_CLIENT_ID: "your-client-id"
      SIGMA_CLIENT_SECRET: "your-client-secret"
      SIGMA_API_BASE_URL: "https://api.us-a.aws.sigmacomputing.com"
💻 Cursor 与 Windsurf

添加到 ~/.cursor/mcp.json:

{
  "mcpServers": {
    "sigma": {
      "command": "sigma-mcp",
      "env": {
        "SIGMA_CLIENT_ID": "your-client-id",
        "SIGMA_CLIENT_SECRET": "your-client-secret",
        "SIGMA_API_BASE_URL": "https://api.us-a.aws.sigmacomputing.com"
      }
    }
  }
}
🐙 GitHub Copilot CLI 与 Workspace Agent

将 .github/mcp.json 添加到你的代码库:

{
  "mcpServers": {
    "sigma": {
      "type": "local",
      "command": "sigma-mcp",
      "env": {
        "SIGMA_CLIENT_ID": "${COPILOT_MCP_SIGMA_CLIENT_ID}",
        "SIGMA_CLIENT_SECRET": "${COPILOT_MCP_SIGMA_CLIENT_SECRET}",
        "SIGMA_API_BASE_URL": "https://api.us-a.aws.sigmacomputing.com",
        "SIGMA_MCP_READONLY": "1"
      },
      "tools": ["workbooks_get_workbook", "workbooks_list_workbooks", "datasets_get_data_model"]
    }
  }
}

Copilot Cloud Agents 注意事项: 云端代码审查集成必须通过 Repository Settings > Copilot > MCP servers 进行配置。

❄️ Cortex Code(Snowflake / 企业级 CLI)

直接通过 Cortex CLI 添加:

cortex mcp add sigma-tools -- sigma-mcp

🛡️ 安全与防护控制

使用环境变量配置行为:

变量默认值描述
SIGMA_CLIENT_ID必填你的 Sigma API 客户端 ID。
SIGMA_CLIENT_SECRET必填你的 Sigma API 客户端密钥。
SIGMA_API_BASE_URL必填特定区域的 Sigma API 主机 URL。必须使用 HTTPS,且主机必须位于 SIGMA_ALLOWED_HOSTS 中。
SIGMA_ALLOWED_HOSTS官方区域 API 主机SIGMA_API_BASE_URL 和 X-Sigma-Base-Url 的主机名允许列表,以逗号分隔。未设置或为空时,使用官方 Sigma 区域 API 主机。始终拒绝环回、私有、链路本地和云元数据目标。
SIGMA_MCP_PROFILEfull配置文件:full、readonly、analyst、author、modeler、embed、access_admin(参见配置文件)。未知值会导致启动失败。
SIGMA_MCP_READONLY0设置为 1 时,仅列出标注为 readOnlyHint=true 的工具,并拒绝所有其他调用(full 配置文件下有 120 个工具)。可与任何配置文件组合使用。
SIGMA_MCP_ALLOW_BULK_DESTRUCTIVE0设置为 1 时,允许执行列出的两个批量工具(admin_bulk_deactivate_members、admin_bulk_remove_team_members)。否则会在调用时拒绝执行。
SIGMA_MCP_ENABLE_TOOL_SEARCH0在 full 配置文件下设置为 1(或使用 --enable-tool-search)以启用工具搜索。
SIGMA_MCP_TOOL_SEARCH_BACKENDregex工具搜索后端:regex 或 bm25(或使用 --tool-search-backend)。
SIGMA_MCP_ENABLE_CODE_MODE0在 full 配置文件下设置为 1(或使用 --enable-code-mode)以启用实验性的代码模式;不能与工具搜索同时使用。
SIGMA_MCP_AUTH_TOKEN未设置在 streamable-http 和 sse 模式下,每个 MCP 请求都必须携带 Authorization: Bearer <token>(FastMCP 服务身份验证;缺少令牌或令牌错误时返回 HTTP 401)。会去除首尾空格;未设置或为空时,HTTP 请求不会进行身份验证,且服务会记录警告。对每个 HTTP 入口(sigma-mcp、fastmcp run、http_app())均强制执行。在 stdio 模式下忽略。
SIGMA_MCP_ALLOW_UNAUTHENTICATED_BIND0设置为 1(或 true/yes/on)时,允许 HTTP 传输在 127.0.0.1、::1 或 localhost 以外的主机上绑定,且不配置令牌。否则,此类绑定会在启动时以代码 2 退出。
SIGMA_ALLOWED_TENANTS""允许用于 RFC 8693 令牌交换的租户组织 ID 允许列表,以逗号分隔。
SIGMA_STRICT_TENANT_ALLOWLIST0设置为 1 时,如果租户请求没有显式的允许列表条目,则默认拒绝(HTTP 403)。
SIGMA_MAX_RETRIES3收到 HTTP 429 时的重试次数(0 到 10)。
SIGMA_BASE_DELAY1.0当 429 响应没有 Retry-After 时,指数退避使用的基础延迟(秒)(base_delay * 2**attempt,并加入 0.5–1.5 倍的随机抖动)。
SIGMA_MAX_RETRY_DELAY60.0该退避延迟的上限,单位为秒。不适用于 Retry-After 等待时间。
SIGMA_MAX_RETRY_AFTER300.0接受的最长 Retry-After 等待时间,单位为秒;按原值精确等待,不加入抖动。请求的等待时间超过此值时,会立即以 429 错误失败,并说明等待时间,不进行重试。
SIGMA_MCP_LOG_FORMATtext设置为 json 时,使用包含耗时指标(duration_ms)的结构化 JSON 日志。

🧭 配置档

使用 --profile 或 SIGMA_MCP_PROFILE 选择配置档(默认值为 full)。每个配置档都会挂载全部五个域(workbooks、datasets、elements、workspace、admin)。任务配置档只会公开一个明确列出的工具名称清单,用于特定任务;所有配置档均可使用提示词和资源。服务器构建时会根据完整目录检查每个列出的名称,因此,未知的配置档或清单中的拼写错误都会导致启动失败,并报出 ValueError。

配置档用途工具使用 SIGMA_MCP_READONLY=1 时
full完整目录,不省略任何内容。包含批量工具;除非设置 SIGMA_MCP_ALLOW_BULK_DESTRUCTIVE=1,否则调用时会拒绝执行。Tool Search 和 Code Mode 仅在此配置档中启用。257120
readonly审计员 / 安全探索:所有挂载域中标注 readOnlyHint=true 的工具。120120
analyst业务用户查找、读取、导出和安排工作簿与报告,收藏视图,并向工作簿 Agent 提问。5033
author工作簿作者构建、管理版本并验证工作簿、报告和模板,同时在编辑时检查元素。5337
modeler数据建模人员维护连接和数据模型,替换工作簿 / 报告 / 模型的数据源,并物化元素。4230
embed嵌入式分析工程师配置租户和租户仪表板:模板、部署、数据源替换、嵌入、租户用户属性和连接同步。7231
access_admin组织管理员负责成员入职和离职、管理团队、授权和用户属性、工作区 / 工作簿 / 连接访问权限,以及组织安全设置。7026

以下 22 个工具不属于任何任务配置档,仅在 full 中可用:workspace_delete_file、workspace_update_file、workspace_create_tag、workspace_delete_tag、admin_list_translations、admin_bulk_deactivate_members、admin_bulk_remove_team_members、admin_api_capabilities、admin_list_recent_webhooks、workspace_update_tag、admin_list_api_credentials、admin_get_api_credential、admin_create_api_credential、admin_update_api_credential、admin_delete_api_credential、admin_get_translation、admin_get_translation_variant、admin_create_translation、admin_update_translation、admin_update_translation_variant、admin_delete_translation 和 admin_delete_translation_variant。

只读行为
  • MCP 的 readOnlyHint 注解是判定工具是否为只读工具的唯一依据。每个工具都会显式声明此注解:120 个读取工具的值为 true,137 个写入工具的值为 false。没有注解或没有 readOnlyHint 的工具均视为写入工具。
  • 使用 --profile readonly 或 SIGMA_MCP_READONLY=1(适用于任何配置档)时,只会列出只读工具;ReadOnlyGateMiddleware 会拒绝对任何非只读的实际工具进行调用,包括被筛选隐藏的写入工具。拒绝调用时会返回一个 isError: true 的工具结果。
  • 如果某个名称不是服务器上的工具,FastMCP 会直接或通过 call_tool 返回常规的 Unknown tool 错误,因此,拼写错误绝不会被报告为遭到拦截的工具。
  • 启用 Tool Search 后,网关会检查 call_tool 所包装的工具。通过 call_tool 进行读取可以正常运行,写入则会遭到拒绝。未启用 Tool Search 时,call_tool 不是服务器上的工具,因此调用它会得到 Unknown tool: 'call_tool'。
  • 如果网关无法看到提供服务的服务器,就会拒绝该调用。
批量操作网关

admin_bulk_deactivate_members 和 admin_bulk_remove_team_members 已列在 full 中。除非设置 SIGMA_MCP_ALLOW_BULK_DESTRUCTIVE=1,否则 admin 域防护机制会在调用时拒绝它们(isError: true),且处理程序仍会执行各自的 confirm / dry_run 安全检查。只读模式会隐藏并拒绝这些工具。

工具搜索和代码模式

默认情况下,tools/list 是扁平列表。发现功能需选择启用,且仅在 full 配置下生效:

  • --enable-tool-search / SIGMA_MCP_ENABLE_TOOL_SEARCH=1 会将 tools/list 替换为 search_tools 和 call_tool。后端为 regex(默认)或 bm25(--tool-search-backend / SIGMA_MCP_TOOL_SEARCH_BACKEND)。
  • --enable-code-mode / SIGMA_MCP_ENABLE_CODE_MODE=1 会挂载 FastMCP 的实验性代码模式(search、get_schema、execute)。代码模式需要使用软件包的 code-mode extra 提供沙箱(fastmcp[code-mode],其中包含 pydantic-monty):pip install "mcp-server-sigma[code-mode]" 或 uvx "mcp-server-sigma[code-mode]" --enable-code-mode。如果未安装该 extra,将跳过代码模式并发出警告,同时提供扁平目录。
  • 同时启用两者会引发 ValueError。在其他配置下请求启用任一功能都会记录警告,并保留扁平列表。
  • search_tools、search 和 get_schema 仅读取目录,并标注为 readOnlyHint=true。在只读模式下,代码模式的 execute 会被拒绝。

📊 功能与工具概览

full 配置列出 257 个工具。每个工具名称都以其所属领域开头:

领域工具数涵盖内容
workbooks78工作簿、报表和模板:内容/规范、页面、版本、书签、计划、导出和单次发送、标签、授权、嵌入、跨组织共享、报表页面/元素/列/控件、工作簿 Agent、模板部署
datasets34连接和数据模型:创建/删除连接、连接路径和路径授权、连接授权、测试和架构同步、跨租户连接同步、数据模型规范、列、沿袭、来源、标签、物化和来源替换
elements24工作簿元素、列、控件、查询、来源和沿袭;物化;来源替换策略;Sigma 文档搜索和公式参考
workspace24工作区及其授权、文件和文件夹、成员文件、最近访问和收藏、标签
admin97成员、团队、用户属性、租户、部署、授权、组织设置、AI 配置、IP 允许列表、API 连接器和凭据、翻译、租户部署功能、成员计划和 OAuth 令牌撤销、近期 Webhook 事件
总计257

如果这些数量与实时注册表中的数量不一致,scripts/check_tool_contract.py 会使 CI 失败。2 个具有批量破坏性的工具(admin_bulk_deactivate_members、admin_bulk_remove_team_members)计入 admin 的数量;除非设置 SIGMA_MCP_ALLOW_BULK_DESTRUCTIVE=1,否则调用时会被拒绝。


🍳 复合工作流配方

这些高级工具将多个步骤的 API 调用序列封装为一次原子调用:

配方工具功能
workbooks_deploy_template_to_folder一次调用即可实例化模板并替换数据仓库数据源
elements_materialize_and_wait触发数据物化,并轮询直到完成或超时
admin_onboard_member原子化地创建成员并将其分配到多个团队
admin_bulk_assign_team_members在单个请求中批量将 $N$ 个成员添加到团队
admin_bulk_remove_team_members解析成员邮箱,并批量将其从团队中移除
admin_bulk_deactivate_members使用正则表达式匹配成员,生成试运行报告并停用成员
datasets_bulk_sync_tenant_connections为每个租户执行 RFC 8693 令牌交换,以同步所有连接
workbooks_copy_workbook_to_member将工作簿直接复制到用户的个人文件夹
workbooks_promote_workbook为工作簿添加版本晋级标签(如果标签不存在则创建)
workbooks_export_and_download导出工作簿/元素,处理 204 轮询,并返回最终内容
datasets_sync_all_tables_in_schema跨 Sigma 连接同步整个 database.schema 路径
workbooks_reassign_workbook_ownership批量将工作簿所有权从一个成员邮箱转移给另一个成员邮箱

📐 MCP 2.0 提示与安全注释

每个工具都包含结构化的 MCP 提示,以协助 AI 客户端向用户征求权限:

注释数量含义
readOnlyHint=true120表示预期不会进行修改;客户端仍可能要求用户明确批准
destructiveHint=true43会删除、停用或撤销;客户端应征求用户确认
idempotentHint=true10可安全重试;相同输入 = 相同结果
openWorldHint=true257所有工具都会访问外部 API

🧮 编写 Sigma 公式

AI 模型编写 Sigma 公式时经常会幻觉出 SQL 或 Excel 函数(例如使用 ArrayAgg() 而不是 List())。
编写任何 Sigma 公式前,请先调用内置参考工具:

# Model prompt helper
Use tool `elements_formula_pitfalls` to check formula syntax rules.

有关完整语法详情,请参阅 docs/formulas.md。


👩‍💻 本地开发与测试

# Install dev tools
pip install -e ".[dev]"

# Run full test suite with 100% statement line coverage enforcement
pytest --cov=src/sigma_mcp --cov-fail-under=100 --cov-report=term-missing

# Run OpenAPI drift check
python scripts/check_openapi_drift.py

# Run MCP tool contract validation
python scripts/check_tool_contract.py

# Code formatting & type checking
ruff check src/
ruff format --check .
mypy --strict src/

说明

自动漂移检查:CI 工作流(ci.yml)包含一个 check-drift 作业,每周日美国东部时间下午运行一次,也可手动触发;该作业会将客户端方法与 Sigma 实时 OpenAPI 规范进行比较。如果漂移扫描在 main 上运行并发现漂移或因错误退出,该作业会自动在仓库中创建一个 issue。若较早的设置步骤失败,则运行会失败,但不会创建 issue。


🤝 贡献与社区

欢迎贡献!请阅读 CONTRIBUTING.md 了解开发规范,阅读 SECURITY.md 了解安全问题报告方式,并阅读 CODE_OF_CONDUCT.md 了解社区准则。


📜 许可证

MIT 许可证。
版权所有 (c) 2026 Christian Claudio。

免责声明:与 Sigma Computing, Inc. 无关联,未获其赞助或认可。

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。