mcp-server-sigma について
mcp-server-sigmaは、Sigma Computingの分析業務を自動化するコミュニティ製MCPサーバーです。接続、ワークブック、データモデル、組織リソースを管理でき、テンプレートの展開やデータソースの切り替えにも対応します。
主な機能
- 01接続、ワークブック、データモデルの管理
- 02メンバーとチームの管理
- 03ワークブックテンプレートの展開とソース切り替え
- 04読み取り専用モードと破壊的操作の保護
活用シーン
- 01ワークブックテンプレートを顧客フォルダーに展開
- 02ワークブックのデータウェアハウスソースを変更
- 03読み取り専用でSigma組織のリソースを確認
MCP 対応
Sigma Computingの管理・分析操作をツールとしてMCP クライアントに公開します。stdioとStreamable HTTPのトランスポートに対応します。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
uvx mcp-server-sigmaSIGMA_CLIENT_IDシークレットYour Sigma API client IDSIGMA_CLIENT_SECRETシークレットYour Sigma API client secretSIGMA_API_BASE_URLRegion-specific Sigma API host URL (e.g. https://api.us-a.aws.sigmacomputing.com)ローカルサーバーにはマシン上の実行環境(Node.js 18 以上など)が必要です。設定ファイルの場所はクライアントごとに異なります。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
📊 mcp-server-sigma
AI エージェントに Sigma Computing のネイティブ機能を活用しましょう! ⚡
コネクション、ワークブック、データモデル、メンバー、チーム、デプロイ、Webhook、マルチテナント運用、そしてお好みの AI アシスタントですぐに使える複合ワークフローレシピを網羅する 257 個のツールを備えた、エンタープライズグレードの Model Context Protocol(MCP)サーバーです。
⚠️ 免責事項と安全上の警告
重要
コミュニティプロジェクトに関する免責事項
mcp-server-sigmaは、独立したオープンソースのコミュニティプロジェクトです。Sigma Computing, Inc. との提携、同社による後援、承認、サポートは一切ありません。「Sigma Computing」 は Sigma Computing, Inc. の商標です。
警告
認証情報と安全に関するお知らせ
このサーバーは、Sigma 組織にスコープが設定された API 認証情報を使用します。ツールによっては、ワークブック、ユーザー、チーム、データモデルを変更できます。
- 読み取り専用モード: 変更リスクなしで安全に実行するには、
SIGMA_MCP_READONLY=1または--profile readonlyを設定してください(readOnlyHint=trueが注釈された 120 個のツールを一覧表示し、それ以外のすべての呼び出しを拒否します)。- 破壊的操作に対する安全ゲート: 単一項目の削除ツールでは、すべて明示的に
confirm=Trueを指定する必要があります。指定しない場合は何も変更せず、呼び出し側にconfirm=trueを付けて再呼び出しするよう求める通常の結果(isError: false)を返します。引数が不足している場合や無効な場合は、モデルが修正できるツールエラー(isError: true)を返します。メンバーが見つからない、エクスポートがタイムアウトする、一括無効化のパターンが拒否されるなど、その他の呼び出し失敗も同様です(docs/errors.md を参照)。バッチツールですべての項目が失敗した場合は、"type": "batch_failed"を含むisError: trueを返します。一部が成功した場合は、"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には、どのように自動化するかを左右する独自のアーキテクチャ上の非対称性があります。
- データモデルは100%コードで表現できます: データモデルの構築、列や結合、SQLロジックの定義、JSON仕様の更新、API経由でのウェアハウスソースの切り替えをプログラムで実行できます。
- ワークブックのレイアウトは主にUIで操作します: Sigmaではワークブック仕様用のベータ版エンドポイント(
/v2/workbooks/spec)が導入されていますが、レイアウト要素をゼロからプログラムで構築するのは依然として非常に複雑です。
BIダッシュボードを自動化するための標準的な方法は次のとおりです:
SigmaのUIでレイアウトを一度構築してテンプレートとして保存し、その後はプログラムでテンプレートをインスタンス化し、ソースを切り替えます! 🎨 ➡️ 🤖
複合レシピツール(workbooks_deploy_template_to_folderやelements_swap_workbook_sourcesなど)は、この一連のパターンを1回の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にバインドし、トークンを渡します。トークンをコマンドラインに記述しないでください(シェルの履歴やpsに表示されます)。.envにSIGMA_MCP_AUTH_TOKENを設定するか、環境変数としてエクスポートし、-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 EU | 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 EU | 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 クライアント
ローカルの CLI とエージェント拡張機能でネットワークトランスポートモード(Streamable HTTP)を実行します。
# 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 トランスポートは、ローカルサーバーを localhost にバインドするという MCP のガイダンスに従い、サーバーがその範囲を超えて到達可能な場合はベアラートークンを必須とします。
127.0.0.1、::1、またはlocalhost(--hostのデフォルトは127.0.0.1)では、SIGMA_MCP_AUTH_TOKENの有無にかかわらず HTTP が動作します。未設定の場合、リクエストが認証されていないことを警告するメッセージが表示されます。- それ以外のホスト(
0.0.0.0、::、LAN アドレス)では、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 と認証を設定した 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/Enterprise CLI)
Cortex CLI から直接追加します。
cortex mcp add sigma-tools -- sigma-mcp
🛡️ 安全管理
環境変数を使用して動作を設定します。
| Variable | Default | Description |
|---|---|---|
SIGMA_CLIENT_ID | Required | Sigma API のクライアント ID です。 |
SIGMA_CLIENT_SECRET | Required | Sigma API のクライアントシークレットです。 |
SIGMA_API_BASE_URL | Required | リージョン固有の Sigma API ホスト URL です。HTTPS であり、SIGMA_ALLOWED_HOSTS に含まれるホストである必要があります。 |
SIGMA_ALLOWED_HOSTS | official regional API hosts | SIGMA_API_BASE_URL と X-Sigma-Base-Url に使用できるホスト名の許可リストを、カンマ区切りで指定します。未設定または空の場合は、Sigma の公式リージョン別 API ホストが使用されます。ループバック、プライベート、リンクローカル、クラウドメタデータの宛先は常に拒否されます。 |
SIGMA_MCP_PROFILE | full | プロファイル:full、readonly、analyst、author、modeler、embed、access_admin(プロファイルを参照)。不明な値を指定すると、起動時に失敗します。 |
SIGMA_MCP_READONLY | 0 | 1 に設定すると、readOnlyHint=true と注釈されたツールのみを一覧表示し、それ以外のすべての呼び出しを拒否します(full では 120 個のツール)。どのプロファイルとも併用できます。 |
SIGMA_MCP_ALLOW_BULK_DESTRUCTIVE | 0 | 1 に設定すると、一覧にある 2 つの一括操作ツール(admin_bulk_deactivate_members、admin_bulk_remove_team_members)を実行できるようになります。設定しない場合、呼び出し時に拒否されます。 |
SIGMA_MCP_ENABLE_TOOL_SEARCH | 0 | 1 に設定する(または --enable-tool-search を指定する)と、full でのみ Tool Search が有効になります。 |
SIGMA_MCP_TOOL_SEARCH_BACKEND | regex | Tool Search のバックエンド:regex または bm25(または --tool-search-backend)。 |
SIGMA_MCP_ENABLE_CODE_MODE | 0 | 1 に設定する(または --enable-code-mode を指定する)と、full でのみ実験的な Code Mode が有効になります。Tool Search との併用はできません。 |
SIGMA_MCP_AUTH_TOKEN | (unset) | streamable-http と sse では、すべての MCP リクエストに Authorization: Bearer <token> が必要になります(FastMCP サーバー認証。トークンがない、または間違っている場合は HTTP 401 が返されます)。先頭と末尾の空白は削除されます。未設定または空白のみの場合、HTTP リクエストは認証されず、サーバーに警告が記録されます。すべての HTTP エントリーポイント(sigma-mcp、fastmcp run、http_app())で適用されます。stdio では無視されます。 |
SIGMA_MCP_ALLOW_UNAUTHENTICATED_BIND | 0 | 1(または true/yes/on)に設定すると、トークンなしで HTTP トランスポートが 127.0.0.1、::1、localhost 以外のホストにバインドできるようになります。設定しない場合、そのようなバインドは起動時に終了コード 2 で終了します。 |
SIGMA_ALLOWED_TENANTS | "" | RFC 8693 トークン交換で許可されるテナント組織 ID の許可リストを、カンマ区切りで指定します。 |
SIGMA_STRICT_TENANT_ALLOWLIST | 0 | 1 に設定すると、明示的な許可リスト項目なしでテナントリクエストが行われた場合、フェイルクローズし(HTTP 403)、リクエストを拒否します。 |
SIGMA_MAX_RETRIES | 3 | HTTP 429 の場合の再試行回数です(0~10)。 |
SIGMA_BASE_DELAY | 1.0 | 429 に Retry-After がない場合の指数バックオフの基本遅延(秒)です(base_delay * 2**attempt、ジッターは 0.5~1.5 倍)。 |
SIGMA_MAX_RETRY_DELAY | 60.0 | このバックオフの上限(秒)です。Retry-After の待機時間には適用されません。 |
SIGMA_MAX_RETRY_AFTER | 300.0 | 適用される Retry-After の最長待機時間(秒)です。指定された待機時間がこれを超える場合、再試行せず、待機時間を示す 429 エラーを直ちに返します。 |
SIGMA_MCP_LOG_FORMAT | text | json に設定すると、所要時間メトリクス(duration_ms)を含む構造化 JSON ログが出力されます。 |
🧭 プロファイル
--profile または SIGMA_MCP_PROFILE でプロファイルを選択します(デフォルトは full)。すべてのプロファイルで、5つのドメイン(workbooks、datasets、elements、workspace、admin)がマウントされます。ジョブプロファイルでは、特定のジョブ向けに明示的に列挙されたツール名のみが公開されます。プロンプトとリソースは、すべてのプロファイルで引き続き利用できます。サーバーのビルド時に、列挙された各名前が全カタログと照合されるため、プロファイルが不明な場合やリストに誤記がある場合は、起動時に ValueError が発生します。
| プロファイル | 対象ジョブ | ツール | SIGMA_MCP_READONLY=1 の場合 |
|---|---|---|---|
full | 省略なしの完全なカタログです。一括ツールも列挙されていますが、呼び出し時に SIGMA_MCP_ALLOW_BULK_DESTRUCTIVE=1 が設定されていない限り拒否されます。Tool Search と Code Mode はこのプロファイルでのみ有効になります。 | 257 | 120 |
readonly | 監査担当者/安全な探索向け:すべてのマウントにある readOnlyHint=true と注釈されたツールすべてです。 | 120 | 120 |
analyst | ビジネスユーザーがワークブックやレポートを検索、閲覧、エクスポート、スケジュールし、ビューをブックマークして、ワークブックエージェントに質問します。 | 50 | 33 |
author | ワークブック作成者がワークブック、レポート、テンプレートを作成、バージョン管理、検証し、編集中に要素を確認します。 | 53 | 37 |
modeler | データモデラーが接続とデータモデルを管理し、ワークブック、レポート、モデルのソースを切り替え、要素をマテリアライズします。 | 42 | 30 |
embed | 組み込みアナリティクスエンジニアがテナントとテナントダッシュボードをプロビジョニングします:テンプレート、デプロイ、ソースの切り替え、埋め込み、テナントのユーザー属性、接続の同期を行います。 | 72 | 31 |
access_admin | 組織管理者がメンバーのオンボーディングとオフボーディングを行い、チーム、権限付与、ユーザー属性、ワークスペース/ワークブック/接続へのアクセス、組織のセキュリティ設定を管理します。 | 70 | 26 |
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を含むツール結果が返されます。- サーバー上に存在しない名前を指定した場合は、直接呼び出す場合も
call_tool経由の場合も、FastMCP の通常の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エクストラ(pydantic-montyを同梱するfastmcp[code-mode])に含まれるサンドボックスが必要です。pip install "mcp-server-sigma[code-mode]"またはuvx "mcp-server-sigma[code-mode]" --enable-code-modeを実行してください。サンドボックスがない場合、警告が表示されてコードモードはスキップされ、フラットなカタログが提供されます。- 両方を有効にすると
ValueErrorが発生します。別のプロファイルでいずれかを指定すると、警告が記録され、フラットなリストが維持されます。 search_tools、search、get_schemaはカタログの読み取りのみを行い、readOnlyHint=trueと注釈されています。読み取り専用モードでは、コードモードのexecuteは拒否されます。
📊 機能とツールの概要
full プロファイルには257 個のツールが一覧表示されます。すべてのツール名は、ツールが属するドメイン名から始まります。
| ドメイン | ツール数 | 対象 |
|---|---|---|
workbooks | 78 | ワークブック、レポート、テンプレート:コンテンツ/仕様、ページ、バージョン、ブックマーク、スケジュール、エクスポートと単発送信、タグ、権限付与、埋め込み、組織間共有、レポートのページ/要素/列/コントロール、ワークブックエージェント、テンプレートのデプロイ |
datasets | 34 | 接続とデータモデル:接続の作成/削除、接続パスとパスの権限付与、接続の権限付与、テストとスキーマ同期、テナント間の接続同期、データモデル仕様、列、リネージ、ソース、タグ、マテリアライゼーション、ソースの切り替え |
elements | 24 | ワークブックの要素、列、コントロール、クエリ、ソース、リネージ、マテリアライゼーション、ソース切り替えポリシー、Sigma ドキュメント検索、数式リファレンス |
workspace | 24 | ワークスペースとその権限付与、ファイルとフォルダー、メンバーのファイル、最近使った項目とお気に入り、タグ |
admin | 97 | メンバー、チーム、ユーザー属性、テナント、デプロイ、権限付与、組織設定、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 | 1 回の呼び出しでテンプレートをインスタンス化し、ウェアハウスのデータソースを置き換えます |
elements_materialize_and_wait | データのマテリアライズを開始し、タイムアウトまで完了をポーリングします |
admin_onboard_member | メンバーを作成し、複数のチームに割り当てる処理をアトミックに実行します |
admin_bulk_assign_team_members | 1 回のリクエストで $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 の接続全体で、データベースとスキーマのパス全体を同期します |
workbooks_reassign_workbook_ownership | あるメンバーのメールアドレスから別のメンバーへ、ワークブックの所有権を一括移管します |
📐 MCP 2.0 のヒントと安全性アノテーション
すべてのツールには、AI クライアントがユーザー権限の確認を行う際に役立つ、構造化された MCP ヒントが含まれています。
| アノテーション | 件数 | 説明 |
|---|---|---|
readOnlyHint=true | 120 | 変更を行わない想定であることを示します。クライアントによっては、明示的なユーザー承認が必要な場合があります |
destructiveHint=true | 43 | 削除、無効化、または取り消しを行います。クライアントは確認を求めてください |
idempotentHint=true | 10 | 安全に再試行できます。同じ入力であれば結果も同じです |
openWorldHint=true | 257 | すべてのツールが外部 API を呼び出します |
🧮 Sigma の数式を書く
AI モデルは Sigma の数式を書く際に、SQL や Excel の関数を頻繁に幻覚します(例:List() の代わりに ArrayAgg() を使用するなど)。
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 License。
Copyright (c) 2026 Christian Claudio.
免責事項:Sigma Computing, Inc. との提携、支援、または承認を受けたものではありません。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。