> ## Documentation Index
> Fetch the complete documentation index at: https://developers.semji.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Connect your CMS to Semji

> Overview of Semji's CMS integrations — WordPress, Drupal, Contentful, Strapi, custom MCP servers, and the Send to CMS webhook — with step-by-step connection guides.

Connect your CMS to let Semji's AI agents work directly on your content —
list and read what's there, create new drafts, and update existing pages.
Each integration is connected once by a **workspace owner** from
**Settings → Integrations** and is typically shared with the whole workspace
(custom MCP servers can also be connected per user).

<CardGroup cols={2}>
  <Card title="WordPress" icon="https://mintcdn.com/semji/3quSdqkylJbDAJnr/images/icons/phosphor/globe.svg?fit=max&auto=format&n=3quSdqkylJbDAJnr&q=85&s=f49f49ad3ed03d73126390aebbfb13ea" href="/integrations/wordpress" width="256" height="256" data-path="images/icons/phosphor/globe.svg">
    Connect with an application password over the WordPress REST API.
    Compatible from WordPress 5.6.
  </Card>

  <Card title="Drupal" icon="https://mintcdn.com/semji/3quSdqkylJbDAJnr/images/icons/phosphor/drop.svg?fit=max&auto=format&n=3quSdqkylJbDAJnr&q=85&s=cc3d5c729701505582dc71ddb20d7ef4" href="/integrations/drupal" width="256" height="256" data-path="images/icons/phosphor/drop.svg">
    Connect through JSON:API and Basic Auth. Compatible from Drupal 8.7.
  </Card>

  <Card title="Contentful" icon="https://mintcdn.com/semji/3quSdqkylJbDAJnr/images/icons/phosphor/cube.svg?fit=max&auto=format&n=3quSdqkylJbDAJnr&q=85&s=ea24436b879ffb72be66975ec2a03637" href="/integrations/contentful" width="256" height="256" data-path="images/icons/phosphor/cube.svg">
    One-click OAuth through Contentful's hosted MCP server — no keys to copy.
  </Card>

  <Card title="Strapi" icon="https://mintcdn.com/semji/3quSdqkylJbDAJnr/images/icons/phosphor/stack.svg?fit=max&auto=format&n=3quSdqkylJbDAJnr&q=85&s=3480316abb757b2960dbe9a28f24c911" href="/integrations/strapi" width="256" height="256" data-path="images/icons/phosphor/stack.svg">
    Connect your instance's MCP endpoint with an admin token. Compatible from
    Strapi 5.47.0.
  </Card>

  <Card title="Custom MCP server" icon="https://mintcdn.com/semji/3quSdqkylJbDAJnr/images/icons/phosphor/plugs-connected.svg?fit=max&auto=format&n=3quSdqkylJbDAJnr&q=85&s=d3635d3fae6c7dea56f3a482699301eb" href="/integrations/custom-mcp" width="256" height="256" data-path="images/icons/phosphor/plugs-connected.svg">
    Bring your own MCP server — a custom CMS bridge or internal tool — via
    OAuth or an API key.
  </Card>

  <Card title="Send to CMS webhook" icon="https://mintcdn.com/semji/fJjWVir0CIoBIHxM/images/icons/phosphor/webhooks-logo.svg?fit=max&auto=format&n=fJjWVir0CIoBIHxM&q=85&s=aa8dacbfca843080ab23119f4284f33e" href="/integrations/send-to-cms-webhook" width="256" height="256" data-path="images/icons/phosphor/webhooks-logo.svg">
    Semji posts each draft to your endpoint when an editor clicks *Send to CMS*;
    you place it and return a review link, synchronously or via a callback.
  </Card>
</CardGroup>

## At a glance

| Integration                                              | How it connects                        | You provide                              | Minimum version |
| -------------------------------------------------------- | -------------------------------------- | ---------------------------------------- | --------------- |
| [WordPress](/integrations/wordpress)                     | REST API + application password        | Site URL, username, application password | WordPress 5.6   |
| [Drupal](/integrations/drupal)                           | JSON:API + Basic Auth                  | Site URL, username, password             | Drupal 8.7      |
| [Contentful](/integrations/contentful)                   | Contentful's hosted MCP server (OAuth) | A Contentful sign-in — nothing to copy   | All versions    |
| [Strapi](/integrations/strapi)                           | Your instance's MCP endpoint           | MCP server URL, admin token              | Strapi 5.47.0   |
| [Custom MCP server](/integrations/custom-mcp)            | Your own MCP server                    | Server URL + OAuth or API key            | —               |
| [Send to CMS webhook](/integrations/send-to-cms-webhook) | Outbound webhook + tokenised callback  | An HTTPS endpoint URL                    | —               |

<Note>
  **Behind a firewall or WAF?** Semji's requests can be blocked before they
  reach your CMS — the most common cause of failed connections. Each guide
  above has a dedicated network section explaining what, if anything, to
  allow — including Semji's outbound IP addresses.
</Note>

## Push content to your CMS yourself

If you'd rather push content to your CMS instead of letting Semji's agents work
on it directly, two options work with any backend:

* **[Send to CMS webhook](/integrations/send-to-cms-webhook)** — Semji posts a
  draft to your endpoint when an editor clicks *Send to CMS*; you place it and
  return a review link, synchronously or through a callback.
* **[Sync drafts to your CMS](/guides/sync-drafts-to-cms)** — an API-based
  publishing flow you drive on a schedule.
