# Strapi MCP connector

The Strapi connector brings your Strapi content entries, media library, users, and roles to Claude, ChatGPT, Cursor, and the Elaichi Agent, so you can find, draft, and update content by asking, inside your own access.

Source: https://elaichi.ai/connectors/strapi/

## Facts

| | |
| --- | --- |
| Application | Strapi |
| Category | Knowledge Management |
| AI tools | 31 |
| Authentication | Connects with an API key |
| Needs your own OAuth app | No |
| MCP endpoint | https://api.elaichi.ai/mcp |
| Works with | Claude, ChatGPT, Cursor, any MCP client, and the Elaichi Agent |
| Tools advertised by name | No. 31 tools is past the 30-tool threshold, so clients use `search_tools` and `execute_tool` |

## What you can ask once Strapi is connected

- List documents created this week in Strapi
- Draft a release note from the latest Strapi documents
- Which upload files are unused across Strapi documents?

## Connect Strapi in Elaichi

This happens once for the organization, before any client is involved.

1. Open Connections, choose Add connection, and pick Strapi.
2. Optionally set Share with, then press Connect.
3. Paste a Strapi API key. One person generates a token in Strapi and pastes it once. Everyone else works through Share with, and never sees it.

Credentials are vaulted and nobody, including the AI, reads them back. The connection becomes a toolbox immediately, so you can curate which Strapi tools are exposed, rename them, or freeze arguments before anyone points a client at it.

## Connect Strapi to Claude

Endpoint: https://api.elaichi.ai/mcp

1. Open Customize, then Connectors.
2. Press Add.
3. Name it, paste the MCP server URL, then Continue.
4. Sign in and approve.

On Team and Enterprise, an Owner adds it once. Everyone else turns it on for themselves.

## Connect Strapi to ChatGPT

Endpoint: https://api.elaichi.ai/mcp

1. Open Plugins, then press the + button.
2. Name it and paste the endpoint into Server URL.
3. Leave Authentication on OAuth, then tick the risk acknowledgement.
4. Press Create, then sign in and approve.

Works on the web today. The plugin directory lives at chatgpt.com/plugins.

## Connect Strapi to Cursor

Endpoint: https://api.elaichi.ai/mcp

1. Open `~/.cursor/mcp.json`.
2. Add the endpoint under `mcpServers`.
3. Reload Cursor, then sign in and approve.

Set up per machine, so repeat it on each computer you work from.

## Connect Strapi to any MCP client

Endpoint: https://api.elaichi.ai/mcp

1. Add the endpoint as a remote MCP server.
2. Sign in and approve.

The Elaichi Agent already has these tools, with nothing to set up.

## What the consent screen decides

Only Read is granted by default, which is not enough to call a Strapi tool. Over MCP there is no trusted place to confirm a write in the moment, so the consent screen is the standing approval rather than a formality. Grant Read and Run tools. Think hard before granting Delete, which reaches into connected apps and cannot be undone.

## What teams do with Strapi through Elaichi

### Draft a new entry from a brief

Content. Describe the article, landing page, or announcement you need and it lands in Strapi as a new entry, ready for an editor to review before it goes live.

### Refresh copy across product pages

Marketing. Ask which entries mention last quarter's pricing or an old product name, then have the wording updated entry by entry without opening each one in the Strapi admin.

### Check what the help center says

Support. When a customer asks about a feature, pull the current Strapi entry for it and confirm what is published before replying, instead of guessing from memory.

### Onboard a new editor

Operations. Create the Strapi user account for someone joining the team, see which roles exist, and confirm what they will be able to do before their first day.

### Tidy the media library

Web. List the files in Strapi's upload library, spot duplicates and outdated images, and remove the ones nobody links to anymore.

### Find entries that have gone stale

Product. Ask for the entries in a collection that have not changed in months and get a list to work through, with the details of any single one on request.

## Frequently asked questions

### How do I connect Strapi to Claude?

First, connect Strapi in Elaichi by pasting an API token from your Strapi admin, the one you create under Settings and API Tokens. There is no OAuth application to register and no client ID or secret to generate. Then open Claude, go to Customize, then Connectors, then Add, and paste the endpoint https://api.elaichi.ai/mcp. Claude asks you to sign in to Elaichi, and from then on it works with Strapi as you.

### Does Strapi work with ChatGPT and Cursor as well as Claude?

Yes. Once Strapi is connected in Elaichi, the same endpoint, https://api.elaichi.ai/mcp, works in Claude, ChatGPT, Cursor, any other MCP client, and the Elaichi Agent. You connect Strapi once and every client you use picks it up.

### What can an AI agent actually do with my Strapi data?

An agent connected to Strapi can list your content entries, read a single one in full, create new entries, update existing ones, and delete them. It can also browse the media library, add or remove uploaded files, and look after Strapi users and roles, including creating accounts and checking who has which role. Because Strapi has a lot of actions available, short concrete asks like "update the pricing entry" work better than long paragraphs.

### Does connecting Strapi give the AI access to everything in my Strapi project?

No. The AI works through the Strapi API token that was connected, so it can only reach the content types, media, and user records that token is allowed to see. Elaichi can narrow that further with restrictions on specific actions, but it can never grant more than the Strapi permissions already allow.

### Can my team share one Strapi connection?

Yes. One person connects Strapi in Elaichi and shares the connection with a team, and nobody else ever handles the API token. Each teammate still signs in to Elaichi as themselves, so every change made in Strapi is recorded under the name of the person who asked for it.

### Can I stop an agent from deleting or changing things in Strapi?

Yes. In Elaichi you can block individual Strapi actions, such as deleting entries, removing media files, or changing users, while leaving reading and drafting open. A blocked action is never shown to Claude, ChatGPT, Cursor, or any other client, so no prompt, accidental or otherwise, can reach it.

### What happens to a Strapi connection when someone leaves?

Offboarding a person in Elaichi ends their access to Strapi through every client at once, with nothing to revoke inside Strapi itself. If they had shared their Strapi connection with a team, it keeps working for everyone else. When you want Strapi gone entirely, disconnecting it once in Elaichi removes it from Claude, ChatGPT, Cursor, and every other client at the same time.

## All 31 Strapi tools

Every tool below is callable through https://api.elaichi.ai/mcp once Strapi is connected, subject to the toolbox it is in and the restrictions on the caller.

- **Create a Strapi upload** (Create). Upload one or more files to Strapi's Media Library, optionally linking them to a specific content-type entry. Returns the uploaded file object(s). Required: files. To link files to an entry, also supply ref, refId, and field.
- **List all Strapi documents** (List). List all documents from a Strapi content type. Returns an array of document records for the specified collection. Required: plural_api_id (the plural API ID of the target content type, e.g., 'articles').
- **Get single Strapi document by ID** (Get). Get a single document from a Strapi content type by id. Returns the full document record. Required: plural_api_id and id.
- **Create a Strapi document** (Create). Create a new document in a Strapi content type. Returns the created document record including its id. Required: plural_api_id and a data body containing the document fields.
- **Update a Strapi document by ID** (Update). Update an existing document in a Strapi content type by id. Returns the updated document record. Required: plural_api_id, id, and a data body with the fields to update.
- **Delete a Strapi document by ID** (Delete). Delete a document from a Strapi content type by id. Returns an empty response on success. Required: plural_api_id and id.
- **List all Strapi upload files** (List). List all uploaded files in Strapi. Returns an array of file objects.
- **Get single Strapi upload file by ID** (Get). Get a single uploaded file in Strapi by id. Returns the file object details. Required: id.
- **Delete a Strapi upload file by ID** (Delete). Delete an uploaded file in Strapi by id. Returns an empty response on success. Required: id.
- **Create a Strapi auth register** (Create). Register a new local user in Strapi. Returns a JWT token and the created user object including id, username, and email. Required: username, email, password.
- **Create a Strapi auth forgot password** (Create). Trigger a forgot-password email flow in Strapi for a registered user. Sends a password-reset email to the provided address. Required: email.
- **Create a Strapi auth reset password** (Create). Reset a Strapi user's password using a password reset code. Returns the authenticated user's jwt token and user object on success. Required: code, password, passwordConfirmation.
- **Create a Strapi auth change password** (Create). Change the authenticated Strapi user's password. Returns the updated user object along with a new JWT token. Required: currentPassword, password, passwordConfirmation.
- **List all Strapi auth email confirmation** (List). Confirm a Strapi user's email address using the confirmation token sent via email. Typically redirects or returns a confirmation response on success. Required: confirmation.
- **Create a Strapi auth send email confirmation** (Create). Send an email confirmation message to a Strapi user. Triggers a confirmation email to the provided address so the user can verify their account. Required: email.
- **Create a Strapi auth refresh** (Create). Refresh a Strapi authentication session by exchanging a refresh token for a new JWT access token. Returns a new JWT. Required: refreshToken.
- **Create a Strapi auth logout** (Create). Log out the currently authenticated Strapi user by invalidating their active session token. Returns a confirmation response on success. No additional parameters are required.
- **List all Strapi users** (List). List all users registered in strapi. Returns an array of user objects including id, username, email, confirmed, and blocked fields.
- **Get single Strapi user by ID** (Get). Get a single strapi user by id. Returns the full user object including id, username, email, confirmed, blocked, and role. Required: id.
- **Create a Strapi user** (Create). Create a new user in strapi. Returns the created user object including id, username, and email. Required: username, email, password.
- **Update a Strapi user by ID** (Update). Update an existing strapi user by id. Returns the updated user object including id, username, and email. Required: id.
- **Delete a Strapi user by ID** (Delete). Delete a strapi user by id. Returns the deleted user object on success. Required: id.
- **List all Strapi users count** (List). Get the total count of registered users in Strapi. Returns a single numeric value representing the total number of users.
- **List all Strapi roles** (List). List all roles in Strapi. Returns an array of role objects from the users-permissions plugin.
- **Get single Strapi role by ID** (Get). Get a single Strapi role by id. Returns the role object from the users-permissions plugin. Required: id.
- **Create a Strapi role** (Create). Create a new role in Strapi via the users-permissions plugin. Returns the created role object.
- **Update a Strapi role by ID** (Update). Update an existing Strapi role by id via the users-permissions plugin. Returns the updated role object. Required: id.
- **Delete a Strapi role by ID** (Delete). Delete a Strapi role by id via the users-permissions plugin. Required: id.
- **List all Strapi permissions** (List). List all available permissions in Strapi. Returns the permissions object containing the full set of registered permissions across all plugins and controllers.
- **List all Strapi me** (List). Get the profile of the currently authenticated user in Strapi. Returns the user object for the authenticated user.
- **Create a Strapi auth session** (Create). Authenticate a Strapi user using local credentials. Returns a jwt token and the authenticated user object.
