# MCP tool reference

> The 22 tools the Stensul MCP server exposes, from the live server's tool list (captured 2026-09-28, updated 2026-10-07).

Source: https://stensul.com/developers/reference/

> **Looking for a REST API?**
>
> This page covers the MCP tools your AI host calls. For server-to-server automation with no person in the loop, use the [Stensul REST API reference](https://apidocs.stensul.dev/apidocs/v1/index.html).

Server endpoint: `https://mcp.stensul.com/<your-instance>/mcp`. Machine-readable list: [tools.json](https://stensul.com/developers/tools.json).

## Sign-in and status

| Tool | What it does | Scope | Access |
| --- | --- | --- | --- |
| [`stensul-check-auth`](https://stensul.com/developers/reference/stensul-check-auth.md) | Reports whether the current session has a valid sign-in, where the token came from, and what to do next. | none | read |
| [`stensul-get-auth-url`](https://stensul.com/developers/reference/stensul-get-auth-url.md) | Starts the OAuth authorization-code flow and returns the sign-in URL the user opens in a browser. | none | write |
| [`stensul-health`](https://stensul.com/developers/reference/stensul-health.md) | Checks credentials, connectivity and available scopes. Run it first when calls fail with authentication or access errors. | none | read |

## Libraries

| Tool | What it does | Scope | Access |
| --- | --- | --- | --- |
| [`stensul-get-libraries`](https://stensul.com/developers/reference/stensul-get-libraries.md) | Lists libraries, or returns everything needed to work in one: its modules, variations, Segment Set support, languages, tags and which email settings it enables. | libraries:read | read |

## Emails

| Tool | What it does | Scope | Access |
| --- | --- | --- | --- |
| [`stensul-list-emails`](https://stensul.com/developers/reference/stensul-list-emails.md) | Lists emails and templates with filters for name, type, library, tags, language, project and status. | emails:read | read |
| [`stensul-read-email`](https://stensul.com/developers/reference/stensul-read-email.md) | Reads an email or template. The default `plan` view returns its full structure with repeated styles and guardrails deduplicated, which is what you need before building or editing. | emails:read | read |
| [`stensul-build-email`](https://stensul.com/developers/reference/stensul-build-email.md) | Creates a complete draft in one call: starts from a template or an existing email, sets the settings, uploads images by public URL and writes all the content. | emails:write | write |
| [`stensul-create-email`](https://stensul.com/developers/reference/stensul-create-email.md) | Creates an empty draft in a library from a list of module keys. Prefer `stensul-build-email` for normal creation. | emails:write | write |
| [`stensul-copy-email`](https://stensul.com/developers/reference/stensul-copy-email.md) | Creates an independent draft copy of an email, keeping all content, modules and layout. The original is never changed. | emails:write | write |
| [`stensul-update-email-content`](https://stensul.com/developers/reference/stensul-update-email-content.md) | Edits content inside an existing draft: copy, buttons, images, alt text, visibility, custom-element variables and URL tracking. Anything you leave out stays as it is. | emails:write | write |
| [`stensul-update-email-settings`](https://stensul.com/developers/reference/stensul-update-email-settings.md) | Changes a draft's name, title, subject line or preheader. The email body is untouched. | emails:write | write |
| [`stensul-add-email-module`](https://stensul.com/developers/reference/stensul-add-email-module.md) | Adds one module (a whole section) from the library to a draft, found by what the user called it. | emails:write | write |
| [`stensul-delete-email-module`](https://stensul.com/developers/reference/stensul-delete-email-module.md) | Removes one module (a whole section) from a draft, or checks what else would go when the user asked to remove a single element. | emails:write | write |
| [`stensul-apply-email-variation`](https://stensul.com/developers/reference/stensul-apply-email-variation.md) | Applies a styling variation to the whole email, one module, or several modules in one call. Content is untouched and the change is reversible. | emails:write | write |

## Images

| Tool | What it does | Scope | Access |
| --- | --- | --- | --- |
| [`stensul-list-gallery-images`](https://stensul.com/developers/reference/stensul-list-gallery-images.md) | Browses the account's approved image gallery. Use it before asking the user for a file. | dam:read | read |
| [`stensul-upload-images`](https://stensul.com/developers/reference/stensul-upload-images.md) | Uploads up to five images from public URLs to a draft (or to Studio for module backgrounds), or searches the gallery. | images:write | write |
| [`stensul-image-upload-session`](https://stensul.com/developers/reference/stensul-image-upload-session.md) | The upload path for local images: files the user has, pastes or attaches. Mints a single-use browser upload link, or a small uploader script on hosts with a shell. | images:write | write |

## Preview and quality

| Tool | What it does | Scope | Access |
| --- | --- | --- | --- |
| [`stensul-preview-email`](https://stensul.com/developers/reference/stensul-preview-email.md) | Renders a read-only visual preview of an email, images included. | emails:read | read |
| [`stensul-run-quality-check`](https://stensul.com/developers/reference/stensul-run-quality-check.md) | Runs the account's accessibility and quality checks on an email and returns the issues found. | emails:read | read |

## Dynamic content

| Tool | What it does | Scope | Access |
| --- | --- | --- | --- |
| [`stensul-list-segment-sets`](https://stensul.com/developers/reference/stensul-list-segment-sets.md) | Lists the Segment Sets available for a library: each set's name, segment type and ordered segments. | dynamic-content:read | read |
| [`stensul-apply-segment-set`](https://stensul.com/developers/reference/stensul-apply-segment-set.md) | Applies an existing Segment Set to a module (or one element) and can write each segment's content in the same call. | dynamic-content:write | write |
| [`stensul-update-segment-content`](https://stensul.com/developers/reference/stensul-update-segment-content.md) | Writes the content of one segment created by `stensul-apply-segment-set`. All of that segment's elements go in one call. | dynamic-content:write | write |
