# Connect Writer

> Add Stensul to Writer as a custom MCP connector with OAuth, a client secret and two redirect URIs.

Source: https://stensul.com/developers/quickstart/writer/ · Last reviewed 2026-10-14

> **Not the Stensul admin?**
>
> Your **instance name** is the first part of your Stensul address (`northwind` in `northwind.stensul.com`). The [config generator](https://stensul.com/developers/config/?host=writer) writes the exact settings and a message you can send your Stensul admin. Don't know who that is, or whether the MCP is turned on for your company? Ask your Stensul customer success manager, or email [help@stensul.com](mailto:help@stensul.com?subject=Stensul%20MCP%20access) from your work address.

Writer doesn't support PKCE, so the Stensul connection needs a **client secret**, and it needs **two redirect URIs**: Writer's callback and your Stensul instance callback.

## 1. Create the API connection in Stensul

Needs admin access, the external API enabled and `access_admin_api_connections`.

1. Go to **Admin > Settings > API connections** and click **Add connection**.
2. Set **Authorization Type** to **Authorization Code**. Name it, for example `mcp-writer`.
3. Add **both** redirect URIs:

```text
https://app.writer.com/mcp/oauth/callback
https://mcp.stensul.com/<your-instance>/oauth/callback
```

4. **Leave PKCE off.**
5. Select the scopes your team needs. The first four cover drafting. The last three turn on the image gallery and audience versions; a tool whose scope is missing returns a 403. See [scopes](https://stensul.com/developers/authentication/#scopes).
   - `libraries:read`: read libraries
   - `emails:read`: read emails
   - `emails:write`: write emails
   - `images:write`: upload images (labeled **Write images**)
   - `dam:read`: browse the image gallery (labeled **Read Dam images**)
   - `dynamic-content:read`: read segment sets
   - `dynamic-content:write`: apply segment sets and write segment content

   The list shows other scopes too, such as `capabilities:read`, `modules:write`, `users:read` and `roles:read`. Leave them unchecked: the MCP doesn't use them.
6. Save. Copy the **Client ID** and **Client Secret** immediately. The secret is shown once.

## 2. Add the connector in Writer

1. In Writer, open **Connectors** and click **Custom connector (Beta)**.
2. Choose **Connect to a MCP server**.
3. Enter the MCP Server URL: `https://mcp.stensul.com/<your-instance>/mcp`
4. Choose **OAuth** and fill in:

| Field | Value |
| --- | --- |
| Authorization URL | `https://mcp.stensul.com/<your-instance>/oauth/authorize` |
| Access Token URL | `https://mcp.stensul.com/<your-instance>/oauth/token` |
| DCR (Dynamic Client Registration) | No |
| OAuth2 Client ID | From step 1 |
| OAuth2 Client Secret | From step 1 |

5. Save the connector.

## 3. Sign in and draft an email

Each person finds the **Stensul** connector in Writer, connects it, logs in to Stensul and approves. Then:

```text
Using Stensul, draft an event invitation email in the <library name> library
for our customer roundtable on November 12. Keep the subject line under 50
characters. Return the edit link and a preview.
```

You're done when Writer returns an edit link to the draft. In Writer the preview comes back as a static image.

## If something goes wrong

| What you see | Fix |
| --- | --- |
| Redirect error at sign-in | Both redirect URIs must be present and exact |
| Writer asks for a client secret | Expected. Create the Stensul connection with PKCE off so it has one |
| "couldn't connect" before setup finishes | An error on Writer's side. Wait a few minutes, check every URL and ID, then retry |
| It worked before, now asks you to sign in | Your authorization expired. Sign in again |
