New:Microsoft Teams Notifications Are Now Available in Socket.Learn more
Get Started

mcp-server-sigma

Package Overview
Dependencies
Maintainers
1
Versions
12
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

mcp-server-sigma

Enterprise Model Context Protocol (MCP) server for Sigma Computing — provision dashboards, construct data models, and automate cloud analytics.

pipPyPI
Version
1.1.5
Weekly downloads
571
Maintainers
1
Created

📊 mcp-server-sigma

CI PyPI Python License: Apache-2.0 Coverage CodeRabbit Reviews

Supercharge your AI Agents with native Sigma Computing superpowers!
An enterprise-grade Model Context Protocol (MCP) server with 155 tools covering connections, workbooks, data models, members, teams, deployments, webhooks, multi-tenant operations, and composite workflow recipes straight to your favorite AI assistant.

⚠️ Disclaimers & Safety Warnings

[!IMPORTANT] Community Project Disclaimer
mcp-server-sigma is an independent open-source community project. It is not affiliated with, sponsored by, endorsed by, or supported by Sigma Computing, Inc. "Sigma Computing" is a trademark of Sigma Computing, Inc.

[!WARNING] Credentials & Safety Notice
This server uses API credentials scoped to your Sigma organization. Tools can mutate workbooks, users, teams, and data models.

  • Read-Only Mode: To run safely without mutation risk, set SIGMA_MCP_READONLY=1 (grants 83 read-only tools).
  • Destructive Safety Gates: All single-delete tools require explicit confirm=True. Bulk destructive operations (sigma_bulk_deactivate_members, sigma_bulk_remove_team_members) are disabled by default and require SIGMA_MCP_ALLOW_BULK_DESTRUCTIVE=1.
  • Read SECURITY.md before deploying to production.

💡 Why This Exists

Sigma Computing has a unique architectural asymmetry that shapes how you automate it:

  • Data Models are 100% Code-Representable: You can programmatically construct data models, define columns, joins, and SQL logic, update JSON specs, and swap warehouse sources via API.
  • Workbook Layouts are primarily UI-driven: While Sigma has introduced Beta endpoints for workbook specifications (/v2/workbooks/spec), programmatically constructing layout elements from scratch remains highly complex.

The canonical path to automated BI dashboards is:
Build the layout once in the Sigma UI, save it as a template, then instantiate and source-swap it programmatically forever after! 🎨 ➡️ 🤖

Our composite recipe tools (like sigma_deploy_template_to_folder and sigma_swap_workbook_sources) automate this exact pattern in a single MCP tool call (returning structured step progress or partial failure details if an intermediate step fails):

graph TD
    UI["Sigma UI"] -->|"1. Build Layout Once & Save"| TPL["Sigma Template"]
    Agent["AI Agent / LLM"] -->|"2. Call sigma_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"]

📦 Quickstart & Installation

1. Install via pip or uv

pip install mcp-server-sigma
# or with uv
uv pip install mcp-server-sigma

Or run via Docker

docker run --rm -i --env-file .env \
  ghcr.io/christianclaudio/mcp-server-sigma:latest

2. Set Environment Variables

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"

[!TIP] Use the API base URL assigned to your organization's region.

RegionBase URL
AWS US Easthttps://api.us-a.aws.sigmacomputing.com
AWS US Westhttps://aws-api.sigmacomputing.com
AWS Canadahttps://api.ca.aws.sigmacomputing.com
AWS EUhttps://api.eu.aws.sigmacomputing.com
AWS UKhttps://api.uk.aws.sigmacomputing.com
AWS Australiahttps://api.au.aws.sigmacomputing.com
Azure UShttps://api.us.azure.sigmacomputing.com
Azure EUhttps://api.eu.azure.sigmacomputing.com
Azure Canadahttps://api.ca.azure.sigmacomputing.com
Azure UKhttps://api.uk.azure.sigmacomputing.com
Azure Australiahttps://api.au.azure.sigmacomputing.com
GCP UShttps://api.sigmacomputing.com
GCP Saudi Arabiahttps://api.sa.gcp.sigmacomputing.com

🔌 Integration Guides for AI Assistants & IDEs

mcp-server-sigma works seamlessly with all major AI assistants, IDEs, and CLI tools via standard stdio or streamable-http.

🧡 Claude Desktop & Claude Code

Add to ~/Library/Application Support/Claude/claude_desktop_config.json (macOS) or %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"
      }
    }
  }
}

For Claude Code CLI:

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

Add to your project's .agents/mcp_config.json (or global ~/.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 & Local HTTP Clients

Run in network transport mode (Streamable HTTP) for local CLI & agent extensions:

# 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

Point your local Codex / HTTP SSE client to http://127.0.0.1:8000/sse.

Note for hosted ChatGPT Actions or Custom GPTs: Hosted cloud services cannot reach localhost. Place an authenticating HTTPS proxy (e.g., ngrok, Cloudflare Tunnel, or Caddy with TLS and Auth) in front of the server before connecting cloud services.

⚡ VS Code (Cline, Roo Code, GitHub Copilot Agent Mode, Continue)

Cline / Roo Code Settings (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 Config (~/.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"
🐙 GitHub Copilot CLI & Workspace Agent

Add .github/mcp.json to your repository:

{
  "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": ["sigma_get_workbook", "sigma_list_workbooks", "sigma_get_data_model"]
    }
  }
}

Note for Copilot Cloud Agents: Cloud code-review integrations must be configured through Repository Settings > Copilot > MCP servers instead.

❄️ Cortex Code (Snowflake / Enterprise CLI)

Add directly via the Cortex CLI:

cortex mcp add sigma-tools -- sigma-mcp

🛡️ Safety & Security Controls

Configure behavior using environment variables:

VariableDefaultDescription
SIGMA_CLIENT_IDRequiredYour Sigma API client ID.
SIGMA_CLIENT_SECRETRequiredYour Sigma API client secret.
SIGMA_API_BASE_URLRequiredRegion-specific Sigma API host URL.
SIGMA_MCP_PROFILEfullTool registration subset: core (38 tools), admin (54), embed (57), full (155).
SIGMA_MCP_READONLY0Set 1 to register only read-only tools (83 tools). Models cannot alter org state.
SIGMA_MCP_ALLOW_BULK_DESTRUCTIVE0Set 1 to enable bulk deactivate/remove operations (sigma_bulk_deactivate_members, sigma_bulk_remove_team_members) (157 total).
SIGMA_ALLOWED_TENANTS""Comma-separated allowlist of tenant org IDs permitted for RFC 8693 token exchange.
SIGMA_STRICT_TENANT_ALLOWLIST0Set 1 to fail closed (HTTP 403) if a tenant request is made without an explicit allowlist entry.
SIGMA_MCP_LOG_FORMATtextSet json for structured JSON logging with duration metrics (duration_ms).

📊 Feature & Tool Summary

The server registers 155 tools by default across the following domain modules:

DomainToolsKey Capabilities
Workbooks33CRUD, pages, elements, columns, queries, sources, swap, lineage, exports, materializations, bookmarks, tags, grants, embeds
Reports13CRUD, elements, queries, lineage, exports, schedules, sources, duplication
Data Models10CRUD, JSON spec inspection & editing, elements, columns, sources, swap, lineage, tags
Members10List, get, create, update, deactivate, teams, bulk deactivate, email change, onboarding
Teams10List, get, create, delete, members, bulk assign/remove, user attributes
Connections7List, get, schema sync, connectivity test, columns, grants
Multi-Tenant6List tenants, tenant info, capabilities, cross-tenant connection sync
Deployments6List, get, create, add documents, archive
Templates6List, get, instantiate, save from workbook, swap sources, shared templates
Workspaces6List, get, create, delete, grants
User Attributes9CRUD, user/team/tenant value assignments
Webhooks6Webhook subscription management, payload signature validation, event history
Grants5Access control lists, workbook/workspace/connection grants
Files & Folders4Inode search, create folder, update, delete
Tags4List, create, tag workbook, tag data model
Reference4sigma_api_capabilities, sigma_formula_pitfalls, sigma_search_docs, sigma_get_doc_page
Composite Recipes14High-level multi-step workflow recipes

Note: Domain categories overlap slightly. The 2 bulk-destructive tools (sigma_bulk_deactivate_members, sigma_bulk_remove_team_members) are excluded by default and bring the total to 157 when enabled.

🍳 Composite Workflow Recipes

These high-level tools bundle multi-step API sequences into a single atomic call:

Recipe ToolWhat It Does
sigma_deploy_template_to_folderInstantiates a template & swaps warehouse sources in 1 call
sigma_materialize_and_waitTriggers a data materialization and polls until complete with timeout
sigma_onboard_memberAtomically creates a member and assigns them to multiple teams
sigma_bulk_assign_team_membersBatch-adds $N$ members to a team in a single request
sigma_bulk_remove_team_membersResolves member emails and batch-removes them from a team
sigma_bulk_deactivate_membersRegex-matches members, generates dry-run report, and deactivates
sigma_bulk_sync_tenant_connectionsPerforms RFC 8693 token exchange per tenant to sync all connections
sigma_copy_workbook_to_memberDuplicates a workbook directly into a user's home folder
sigma_promote_workbookTags a workbook for version promotion (creates tag if missing)
sigma_export_and_downloadExports workbook/element, handles 204 polling, returns final content
sigma_sync_all_tables_in_schemaSyncs an entire database.schema path across Sigma connections
sigma_reassign_workbook_ownershipBulk-transfers workbook ownership from one member email to another

📐 MCP 2.0 Hints & Safety Annotations

Every tool includes structured MCP hints to assist AI clients with user permission prompts:

AnnotationCountMeaning
readOnlyHint=true83Indicates intended non-mutation; clients may still require explicit user approval
destructiveHint=true16Deletes, deactivates, or revokes; clients should prompt
idempotentHint=true8Safe to retry; same input = same outcome
openWorldHint=true155All tools hit an external API

🧮 Writing Sigma Formulas

AI models frequently hallucinate SQL or Excel functions when writing Sigma formulas (e.g. using ArrayAgg() instead of List()).
Before writing any Sigma formula, call the built-in reference tool:

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

See docs/formulas.md for full syntax details.

👩‍💻 Local Development & Testing

# 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/

[!NOTE] Automated Drift Checks: This repository runs a weekly scheduled GitHub Action (sigma-drift-monitor.yml) that compares client methods against the live Sigma OpenAPI specification. If drift is detected, the workflow automatically opens an issue in the repository.

🤝 Contributing & Community

Contributions are welcome! Please read CONTRIBUTING.md for development rules, SECURITY.md for security reporting, and CODE_OF_CONDUCT.md for community standards.

📜 License

MIT License.
Copyright (c) 2026 Christian Claudio.

Disclaimer: Not affiliated with, sponsored by, or endorsed by Sigma Computing, Inc.

Keywords

analytics

FAQs

Related posts