Skip to content

Update from code changes: MCP permission-gated write tools#1025

Merged
notgiorgi merged 3 commits into
mainfrom
mintlify/85c5a0b0
Jul 20, 2026
Merged

Update from code changes: MCP permission-gated write tools#1025
notgiorgi merged 3 commits into
mainfrom
mintlify/85c5a0b0

Conversation

@mintlify

@mintlify mintlify Bot commented Jul 17, 2026

Copy link
Copy Markdown
Contributor

Summary

Update the Lightdash MCP reference to document the new per-user permission gating that decides which write tools appear in an MCP session.

Changes

  • Note that create_content and edit_content are now only registered for callers whose role grants create:ContentAsCode, on top of the existing organization "Allow content changes via MCP" setting.
  • Add a new Scheduled deliveries section covering the create_scheduled_delivery MCP tool, its dual gate (org setting + create:ScheduledDeliveries scope), and how it can be enabled independently of broader content writes.
  • Call out the default role mapping: Editors/Developers/Admins have create:ContentAsCode; Interactive Viewers/Editors/Developers/Admins have create:ScheduledDeliveries; Viewers have neither. Custom roles need the scopes added explicitly.
  • Refresh the FAQ entry on MCP writes to mention scheduled deliveries and registration-time scope checks.

Context

Follows lightdash/lightdash#25648 and lightdash/lightdash#25650, which move the MCP content-write and scheduled-delivery tools from invocation-time to registration-time permission checks.

@github-actions

github-actions Bot commented Jul 17, 2026

Copy link
Copy Markdown
Contributor

🤖 Documentation Bot

All checks passed! No issues found.

@mintlify

mintlify Bot commented Jul 17, 2026

Copy link
Copy Markdown
Contributor Author

Preview deployment for your docs. Learn more about Mintlify Previews.

Project Status Preview Updated (UTC)
lightdash 🟢 Ready View Preview Jul 17, 2026, 12:44 AM

@mintlify

mintlify Bot commented Jul 17, 2026

Copy link
Copy Markdown
Contributor Author

Preview deployment for your docs. Learn more about Mintlify Previews.

Project Status Preview Updated (UTC)
lightdash 🟡 Building Jul 17, 2026, 12:42 AM

</Info>

<Info>
**Per-user permission gate.** `create_content` and `edit_content` are also gated on the caller's role having the `create:ContentAsCode` scope. The check runs when tools are registered, so users whose role doesn't grant that scope simply won't see these tools in `tools/list`. Built-in **Editors**, **Developers**, and **Admins** hold this scope by default; **Interactive Viewers** and **Viewers** do not. Custom roles need `create:ContentAsCode` added explicitly — see [custom roles](/references/workspace/custom-roles). Project, space, and content-level checks continue to be enforced at invocation time on top of registration gating.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

create:ContentAsCode is a minimum, manage also works

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

do not mention tool names like create_content mention them by product-facing name: e.g. Creating and editing content tools


#### Scheduled deliveries

- **Create scheduled delivery** (`create_scheduled_delivery`) - Schedule an existing chart or dashboard to be delivered on a cron schedule to Slack, email, or another supported destination. Point the tool at the content by slug and pass the schedule and recipients — the delivery is created against the active project using the caller's permissions.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

same about snake case names here.


- **Create scheduled delivery** (`create_scheduled_delivery`) - Schedule an existing chart or dashboard to be delivered on a cron schedule to Slack, email, or another supported destination. Point the tool at the content by slug and pass the schedule and recipients — the delivery is created against the active project using the caller's permissions.

`create_scheduled_delivery` is registered independently from the content-write tools, so an organization can enable scheduled delivery MCP without enabling broader chart/dashboard writes for the same user (or vice versa). Two conditions must both be true for the tool to appear:

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

same here. also no need to

`create_scheduled_delivery` is registered independently from the content-write tools, so an organization can enable scheduled delivery MCP without enabling broader chart/dashboard writes for the same user (or vice versa). Two conditions must both be true for the tool to appear:

1. The **Allow content changes via MCP** organization setting is on (**Settings → Ask AI → General**). This is the same kill-switch that controls `create_content` and `edit_content`.
2. The caller's role grants the `create:ScheduledDeliveries` scope. Built-in **Interactive Viewers**, **Editors**, **Developers**, and **Admins** hold this scope by default; **Viewers** do not. Custom roles need `create:ScheduledDeliveries` added explicitly.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

no need to mention content tools in this section

@github-actions

github-actions Bot commented Jul 20, 2026

Copy link
Copy Markdown
Contributor

🤖 Documentation Bot

All checks passed! No issues found.

@github-actions

github-actions Bot commented Jul 20, 2026

Copy link
Copy Markdown
Contributor

🤖 Documentation Bot

All checks passed! No issues found.

@notgiorgi
notgiorgi merged commit ee70e1c into main Jul 20, 2026
6 checks passed
@notgiorgi
notgiorgi deleted the mintlify/85c5a0b0 branch July 20, 2026 11:07
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant