mirror of
https://github.com/apache/superset.git
synced 2026-09-01 13:01:33 +00:00
docs(mcp): fix guest-tool config name to MCP_GUEST_ALLOWED_TOOLS
The doc referenced a nonexistent MCP_GUEST_DENIED_TOOLS setting; guest tool access is actually governed by the default-deny MCP_GUEST_ALLOWED_TOOLS allow-list. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Opus 4.8
parent
6189a443df
commit
f2fe66e1dd
@@ -278,11 +278,19 @@ curl -X POST http://localhost:5008/mcp \
|
||||
|
||||
- A dedicated guest-token verifier validates the token against the same `GUEST_TOKEN_JWT_SECRET` / `GUEST_TOKEN_JWT_ALGO` / `GUEST_TOKEN_JWT_AUDIENCE` config used by embedded dashboards, replays the embedded structural checks, and enforces revocation (global version bumps and per-dashboard `guest_token_revoked_before` cutoffs). It runs *before* the JWT verifier described above, since guest tokens are signed with a different key/algorithm and would otherwise be rejected at the transport.
|
||||
- A verified guest resolves to a Superset guest user as the highest-priority identity, so it's never downgraded to API-key / `MCP_DEV_USERNAME` / dev-mode resolution. Data access is scoped by the same checks (dataset allowlist, dashboard access, row-level security) that apply to embedded dashboard views.
|
||||
- Sensitive enumeration tools (`find_users`, `get_instance_info` by default) are hidden and denied to guests via `MCP_GUEST_DENIED_TOOLS`, regardless of `MCP_RBAC_ENABLED`.
|
||||
- Guests are restricted to a default-deny allow-list, `MCP_GUEST_ALLOWED_TOOLS`, regardless of `MCP_RBAC_ENABLED`. Sensitive enumeration tools like `find_users` and `get_instance_info` are denied simply by being absent from the default list.
|
||||
|
||||
```python
|
||||
# superset_config.py
|
||||
MCP_GUEST_DENIED_TOOLS = {"find_users", "get_instance_info"} # default
|
||||
MCP_GUEST_ALLOWED_TOOLS = {
|
||||
"get_dashboard_info",
|
||||
"get_dashboard_layout",
|
||||
"list_dashboards",
|
||||
"list_charts",
|
||||
"get_chart_info",
|
||||
"get_chart_data",
|
||||
"get_chart_preview",
|
||||
} # default
|
||||
```
|
||||
|
||||
**Deployment requirements**
|
||||
@@ -567,7 +575,7 @@ All MCP settings go in `superset_config.py`. Defaults are defined in `superset/m
|
||||
| `MCP_AUTH_FACTORY` | `None` | Custom auth provider factory `(flask_app) -> auth_provider`. Takes precedence over built-in JWT |
|
||||
| `MCP_USER_RESOLVER` | `None` | Custom function `(app, access_token) -> username` to extract a Superset username from a validated JWT token. When `None`, the default resolver checks `preferred_username`, `username`, `email`, and `sub` claims in that order. |
|
||||
| `MCP_EMBEDDED_GUEST_AUTH_ENABLED` | `False` | Accept embedded [guest tokens](#embedded-guest-authentication) as Bearer auth. Also requires the `EMBEDDED_SUPERSET` feature flag. |
|
||||
| `MCP_GUEST_DENIED_TOOLS` | `{"find_users", "get_instance_info"}` | Tool names hidden and denied to embedded guests, regardless of `MCP_RBAC_ENABLED`. |
|
||||
| `MCP_GUEST_ALLOWED_TOOLS` | see [default list](#embedded-guest-authentication) | The only tool names callable by embedded guests (default-deny), regardless of `MCP_RBAC_ENABLED`. |
|
||||
|
||||
### Response Size Guard
|
||||
|
||||
|
||||
Reference in New Issue
Block a user