Knowledge Management · Beta
Strapi
API integration
Ship Knowledge Management features without building the integration. Full Strapi API access via Proxy, normalized data through Unified APIs, and 30+ MCP-ready tools for AI agents — all extensible to your exact use case.
Built for specific customer use cases. Issues are resolved quickly.
Talk to usUse Cases
Why integrate with Strapi
Common scenarios for SaaS companies building Strapi integrations for their customers.
Embed Strapi as a content source for localization platforms
Translation and localization SaaS companies can let users connect their Strapi instance, pull source documents by content type, and push translated versions back — eliminating manual import/export workflows.
Power SEO and content optimization workflows
SEO platforms can read live content from a customer's Strapi CMS, analyze it, and write optimized titles, metadata, and body copy back directly — turning recommendations into one-click publishes.
Push generated assets into customers' media libraries
DAM tools, AI image generators, and design platforms can offer an 'Export to Strapi' action that uploads files into the customer's Strapi Media Library and attaches them to the right content entry.
Surface help center content in support widgets
Customer support and in-app widget platforms can pull FAQs and support articles from a customer's Strapi instance and display them natively, without forcing teams to duplicate knowledge bases.
Automate user and role provisioning into Strapi
Identity, SSO, and HR platforms can use the Unified User Directory API to create, update, and revoke Strapi users and roles whenever employees are onboarded or offboarded — keeping knowledge base access in sync.
What You Can Build
Ship these features with Truto + Strapi
Concrete product features your team can ship faster by leveraging Truto’s Strapi integration instead of building from scratch.
Dynamic content type sync
Fetch, create, and update entries across any custom Strapi content type using the document endpoints, with the plural_api_id resolved per-customer at runtime.
Contextual media uploads
Upload files to a customer's Strapi Media Library and attach them to a specific entry and field using ref, refId, and field parameters in a single call.
Two-way content publishing
Pull documents into your product for editing, translation, or enrichment, then write changes back to Strapi using update_a_strapi_document_by_id without leaving your UI.
Unified user and role provisioning
Use the Unified User Directory API to list, create, update, and delete Strapi users and roles alongside other CMS and knowledge tools through one consistent schema.
Auth and session lifecycle management
Trigger Strapi auth flows — register, login session, refresh, logout, password reset, and email confirmation — directly from your app to manage end-user access programmatically.
Media library browser
List, retrieve, and delete files in a customer's Strapi Media Library to power an embedded asset picker or cleanup tooling inside your product.
SuperAI
Strapi AI agent tools
Comprehensive AI agent toolset with fine-grained control. Integrates with MCP clients like Cursor and Claude, or frameworks like LangChain.
create_a_strapi_upload
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 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 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 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 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 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 all uploaded files in Strapi. Returns an array of file objects.
get_single_strapi_upload_file_by_id
Get a single uploaded file in Strapi by id. Returns the file object details. Required: id.
delete_a_strapi_upload_file_by_id
Delete an uploaded file in Strapi by id. Returns an empty response on success. Required: id.
create_a_strapi_auth_register
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
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
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
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
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
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
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
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 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 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 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 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 a strapi user by id. Returns the deleted user object on success. Required: id.
list_all_strapi_users_count
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 all roles in Strapi. Returns an array of role objects from the users-permissions plugin.
get_single_strapi_role_by_id
Get a single Strapi role by id. Returns the role object from the users-permissions plugin. Required: id.
create_a_strapi_role
Create a new role in Strapi via the users-permissions plugin. Returns the created role object.
update_a_strapi_role_by_id
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 a Strapi role by id via the users-permissions plugin. Required: id.
list_all_strapi_permissions
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
Get the profile of the currently authenticated user in Strapi. Returns the user object for the authenticated user.
create_a_strapi_auth_session
Authenticate a Strapi user using local credentials. Returns a jwt token and the authenticated user object.
Why Truto
Why use Truto’s MCP server for Strapi
Other MCP servers give you a static tool list for one app. Truto gives you a managed, multi-tenant MCP infrastructure across 500+ integrations.
Auto-generated, always up to date
Tools are dynamically generated from curated documentation — not hand-coded. As integrations evolve, tools stay current without manual maintenance.
Fine-grained access control
Scope each MCP server to read-only, write-only, specific methods, or tagged tool groups. Expose only what your AI agent needs — nothing more.
Multi-tenant by design
Each MCP server is scoped to a single connected account with its own credentials. The URL itself is the auth token — no shared secrets, no credential leaking across tenants.
Works with every MCP client
Standard JSON-RPC 2.0 protocol. Paste the URL into Claude, ChatGPT, Cursor, or any MCP-compatible agent framework — tools are discovered automatically.
Built-in auth, rate limits, and error handling
Tool calls execute through Truto’s proxy layer with automatic OAuth refresh, rate-limit handling, and normalized error responses. No raw API plumbing in your agent.
Expiring and auditable servers
Create time-limited MCP servers for contractors or automated workflows. Optional dual-auth requires both the URL and a Truto API token for high-security environments.
Unified APIs
Unified APIs for Strapi
Skip writing code for every integration. Use Truto’s category-specific Unified APIs out of the box or customize the mappings with AI.
How It Works
From zero to integrated
Go live with Strapi in under an hour. No boilerplate, no maintenance burden.
Link your customer’s Strapi account
Use Truto’s frontend SDK to connect your customer’s Strapi account. We handle all OAuth and API key flows — you don’t need to create the OAuth app.
We handle authentication
Don’t spend time refreshing access tokens or figuring out secure storage. We handle it and inject credentials into every API request.
Call our API, we call Strapi
Truto’s Proxy API is a 1-to-1 mapping of the Strapi API. You call us, we call Strapi, and pass the response back in the same cycle.
Unified response format
Every response follows a single format across all integrations. We translate Strapi’s pagination into unified cursor-based pagination. Data is always in the result attribute.
FAQs
Common questions about Strapi on Truto
Authentication, rate limits, data freshness, and everything else you need to know before you integrate.
How does authentication to a customer's Strapi instance work?
Truto handles credential collection and storage for each end user's Strapi instance, so you don't need to build or maintain the connection flow. Your app calls Truto's tools with a connection identifier and Truto attaches the right credentials to each request.
Can we work with custom content types that vary per customer?
Yes. Strapi exposes every content type dynamically via its plural_api_id, and the document tools (list, get, create, update, delete) operate against whatever content types a customer has defined — so you can support fully custom schemas at runtime.
Can we upload files and link them to a specific content entry?
Yes. create_a_strapi_upload supports ref (content type), refId (entry ID), and field parameters, which lets you upload a file and attach it to a specific field on a specific entry in one request.
Does the integration support user and role management?
Yes. You can list, create, update, and delete users and roles through Strapi-specific tools, and also access them through Truto's Unified User Directory API for a normalized schema across multiple integrations.
How fresh is the data — is there webhook support?
The current tool set is request-based (REST), so freshness depends on how often your app polls list endpoints like list_all_strapi_documents. If you need event-driven sync, reach out to Truto to discuss adding webhook support.
Does this work with both Strapi Cloud and self-hosted Strapi?
Yes. Strapi exposes the same REST API regardless of hosting, so the integration works against Strapi Cloud and self-hosted instances as long as the API is reachable and the connected user has the right permissions.
From the Blog
Strapi integration guides
Deep dives, architecture guides, and practical tutorials for building Strapi integrations.
Strapi
Get Strapi integrated into your app
Our team understands what it takes to make a Strapi integration successful. A short, crisp 30 minute call with folks who understand the problem.
Talk to us