mcp-server-sigma
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| SIGMA_CLIENT_ID | Yes | Your Sigma API client ID. | |
| SIGMA_MCP_PROFILE | No | Tool registration subset: core (36 tools), admin (52), embed (55), full (155). | full |
| SIGMA_API_BASE_URL | Yes | Region-specific Sigma API host URL. | |
| SIGMA_MCP_READONLY | No | Set 1 to register only read-only tools (83 tools). Models cannot alter org state. | 0 |
| SIGMA_CLIENT_SECRET | Yes | Your Sigma API client secret. | |
| SIGMA_MCP_LOG_FORMAT | No | Set json for structured JSON logging with duration metrics (duration_ms). | text |
| SIGMA_ALLOWED_TENANTS | No | Comma-separated allowlist of tenant org IDs permitted for RFC 8693 token exchange. | |
| SIGMA_STRICT_TENANT_ALLOWLIST | No | Set 1 to fail closed (HTTP 403) if a tenant request is made without an explicit allowlist entry. | 0 |
| SIGMA_MCP_ALLOW_BULK_DESTRUCTIVE | No | Set 1 to enable bulk deactivate/remove operations (sigma_bulk_deactivate_members, sigma_bulk_remove_team_members) (157 total). | 0 |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": true
} |
| logging | {} |
| prompts | {
"listChanged": true
} |
| resources | {
"subscribe": false,
"listChanged": true
} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| workbooks_list_workbooksA | List all workbooks in the organization. Pass summary_only=True for concise token-efficient response. |
| workbooks_get_workbookC | Get workbook metadata. |
| workbooks_create_workbookC | Create an empty workbook in a folder. |
| workbooks_duplicate_workbookA | Duplicate an existing workbook. workbook_id: ID of the workbook to clone. name: Name for the new cloned workbook (required by the API). destination_folder_id: ID of the destination folder. If omitted, clones into the same folder as the original. |
| workbooks_list_workbook_pagesC | List pages in a workbook. |
| workbooks_list_workbook_lineageC | List data lineage for a workbook. |
| workbooks_get_workbook_version_historyC | Get version history for a workbook. |
| workbooks_restore_workbook_versionC | Restore a workbook to a previous version. |
| workbooks_convert_workbook_to_reportA | Convert a workbook to a report (one-way, creates a new report). workbook_id: ID of the workbook to convert. name: Name for the new report (required by the API). destination_folder_id: Optional folder ID for the report; defaults to My Documents. |
| workbooks_list_workbook_grantsC | List permission grants on a workbook. |
| workbooks_grant_workbook_accessB | Grant access to a workbook. grant_type: 'member' or 'team'. permission: 'view', 'explore', 'edit'. |
| workbooks_list_workbook_embedsC | List embed configurations for a workbook. |
| workbooks_create_workbook_embedA | Create an embed for a workbook. embed_type: Visibility of the embed. Only 'public' is currently supported. source_type: Scope of the embed — 'workbook' (entire workbook), 'page', or 'element'. source_id: Required when source_type is 'page' or 'element'. |
| workbooks_export_workbookA | Export a workbook element. If element_id is empty, exports the first page. format: 'pdf', 'png', 'csv', 'xlsx', 'json', 'jsonl'. layout: 'portrait' or 'landscape' (only for pdf/png). element_id: The specific element to export. If omitted, uses the first page element. |
| workbooks_list_workbook_schedulesB | List scheduled exports for a workbook. |
| workbooks_add_workbook_scheduleC | Create a scheduled export for a workbook. See Sigma docs for schedule body schema. |
| workbooks_delete_workbook_scheduleA | Delete a scheduled export. Requires confirm=True. |
| workbooks_list_workbook_bookmarksA | List bookmarks (saved filter states) in a workbook. |
| workbooks_add_workbook_bookmarkC | Add a bookmark to a workbook. |
| workbooks_get_workbook_tagsC | List tags on a workbook. |
| workbooks_tag_workbookA | Apply a version tag to a workbook by tag NAME (e.g. 'Production'). The Sigma API takes the tag name here, not its ID. |
| workbooks_remove_workbook_tagA | Remove a tag from a workbook. Requires confirm=True. |
| workbooks_list_templatesB | List all templates in the organization. |
| workbooks_get_templateC | Get template details. |
| workbooks_create_workbook_from_templateB | Create a workbook from a template. This brings real visuals — the only programmatic way to get charts/tables. |
| workbooks_save_template_from_workbookC | Save a workbook as a reusable template. |
| workbooks_list_reportsB | List all reports in the organization. |
| workbooks_get_reportC | Get report metadata. |
| workbooks_create_reportD | Create a report. |
| workbooks_duplicate_reportC | Duplicate a report. report_id: ID of the report to clone. name: Name for the new cloned report (required by the API). destination_folder_id: ID of the destination folder to clone into (required by the API). |
| workbooks_list_report_sourcesC | List data sources used by a report. |
| workbooks_list_report_elementsC | List elements in a report. |
| workbooks_list_report_queriesC | List SQL queries in a report. |
| workbooks_list_report_lineageC | List lineage for a report. |
| workbooks_export_reportC | Export a report. format: 'pdf', 'png', 'csv', 'xlsx'. |
| workbooks_list_report_schedulesB | List scheduled exports for a report. |
| workbooks_create_report_scheduleC | Create a scheduled export for a report. |
| workbooks_list_shared_templatesA | List templates shared with your organization from other orgs. |
| workbooks_accept_shared_templateC | Accept a pending template share from another organization. |
| workbooks_copy_workbook_to_memberB | Copy a workbook into a member's My Documents folder. name: Optional name for the copied workbook. Defaults to the original workbook name. |
| workbooks_deploy_template_to_folderC | Full deployment: instantiate a template into a folder, then optionally swap its sources. |
| workbooks_promote_workbookB | Promote a workbook by tagging it (e.g., 'Production'). Creates tag if it doesn't exist. |
| workbooks_export_and_downloadA | Export a workbook/element and download the result. Polls until ready. format: 'csv', 'pdf', 'xlsx', 'png'. layout: 'portrait' or 'landscape' (pdf only). parameters: Sigma control overrides e.g. {'DateRange': 'min:2024-01-01,max:2024-01-31'}. max_bytes: maximum allowed response size (default 10 MB). Returns size info without content if exceeded. Returns base64-encoded file content on success. |
| workbooks_reassign_workbook_ownershipA | Transfer all workbooks from one member to another. Resolves members by email, finds all workbooks owned by old owner, then PATCHes /v2/files/{id} to reassign. dry_run=True (default) reports what would change without making changes. |
| workbooks_list_workbooks_shared_with_memberB | List all workbooks accessible to a member with full workbook metadata. Cross-references member's file list against the full workbook catalog. |
| workbooks_list_all_workbooksA | List ALL workbooks in the organization, automatically following pagination. |
| workbooks_list_all_reportsA | List ALL reports in the organization, automatically following pagination. |
| workbooks_update_workbook_contentsA | Update a workbook from a code representation (JSON document specification). Mutating operation. Requires confirm=True and document_version integer to guard against concurrent overwrites. |
| workbooks_verify_workbook_specB | Verify a workbook code representation specification without saving. Validates schema structure, syntax, and element layout. |
| workbooks_update_report_contentsA | Update a report from a code representation (JSON document specification). Mutating operation. Requires confirm=True and document_version integer to guard against concurrent overwrites. |
| workbooks_verify_report_specB | Verify a report code representation specification without saving. |
| workbooks_download_query_exportA | Download an exported query result file by queryId. Returns the file content (JSON or text/CSV) or base64 binary (PDF, XLSX, PNG), or reports 'processing' if the query has not finished executing. max_bytes: Maximum allowed payload size in bytes (default 10 MB). |
| workbooks_list_workbook_agentsB | List AI agents defined in a specific workbook (optionally filtering by version tag). |
| workbooks_run_workbook_agentA | Run an in-workbook AI agent with conversation messages. Mutating / execution operation. Consumes LLM tokens. Requires confirm=True. messages: List of conversation turns (role: 'user', 'assistant', 'system', 'tool' with content). version_tag_name: Target published version tag (defaults to latest published version). |
| datasets_list_connectionsB | List all connections in the Sigma organization. Pass summary_only=True for concise token-efficient response. |
| datasets_get_connectionC | Get details for a specific connection. |
| datasets_sync_connectionB | Force Sigma to re-index a warehouse path. Pass empty list for full sync. |
| datasets_test_connectionC | Test connectivity for a connection. |
| datasets_list_columns_for_tableC | List columns for a warehouse table by its tableId. |
| datasets_list_connection_grantsC | List permission grants on a connection. |
| datasets_add_connection_grantC | Add a grant to a connection. grant_type: 'member' or 'team'. permission: 'annotate' (Can Use & Annotate) or 'usage' (Can Use). |
| datasets_delete_connection_path_grantB | Delete a grant from a connection path. DESTRUCTIVE. Requires confirm=True. |
| datasets_list_data_modelsB | List all data models in the organization. Pass summary_only=True for concise token-efficient response. |
| datasets_get_data_modelC | Get data model metadata. |
| datasets_get_data_model_specB | Get the full code representation (JSON spec) of a data model — tables, columns, metrics, relationships. |
| datasets_create_data_modelB | Create a data model from a JSON code representation. Must include name, folderId, schemaVersion, and pages with elements. |
| datasets_update_data_modelA | Update an existing data model from a JSON code representation (full replacement via PUT). |
| datasets_list_data_model_elementsC | List elements in a data model. |
| datasets_list_data_model_columnsB | List all columns across all elements in a data model. |
| datasets_swap_data_model_sourcesC | Swap data sources for a data model. |
| datasets_list_data_model_lineageC | List lineage for a data model. |
| datasets_tag_data_modelB | Apply a version tag to a data model by tag NAME. The Sigma API takes the tag name here, not its ID. |
| datasets_swap_report_sourcesB | Swap data sources on a report. Use connectionMapping for connection-level swaps, sourceMapping for table-level swaps. |
| datasets_sync_all_tables_in_schemaB | Sync all tables in a warehouse schema so they become visible in Sigma. |
| datasets_bulk_sync_tenant_connectionsA | Sync connections across all tenant organizations. Lists all tenants, then for each tenant: obtains a tenant-scoped token, lists their connections, and syncs each one. Requires multi-tenant auth (for_tenant method). Uses bounded concurrency. NOTE: Requires PyJWT and the for_tenant() method (Phase C). Returns an error if token exchange is not available. |
| datasets_list_all_data_modelsA | List ALL data models in the organization, automatically following pagination. |
| elements_list_workbook_page_elementsB | List elements on a specific page of a workbook. |
| elements_list_workbook_elementsB | List all elements (tables, charts, controls, etc.) in a workbook. |
| elements_list_workbook_columnsA | List all columns across all elements in a workbook, including formulas and types. |
| elements_list_workbook_queriesC | List generated SQL queries for all elements in a workbook. |
| elements_list_workbook_controlsB | List control elements (filters, parameters) in a workbook. |
| elements_list_workbook_sourcesC | List data sources used by a workbook. |
| elements_swap_workbook_sourcesB | Swap data sources for a workbook. Use connectionMapping for connection-level swaps, sourceMapping for table-level swaps. |
| elements_get_element_queryB | Get the generated SQL query for a specific element in a workbook. |
| elements_get_element_columnsC | List columns for a specific element in a workbook. |
| elements_materialize_elementC | Trigger materialization for a workbook. Pass elementId in body if needed. |
| elements_get_materialization_jobC | Check status of a materialization job. |
| elements_list_materialization_schedulesC | List materialization schedules for a workbook. |
| elements_swap_template_sourcesA | Swap data sources on a template. Use connectionMapping for connection-level swaps, sourceMapping for table-level swaps. |
| elements_list_source_swap_policiesA | List all source swap policies (rules for automatic source swapping on deployment). |
| elements_get_source_swap_policyC | Get a source swap policy. |
| elements_create_source_swap_policyC | Create a source swap policy for automated deployments. |
| elements_materialize_and_waitC | Trigger materialization and poll until complete or timeout. |
| elements_list_all_input_tablesA | Scan all workbooks to find input-table elements. Returns a list of input tables with their workbook, page, and element context. Errors on individual workbooks/pages are collected rather than silently swallowed. |
| elements_formula_pitfallsA | Return a curated reference of common Sigma formula pitfalls — column reference syntax, type requirements, NULL handling, aggregate vs row-level context, date function argument order, and metrics vs calculated columns. Use this before writing any Sigma formula expression. |
| elements_search_docsA | Search Sigma Computing documentation using AI-powered semantic search. Returns relevant doc passages with source URLs. Use this to answer questions about Sigma features, configuration, formulas, administration, embedding, and best practices. read_only_hint: True |
| elements_get_doc_pageA | Fetch a specific Sigma documentation page as clean Markdown. Pass the page slug (e.g. 'create-a-workbook') or a section path (e.g. 'docs/create-a-workbook'). Returns the full page content. read_only_hint: True |
| workspace_delete_fileC | Delete a file/workbook/data model by its inode ID. Requires confirm=True. |
| workspace_list_filesB | List files/folders. Optionally filter by parentId or type ('workbook', 'folder', 'data-model', 'template'). |
| workspace_create_folderC | Create a folder. |
| workspace_update_fileC | Update file properties (name, parentId for moving). |
| workspace_list_tagsB | List all tags in the organization. Supports pagination via page token. |
| workspace_create_tagB | Create a new tag (used for version promotion like 'Production', 'Staging'). |
| workspace_delete_tagB | Delete a tag. Requires confirm=True. |
| workspace_list_workspacesB | List all workspaces. Supports pagination via page token. |
| workspace_get_workspaceC | Get workspace details. |
| workspace_create_workspaceC | Create a new workspace. |
| workspace_delete_workspaceA | Delete a workspace. Requires confirm=True. |
| workspace_list_workspace_grantsB | List permission grants on a workspace. Supports pagination via page token. |
| workspace_grant_workspace_accessC | Grant workspace access. grant_type: 'member' or 'team'. permission: 'view', 'explore', 'organize' (Contribute), or 'edit' (Manage). |
| workspace_delete_workspace_grantB | Delete a permission grant from a workspace. DESTRUCTIVE. Requires confirm=True. |
| workspace_list_all_filesA | List files/folders in the organization, automatically following pagination. parent_id: Optional parent folder ID to list files within. type_filter: Optional file type filter ('workbook', 'folder', 'data-model', 'template', 'symlink'). Note: Shortcuts/symlinks are excluded by default unless type_filter='symlink'. |
| admin_list_deploymentsB | List all deployment policies. |
| admin_get_deploymentC | Get a deployment policy. |
| admin_create_deploymentC | Create a deployment policy. |
| admin_archive_deploymentA | Delete (archive) a deployment policy. Requires confirm=True. |
| admin_deactivate_memberB | Deactivate a member. Requires confirm=True. |
| admin_list_deployment_documentsC | List documents in a deployment policy. |
| admin_add_deployment_documentsC | Add workbooks/reports to a deployment policy. |
| admin_list_tenantsA | List all tenant organizations (for multi-tenant deployments). |
| admin_get_tenantC | Get tenant organization details. |
| admin_create_tenantC | Create a tenant organization. |
| admin_list_api_connectorsA | List all API connectors (custom data integrations). |
| admin_get_api_connectorA | Get details for an API connector. |
| admin_list_membersB | List all members in the organization. Pass summary_only=True for concise token-efficient response. |
| admin_get_memberC | Get member details including homeFolderId. |
| admin_create_memberC | Create a new member. member_type: 'admin', 'creator', 'viewer'. |
| admin_update_memberC | Update member properties (firstName, lastName, memberType, isActive, etc.). |
| admin_get_current_userA | Get the current authenticated user's details. |
| admin_list_member_teamsB | List teams a member belongs to. |
| admin_list_teamsB | List all teams. Pass summary_only=True for concise token-efficient response. |
| admin_get_teamC | Get team details. |
| admin_create_teamC | Create a new team. |
| admin_delete_teamA | Delete a team. Requires confirm=True. |
| admin_list_team_membersC | List members of a team. |
| admin_update_team_membersC | Add or remove members from a team. Provide lists of member IDs. |
| admin_list_user_attributesA | List all user attributes (used for row-level security and dynamic parameters). |
| admin_create_user_attributeA | Create a user attribute for RLS or dynamic parameters. name: Attribute name (e.g. 'Region', 'CustomerID'). default_value: Default string value assigned when no override exists. description: Optional description of the attribute. |
| admin_set_user_attribute_for_teamsB | Set a user attribute value for specific teams. assignments: List of objects, each with 'teamId' (str) and 'value' (str). Example: [{"teamId": "abc123", "value": "US"}] |
| admin_set_user_attribute_for_tenantsB | Set a user attribute value for specific tenants. assignments: List of objects, each with 'tenantOrganizationId' (str) and 'value' (str). Example: [{"tenantOrganizationId": "org123", "value": "US"}] |
| admin_get_user_attribute_usersC | Get all user assignments for a user attribute. |
| admin_get_user_attribute_teamsC | Get all team assignments for a user attribute. |
| admin_get_user_attribute_tenantsB | Get all tenant assignments for a user attribute. |
| admin_update_user_attribute_for_usersA | Revoke a user attribute assignment for specific users. Requires confirm=True. user_ids: List of user IDs whose attribute assignments should be removed. Example: ["user-uuid-1", "user-uuid-2"] To assign (not revoke), use sigma_set_user_attribute_for_users instead (direct POST to /v2/user-attributes/{id}/users not yet exposed as a dedicated tool — use sigma_create_grant with a raw body as a workaround). |
| admin_update_user_attribute_for_teamsA | Revoke a user attribute assignment for specific teams. Requires confirm=True. team_ids: List of team IDs whose attribute assignments should be removed. Example: ["team-uuid-1", "team-uuid-2"] |
| admin_update_user_attribute_for_tenantsB | Revoke a user attribute assignment for specific tenants. Requires confirm=True. tenant_org_ids: List of tenant organization IDs whose attribute assignments should be removed. Example: ["org-uuid-1", "org-uuid-2"] |
| admin_delete_user_attribute_for_userA | Delete a user attribute assignment for a specific user. DESTRUCTIVE. Requires confirm=True. |
| admin_delete_user_attribute_for_teamB | Delete a user attribute assignment for a specific team. DESTRUCTIVE. Requires confirm=True. |
| admin_delete_user_attribute_for_tenantA | Delete a user attribute assignment for a specific tenant. DESTRUCTIVE. Requires confirm=True. |
| admin_list_account_typesA | List all account types (license types) in the organization. |
| admin_list_grantsC | List grants for a specific file/workbook/data model by inodeId. Required: inodeId. |
| admin_create_grantB | Create or update a grant. Body must include inodeId, granteeId, permission, type. |
| admin_list_translationsB | List organization translation files. |
| admin_onboard_memberC | Onboard a new member: create account then add to teams. |
| admin_bulk_assign_team_membersC | Add multiple members to a team in one call. |
| admin_bulk_deactivate_membersA | Deactivate members matching a name pattern (regex on firstName+lastName). DESTRUCTIVE: requires both dry_run=False AND confirm=True to execute. Default behavior (dry_run=True) reports matches without making changes. Uses ?includeInactive=true to avoid re-deactivating already-inactive members. |
| admin_change_member_emailC | Change a member's email address via PATCH /v2/members/{id}. |
| admin_bulk_remove_team_membersA | Remove multiple members from a team by their email addresses. Resolves emails to member IDs, then sends a single PATCH to remove all. Requires confirm=True. |
| admin_list_tenants_paginatedB | List all tenants using cursor-based pagination (nextPageToken model). Unlike offset-based pagination, tenants use cursor tokens. Returns the complete list of all tenant organizations. |
| admin_get_tenant_scoped_infoB | Demonstrate tenant token exchange by calling /whoami through a tenant-scoped client. Uses RFC 8693 token exchange to obtain a tenant-scoped token, then calls the whoami endpoint to verify the scoped identity. |
| admin_api_capabilitiesA | Describe what the Sigma REST API can and cannot do programmatically. |
| admin_list_all_membersA | List ALL members in the organization, automatically following pagination. |
| admin_list_all_teamsA | List ALL teams in the organization, automatically following pagination. |
| admin_list_recent_webhooksC | List recently recorded incoming Sigma webhook events. read_only_hint: True |
| admin_list_org_workbook_agentsB | List all workbook agents across the organization. |
| admin_get_org_settingC | Get organization setting value. |
| admin_update_org_settingA | Update organization setting value. Mutating operation. Requires confirm=True. setting_name: One of aiChatHistory, auditLogging, bulkCopy, comments, csvUpload, emailBranding, licenseUpgradeRequests, publicEmbeds, sampleConnections, timezone. setting_value: Dict containing setting fields to update. |
| admin_configure_org_aiA | Configure the organization AI provider and models. Mutating operation. Requires confirm=True. provider_config: Provider specification dict (e.g. provider='openAI'/'anthropic'/'gemini'/'snowflake'/'databricks'/'bedrock'/'azureOpenAI'). |
| admin_reset_org_email_brandingA | Reset the organization email branding settings back to defaults. Destructive operation. Requires confirm=True. |
| admin_list_allowed_ipsB | List IP allowlist entries configured for the organization (v3alpha). |
| admin_add_allowed_ipsA | Create/add IP allowlist entries for the organization (v3alpha). Mutating operation. Requires confirm=True. entries: List of dicts, each with 'ip' (IPv4/IPv6 or CIDR), 'scope' ('public-api', 'ui', or 'both'), and optional 'description'. |
| admin_remove_allowed_ipsA | Delete IP allowlist entries by ID from the organization (v3alpha). Destructive operation. Requires confirm=True. entry_ids: List of IP allowlist entry ID strings to delete. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
| workbooks_provision_tenant_dashboard | Guide the agent through deploying a Sigma template into a folder and swapping data sources for a target tenant. |
| datasets_prepare_data_model | Guide the agent in defining a production data model specification, columns, and relations. |
| datasets_audit_tenant_connections | Guide the agent through reviewing multi-tenant connections and running dry-run syncs. |
| elements_swap_warehouse_source | Guide the agent through re-binding workbook or template data sources to a new connection or table. |
| admin_audit_organization_permissions | Guide the agent through auditing organization members, team memberships, and assigned user attributes. |
| admin_onboard_team_member | Guide the agent through creating a new member, assigning team memberships, and verifying home folder setup. |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
| Formula Reference | Curated reference guide for writing valid Sigma formulas. |
| API Capabilities | Overview of supported and unsupported Sigma API operations. |
| Documentation Index | Full index of all Sigma documentation pages with URLs. Use to discover available doc pages. |
| resource_webhooks_recent |
TDQS
Scored across 172 tools
Heavy duplication: list_workbooks vs list_all_workbooks, list_reports vs list_all_reports, list_members vs list_all_members, list_teams vs list_all_teams, and list_tenants vs list_tenants_paginated create near-identical pairs. Grant tools are scattered across workbooks_, workspace_, datasets_, and admin_ prefixes with overlapping semantics, and update_user_attribute_for_teams vs set_user_attribute_for_teams vs delete_user_attribute_for_team are hard to tell apart.
Names consistently use snake_case with a module prefix (workbooks_, datasets_, elements_, workspace_, admin_) plus verb_noun, which is predictable and readable. Minor deviations exist (e.g. workbooks_run_workbook_agent, admin_api_capabilities, arbitrary choice between workbooks_ and elements_ for workbook element tools).
172 tools is an extreme mismatch for any server scope, far beyond the 3-15 sweet spot. The surface is bloated with pagination variants, redundant list tools, and granular admin operations that should be consolidated or split into separate servers.
Coverage is remarkably broad: workbooks, reports, templates, data models, connections, elements, workspaces, tags, deployments, tenants, teams, user attributes, IP allowlists, and webhooks. A few gaps are self-documented, e.g. the direct POST to assign user attributes for users is not exposed and must be worked around.