100+ integrations are ready to connect to your AI.Connect your first MCP

Strapi MCP server for your AI

List what your Strapi site holds, draft and edit entries without touching the live site, publish when you say so, upload images and set them on entries, and manage locales and end users on Strapi Cloud or your own server.

PopMCPStrapi

Show me the content types on my site and how many entries each one has

Supported Strapi tools

Works with whatever content types your site has, reads them for you, writes in plain JSON instead of Strapi's bracket format, and handles both Strapi 4 and Strapi 5.

207 tools in the full catalog: 102 read and 105 write. 33 load by default, and the rest are found with tool search.

strapi_admin_bulk_publish_entries

Publish many entries at once.

strapi_admin_discard_draft

Throw away an entry's unpublished edits and go back to the published version.

strapi_admin_unpublish_entry

Take an entry offline and keep its draft.

strapi_admin_create_folder

Create a Media Library folder.

strapi_admin_list_folders

Media Library folders.

strapi_create_user

Create an end user.

strapi_get_user

One end user by numeric id from strapi_list_users.

strapi_list_users

List the site's end users (Users and Permissions plugin), not admin panel users.

strapi_update_user

Change an end user.

strapi_create_entry

Create an entry in a collection type.

strapi_delete_entry

Delete an entry for good, with its draft and published versions, in the given locale (or the default locale).

strapi_get_entry

Read one entry of a collection type by its documentId, with first-level relations, media and components included.

strapi_get_single_type

Read a single type, the kind of content that exists once (homepage, global settings).

strapi_list_entries

List or search the entries of a collection type (articles, products and so on).

strapi_update_entry

Change fields on an entry.

strapi_update_single_type

Create or change a single type (homepage, global settings).

strapi_delete_file

Delete a file from the Media Library and from storage for good.

strapi_get_file

One Media Library file by id.

strapi_list_files

List Media Library files one page at a time.

strapi_update_file_info

Change a file's name, alternative text or caption.

strapi_upload_file

Add a file to the Media Library from a public link or inline bytes (25 MB at most here).

strapi_list_roles

End-user roles (Public, Authenticated and your own) with their numeric id, name, type and user count.

strapi_call_custom_get

Call a GET route your developers added to this Strapi project, one that no other tool covers.

strapi_call_custom_post

Call a POST route your developers added to this Strapi project.

strapi_get_content_type

One content type's full schema: every field with its type, required flag, relation target and component.

strapi_list_components

Every component's schema, for filling component and dynamic zone fields.

strapi_list_content_types

Start here.

strapi_publish_entry

Make an entry's draft live.

strapi_site_overview

A summary of this Strapi site: version, content types with entry counts, media files, end users and locales.

strapi_graphql_mutation

Run a GraphQL mutation (createArticle, updateArticle, deleteArticle), when the optional GraphQL plugin is installed.

strapi_graphql_query

Run a GraphQL query, when the optional GraphQL plugin is installed.

strapi_list_locales

The site's locales: code, name and which is the default.

strapi_send_email

Send an email through the site's configured email provider.

strapi_admin_auto_clone_entry

Copy an entry as it is.

strapi_admin_bulk_delete_entries

Delete many entries for good.

strapi_admin_bulk_unpublish_entries

Take many entries offline at once.

strapi_admin_bulk_validate_entries

Read many entries with what is needed to check they can be published.

strapi_admin_check_uid

Check whether a slug is free.

strapi_admin_clone_entry

Copy an entry into a new draft, with the given fields changed.

strapi_admin_count_documents

How many documents are draft, published and modified across the site.

strapi_admin_count_draft_relations

How many relations of an entry point at unpublished content, to check before publishing.

strapi_admin_count_many_draft_relations

The same count across many entries.

strapi_admin_count_single_type_draft_relations

How many relations of a single type point at unpublished content.

strapi_admin_create_and_publish_entry

Create an entry and publish it in one step.

strapi_admin_create_entry

Create a draft entry through the admin panel's API.

strapi_admin_delete_entry

Delete an entry for good through the admin panel's API.

strapi_admin_delete_single_type

Delete a single type's content for good.

strapi_admin_discard_single_type_draft

Throw away a single type's unpublished edits.

strapi_admin_generate_uid

Work out a free slug for an uid field from the entry's data.

strapi_admin_get_component_configuration

How one component's form is laid out.

strapi_admin_get_content_manager_init

Every content type and component as the admin panel loads them.

strapi_admin_get_content_type_configuration

How one content type's edit and list screens are laid out.

strapi_admin_get_entry

Read one entry as the admin panel sees it, with its available locales and statuses.

strapi_admin_get_preview_url

The site preview link for an entry, when previews are set up.

strapi_admin_get_single_type

Read a single type as the admin panel sees it.

strapi_admin_list_component_settings

Components as the admin panel lists them.

strapi_admin_list_content_type_settings

List view settings of every content type.

strapi_admin_list_content_types

Content types with uid, kind and whether they show in the panel.

strapi_admin_list_entries

List entries as the admin panel sees them, drafts first, with status (draft, published, modified).

strapi_admin_list_entry_relations

The entries already linked in one relation field of an entry.

strapi_admin_list_history_versions

Earlier versions of an entry.

strapi_admin_list_recent_documents

Documents most recently edited or published.

strapi_admin_list_relation_targets

Entries that can be chosen for a relation field, with a text search.

strapi_admin_publish_entry

Publish an entry's draft.

strapi_admin_publish_single_type

Publish a single type's draft.

strapi_admin_restore_history_version

Put an entry's draft back to an earlier version.

strapi_admin_unpublish_single_type

Take a single type offline and keep its draft.

strapi_admin_update_component_configuration

Change how a component's form is laid out.

strapi_admin_update_content_type_configuration

Change how a content type's screens are laid out in the admin panel.

strapi_admin_update_entry

Change an entry's draft through the admin panel's API.

strapi_admin_update_single_type

Create or change a single type's draft.

strapi_admin_batch_delete_webhooks

Remove several webhooks.

strapi_admin_create_webhook

Add a webhook that tells a URL about content changes.

strapi_admin_delete_webhook

Remove a webhook.

strapi_admin_get_email_settings

Which email provider the site uses, with its default sender.

strapi_admin_get_information

Strapi version, node version, plan and environment.

strapi_admin_get_init

Basic facts the admin panel loads first.

strapi_admin_get_key_statistics

Counts of entries, assets, content types, components, locales, admins, webhooks and API tokens.

strapi_admin_get_project_settings

The admin panel's logos.

strapi_admin_get_project_type

Whether this site runs the Community or an Enterprise edition, with its features.

strapi_admin_get_user_email_templates

The end-user email templates (reset password, confirm address).

strapi_admin_get_user_settings

End-user settings: sign-ups, email confirmation, default role, reset URL.

strapi_admin_get_webhook

One webhook.

strapi_admin_list_content_api_permissions

Every Content API permission that can be given to an API token.

strapi_admin_list_content_api_routes

Every Content API route of this site, including ones your developers added, grouped by API.

strapi_admin_list_plugins

Plugins installed on this site, to see whether GraphQL or i18n is there.

strapi_admin_list_user_permission_policies

Policies that can be set on end-user permissions.

strapi_admin_list_user_permission_routes

Routes grouped by what end-user permissions control.

strapi_admin_list_webhooks

The site's webhooks.

strapi_admin_send_email

Send an email through the site's provider using the admin token.

strapi_admin_send_test_email

Send a test email to check the provider.

strapi_admin_trigger_webhook

Send a test call to a webhook's URL.

strapi_admin_update_user_email_templates

Change the end-user email templates.

strapi_admin_update_user_settings

Change end-user settings such as whether people can sign up.

strapi_admin_update_webhook

Change a webhook.

strapi_admin_verify_email_provider

Check the email provider's connection.

strapi_admin_bulk_delete_media

Delete many files and folders for good, with everything inside the folders.

strapi_admin_bulk_move_media

Move many files and folders to another folder.

strapi_admin_bulk_update_files

Change text on many files in one call.

strapi_admin_count_pending_ai_metadata

How many files wait for Strapi AI metadata.

strapi_admin_delete_file

Delete a file for good.

strapi_admin_generate_ai_metadata

Generate alternative text and captions with Strapi AI.

strapi_admin_get_file

One Media Library file with its folder.

strapi_admin_get_folder

One folder.

strapi_admin_get_folder_tree

The whole Media Library folder tree.

strapi_admin_get_latest_ai_metadata_job

The latest Strapi AI metadata job.

strapi_admin_get_media_settings

Media Library settings such as responsive sizes and size optimization.

strapi_admin_get_media_view_settings

Media Library view settings such as page size and sort.

strapi_admin_list_files

Media Library files with folder filters.

strapi_admin_replace_file

Swap a file's bytes and keep its id.

strapi_admin_start_ai_metadata_job

Start a job that writes alternative text and captions with Strapi AI.

strapi_admin_update_file

Change a file's name, text or folder.

strapi_admin_update_folder

Rename or move a folder.

strapi_admin_update_media_settings

Change Media Library settings.

strapi_admin_update_media_view_settings

Change Media Library view settings.

strapi_admin_upload_file

Add a file straight into a Media Library folder.

strapi_admin_upload_file_form

The admin panel's own upload form route.

strapi_admin_upload_from_urls

Have Strapi fetch files from public links into the Media Library.

strapi_admin_batch_delete_admin_roles

Remove several admin panel roles.

strapi_admin_batch_delete_admin_users

Remove several admin panel users.

strapi_admin_check_permissions

Check what the admin token may do.

strapi_admin_create_admin_role

Create an admin panel role.

strapi_admin_create_admin_user

Invite someone to the admin panel.

strapi_admin_delete_admin_role

Remove an admin panel role.

strapi_admin_delete_admin_user

Remove an admin panel user, along with any admin tokens they own.

strapi_admin_export_audit_logs

Audit logs as an export.

strapi_admin_get_admin_role

One admin panel role.

strapi_admin_get_admin_role_permissions

What an admin panel role may do.

strapi_admin_get_admin_user

One admin panel user.

strapi_admin_get_audit_log

One audit log entry.

strapi_admin_list_admin_permissions

Every permission that can be given in the admin panel, with its conditions.

strapi_admin_list_admin_roles

Admin panel roles (Super Admin, Editor, Author and your own).

strapi_admin_list_admin_users

People who can sign in to the admin panel.

strapi_admin_list_audit_log_users

People who appear in the audit logs.

strapi_admin_list_audit_logs

Who changed what in the admin panel.

strapi_admin_set_admin_role_permissions

Replace everything an admin panel role may do.

strapi_admin_update_admin_role

Rename an admin panel role.

strapi_admin_update_admin_user

Change an admin panel user, or block them with isActive=false.

strapi_admin_create_component

Add a component.

strapi_admin_create_content_type

Add a content type.

strapi_admin_delete_component

Remove a component and its data.

strapi_admin_delete_component_category

Remove a component category and the components in it.

strapi_admin_delete_content_type

Remove a content type and its data.

strapi_admin_get_builder_component

One component's schema, through the admin token.

strapi_admin_get_builder_content_type

One content type's schema, through the admin token.

strapi_admin_get_reserved_names

Names not allowed for content types and fields.

strapi_admin_get_schema

The whole schema as the Content-Type Builder loads it.

strapi_admin_get_schema_update_status

Whether a schema change is still being applied.

strapi_admin_list_builder_components

Every component's schema, through the admin token.

strapi_admin_list_builder_content_types

Every content type's schema, through the admin token.

strapi_admin_rename_component_category

Rename a component category.

strapi_admin_update_component

Change a component's schema.

strapi_admin_update_content_type

Change a content type's schema.

strapi_admin_update_schema

Apply many schema changes at once, the way the Content-Type Builder saves.

strapi_admin_add_release_action

Add an entry to a release.

strapi_admin_add_release_actions_bulk

Add many entries to a release.

strapi_admin_create_release

Create a release, optionally scheduled.

strapi_admin_delete_release

Delete a release.

strapi_admin_get_release

One release.

strapi_admin_get_release_settings

Default time zone for releases.

strapi_admin_list_release_actions

The entries in a release.

strapi_admin_list_releases

Releases: groups of entries published together.

strapi_admin_list_releases_for_document

Releases that hold a given entry.

strapi_admin_map_entries_to_releases

For a list of entries, which pending releases hold each.

strapi_admin_publish_release

Publish everything in a release now.

strapi_admin_remove_release_action

Take an entry out of a release.

strapi_admin_update_release

Rename or reschedule a release.

strapi_admin_update_release_action

Switch an entry in a release between publish and unpublish.

strapi_admin_update_release_settings

Change the default time zone for releases.

strapi_admin_create_locale

Add a locale to the site.

strapi_admin_delete_locale

Remove a locale and all content in it, for good.

strapi_admin_get_collection_translation_job

The Strapi AI translation job of an entry.

strapi_admin_get_fill_from_locale

An entry's content in another locale, ready to translate.

strapi_admin_get_i18n_settings

Internationalization settings, such as AI translation.

strapi_admin_get_non_localized_fields

Fields shared across an entry's locales.

strapi_admin_get_single_translation_job

The Strapi AI translation job of a single type.

strapi_admin_list_iso_locales

Every locale code Strapi knows, to pick from when adding one.

strapi_admin_list_locales

The site's locales with numeric ids.

strapi_admin_update_i18n_settings

Change internationalization settings.

strapi_admin_update_locale

Rename a locale or make it the default.

strapi_admin_create_workflow

Create a review workflow.

strapi_admin_delete_workflow

Delete a review workflow.

strapi_admin_get_workflow_stage

One workflow stage.

strapi_admin_list_entry_stages

The stages an entry can move to.

strapi_admin_list_workflow_stages

A workflow's stages.

strapi_admin_list_workflows

Review workflows and their stages.

strapi_admin_set_entry_assignee

Assign an entry to an admin panel user, or clear it.

strapi_admin_set_entry_stage

Move an entry to a review stage.

strapi_admin_update_workflow

Change a review workflow.

strapi_count_users

How many end users match.

strapi_delete_user

Delete an end user for good.

strapi_register_user

Sign up an end user the way the site's own form does, with the default role and any confirmation email.

strapi_send_email_confirmation

Send an end user their sign-up confirmation email again.

strapi_send_password_reset

Email an end user a password reset link.

strapi_delete_single_type

Delete a single type's content for good.

strapi_list_all_files

Every Media Library file in one array, with no pages, which can be very large.

strapi_replace_file

Swap a file's bytes and keep its id, so every entry using it shows the new file.

strapi_create_role

Create an end-user role.

strapi_delete_role

Delete an end-user role.

strapi_get_role

One end-user role with every permission it has, grouped by API.

strapi_list_permissions

Every permission that can be given to an end-user role, grouped by API.

strapi_update_role

Change an end-user role.

strapi_call_custom_delete

Call a DELETE route your developers added to this Strapi project.

strapi_call_custom_patch

Call a PATCH route your developers added to this Strapi project.

strapi_call_custom_put

Call a PUT route your developers added to this Strapi project.

strapi_get_all_content_type_schemas

Every content type's full schema, including Strapi's own plugin types.

strapi_get_component

One component's schema.

Connect Strapi to Claude, ChatGPT and Claude Code

Credentials off one Strapi screen, then an endpoint your client signs into. Nothing to deploy, and nothing to install.

In your Strapi admin panel open Settings, then Global settings, then API Tokens, and create a Full access token. Paste it here with your site address. An admin token is optional and adds unpublishing, folders, bulk actions, releases and webhooks.

Site addresshttps://cms.example.com
API token••••••••••••3f7a
Admin token••••••••••••3f7a
ConnectionVerified

Then just ask for the work

  • “Show me the content types on my site and how many entries each one has”

    • site_overview
    • list_content_types
  • “Draft an article from these notes, add this image as its cover, and leave it unpublished for me to check”

    • get_content_type
    • upload_file
    • create_entry
  • “Which articles have edits that were never published? Publish the one about pricing”

    • list_entries
    • publish_entry
  • “Find images with no alternative text in the Media Library and write some for them”

    • list_files
    • update_file_info

Use Strapi from the assistant you already open

One hosted endpoint, registered once per client. The same tools and the same permissions, whichever window the request comes from.

Claude DesktopCustom connector

Add the PopMCP URL under Customize → Connectors and the tools appear in every chat.

Claude WebCustom connector

The same endpoint, registered in the browser. Nothing to install on the machine you are working from.

ChatGPTCustom connector

Register PopMCP as a custom connector, then let ChatGPT read and update the account.

CodexDesktop & CLI

Wire the endpoint into Codex or the Codex CLI when a task needs live business context, not a fixture.

OpenCodeCoding agent

Register the remote MCP server in OpenCode's config for terminal-first and scripted agent runs.

ZCodeDesktop app

Add PopMCP as an MCP server in Z.ai's desktop app and work the account from the same window.

Strapi MCP server questions

What teams ask before putting Strapi behind an AI client.

What does the Strapi MCP server need to connect?

Your site address and an API token. In your Strapi admin panel open Settings, then Global settings, then API Tokens, and create a token with the Full access type. API tokens are free on every Strapi plan. PopMCP checks the token against your site and stores it encrypted. Your site has to be online, because a Strapi running on your own computer cannot be reached.

Does it work with my own content types?

Yes. Strapi builds its API from the content types on each site, so the tools take the content type as a value instead of being fixed in advance. strapi_list_content_types shows what your site has, with each field's type, and names like Article, article and articles all find the same type. Your developers' own routes are reachable too, through the custom route tools.

Will the AI change my live site by accident?

Strapi's API publishes on every save by default, so PopMCP changes that: on content types with Draft and Publish, a create or update saves a draft unless the AI asks to publish. strapi_publish_entry makes a draft live when you say so. On Strapi 4 an entry has only one version, so edits to something already published show at once. Deleting is permanent either way.

What is the optional admin token for?

API tokens reach Strapi's Content API, which has no way to unpublish an entry, discard a draft, run bulk actions or manage folders. An admin token reaches the same Admin API the panel uses, and adds those, along with releases, review workflows, webhooks and admin users. Create it in Settings, then Administration Panel, then Admin Tokens on a recent Strapi 5, and paste it under More options.

Can I use a read-only token?

Yes, and it can read entries and media. Strapi's read-only tokens only allow actions named find and findOne, so they cannot read field lists or locales. PopMCP still works out your content types from a role's permissions. A Custom token with Content-type-builder and I18n ticked gives the AI field names as well, and you can also set the connection itself to read-only in PopMCP.

Does it work with Strapi 4 and self-hosted sites?

Yes. It works with Strapi Cloud and any self-hosted site on a public https address, including a changed API prefix or a subdirectory. PopMCP detects Strapi 4 or 5 when you connect and gives the AI one consistent shape. Admin tokens and a few newer features exist only on recent Strapi 5 versions.

How many tools does the Strapi MCP server have?

207. Thirty-three everyday tools load by default and the rest stay searchable, so your AI client is not crowded. They were checked against the route tables of Strapi 5.60, and every route is either covered or left out for a stated reason, such as end-user password sign-in or the routes that reveal tokens.

Do I have to run or host the Strapi MCP server myself?

No. PopMCP hosts it and gives you a Streamable HTTP MCP URL. There is nothing to deploy, no callback URL to register, and no infrastructure to keep running or patch.

Which AI clients can use this MCP server?

Any client that supports a remote Streamable HTTP MCP server: Claude Desktop, Claude Web, Claude Code, ChatGPT custom connectors, Codex and the Codex CLI, OpenCode and Z.ai's ZCode, as well as editors such as Cursor, Windsurf and Zed. Your client signs in to PopMCP with OAuth; the provider credential never leaves the server.

How do I connect Strapi to Claude Code?

Connect Strapi in PopMCP first, then run claude mcp add --transport http popmcp https://app.popmcp.com/mcp in a terminal. Inside Claude Code, run /mcp and sign in to PopMCP in the browser window it opens, ticking Strapi on the consent screen. The Strapi tools are then available in that session, and no Strapi credential is stored on your machine.

Why do only 33 of the 207 tools load by default?

Loading 207 tool definitions into every conversation burns context before the work starts. PopMCP loads a curated 33-tool set covering the everyday workflows and keeps the rest searchable, so your AI pulls a specialist tool only when a task needs it. Every tool stays searchable, and on Scale the owner can load the full catalog for a teammate's connection.

What is the difference between a tool and a trigger?

A tool is something your AI calls, and there are 207 here. A trigger is something PopMCP watches for you: 3 Strapi events that can start work on the PopMCP side. Triggers never enter your AI client's context, and none of them ask you to paste a callback URL into Strapi.

Connect Strapi to your AI in minutes

Launch a hosted MCP endpoint for Strapi, keep tool access under control, and start testing real workflow prompts right away.

Connect your first MCP