Skip to content

Commit a3b573c

Browse files
authored
Strapi MCP server for content management (#3194)
1 parent bcc52d3 commit a3b573c

14 files changed

Lines changed: 1135 additions & 141 deletions

File tree

.gitignore

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1 +1,3 @@
11
.claude/
2+
.superpowers/
3+
docs/superpowers/

agents/prompts/style-checker.md

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -209,6 +209,10 @@ Beyond the 12 rules, also check for:
209209
- In TabItems: `value` must be lowercase (`yarn`, `npm`), `label` must be `Yarn` or `NPM`
210210
- Do NOT flag these as inconsistencies when used correctly per context.
211211

212+
### Strapi terminology
213+
- **Detect:** Internationalization (i18n) referred to as a "plugin" instead of a "feature". Since Strapi 5, i18n is a core feature, not a plugin. Also watch for other core features (Upload, Content Manager, Content-Type Builder) being called "plugins".
214+
- **Severity:** warning
215+
212216
### Cross-reference formatting
213217
- **Detect:** Standalone "See [link]." sentences that could be integrated as parentheticals into the preceding sentence (e.g., "Configure X. See [Y]." → "Configure X (see [Y]).")
214218
- **Severity:** warning
Lines changed: 113 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,113 @@
1+
---
2+
title: Docs MCP server
3+
description: Connect an MCP server for the Strapi documentation to your IDE for Strapi-aware code suggestions and answers.
4+
sidebar_label: Docs MCP server
5+
displayed_sidebar: cmsSidebar
6+
tags:
7+
- ai
8+
- MCP
9+
- developer tools
10+
toc_max_heading_level: 3
11+
---
12+
13+
import Tabs from '@theme/Tabs';
14+
import TabItem from '@theme/TabItem';
15+
16+
# Docs MCP server
17+
18+
<Tldr>
19+
20+
A Docs MCP server exposes the Strapi documentation to AI coding tools. Connect it to your IDE to get Strapi-aware code suggestions and answers directly in your development environment.
21+
22+
</Tldr>
23+
24+
The Docs [MCP](https://modelcontextprotocol.io) (Model Context Protocol) server is powered by [Kapa](https://kapa.ai), the same service behind the **Ask AI** button on the documentation website. It draws from the full Strapi documentation, including guides, API references, and code examples. The Docs MCP server is part of the [AI tools for developers](/cms/ai/for-developers) that Strapi offers.
25+
26+
:::strapi MCP servers for Strapi
27+
Strapi offers 2 different MCP servers:
28+
29+
- the Docs MCP server, covered on the present page,
30+
- and the Strapi MCP server for content management, covered on its [dedicated feature page](/cms/features/strapi-mcp-server).
31+
:::
32+
33+
## Compatible tools
34+
35+
The MCP server works with any tool that supports the MCP protocol, including:
36+
37+
- [Cursor](https://cursor.com)
38+
- [VS Code](https://code.visualstudio.com) with GitHub Copilot
39+
- [Claude Code](https://docs.anthropic.com/en/docs/claude-code)
40+
- [Windsurf](https://codeium.com/windsurf)
41+
- Any other MCP-compatible IDE or tool
42+
43+
## Connection details
44+
45+
When opening the Ask AI window, you should see a **Use MCP** dropdown in the top right corner. Click on it and choose which tool you'd like to connect:
46+
47+
<ThemedImage
48+
alt="Ask AI modal with Use MCP options highlighted"
49+
sources={{
50+
light: '/img/assets/ai/use-mcp-button.png',
51+
dark: '/img/assets/ai/use-mcp-button.png',
52+
}}
53+
/>
54+
55+
If manual MCP server configuration is required:
56+
57+
1. Click the **Copy MCP URL** from the dropdown. The server URL should be: `https://strapi-docs.mcp.kapa.ai`
58+
2. Add the server to your IDE's MCP configuration file:
59+
60+
<Tabs>
61+
<TabItem value="cursor" label="Cursor">
62+
63+
Add to your `.cursor/mcp.json` file:
64+
65+
```json title=".cursor/mcp.json"
66+
{
67+
"mcpServers": {
68+
"strapi-docs": {
69+
"url": "https://strapi-docs.mcp.kapa.ai"
70+
}
71+
}
72+
}
73+
```
74+
75+
</TabItem>
76+
<TabItem value="vscode" label="VS Code">
77+
78+
Add to your `.vscode/mcp.json` file:
79+
80+
```json title=".vscode/mcp.json"
81+
{
82+
"servers": {
83+
"strapi-docs": {
84+
"type": "http",
85+
"url": "https://strapi-docs.mcp.kapa.ai"
86+
}
87+
}
88+
}
89+
```
90+
91+
</TabItem>
92+
<TabItem value="windsurf" label="Windsurf">
93+
94+
Add to your `~/.codeium/windsurf/mcp_config.json` file:
95+
96+
```json title="~/.codeium/windsurf/mcp_config.json"
97+
{
98+
"mcpServers": {
99+
"strapi-docs": {
100+
"serverUrl": "https://strapi-docs.mcp.kapa.ai"
101+
}
102+
}
103+
}
104+
```
105+
106+
</TabItem>
107+
</Tabs>
108+
109+
Once connected, your AI coding assistant can query the Strapi documentation directly to answer questions, suggest implementations, and verify API usage.
110+
111+
:::tip
112+
For docs-related questions, start your prompts with `Use the strapi-docs MCP server to answer:`. This will ensure the tool queries docs.strapi.io instead of returning answers based on its training data, which can be outdated.
113+
:::

docusaurus/docs/cms/ai/for-content-managers.md

Lines changed: 18 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,12 @@
11
---
2-
title: Strapi AI for content managers
3-
description: Learn about AI-powered features in the Strapi admin panel, such as content-type design, automatic translations, and media metadata generation.
2+
title: AI for content managers
3+
description: Learn about AI-powered features in the Strapi admin panel and the built-in MCP server that lets AI clients manage your content.
44
sidebar_label: AI for content managers
55
displayed_sidebar: cmsSidebar
66
tags:
77
- ai
88
- features
9+
- MCP
910
- Content-Type Builder
1011
- Internationalization (i18n)
1112
- Media Library
@@ -15,13 +16,17 @@ toc_max_heading_level: 3
1516

1617
import StrapiAiCredits from '/docs/snippets/strapi-ai-credits.md'
1718

18-
# Strapi AI for content management
19+
# AI for content managers
20+
21+
This page covers the AI-powered capabilities available to content managers in Strapi: the Strapi AI features built into the admin panel, and the MCP server that lets AI clients manage your content.
22+
23+
## Strapi AI
1924

2025
<GrowthBadge /> <VersionBadge version="5.30+" />
2126

2227
Some Strapi CMS features can be enhanced with Strapi AI, helping content managers and administrators design content structures, translate content automatically, and generate asset metadata, all from the admin panel.
2328

24-
## Activation and configuration {#activation}
29+
### Activation and configuration {#activation}
2530

2631
Strapi AI is available for Growth plan users since Strapi 5.30 and works with both Strapi Cloud and self-hosted deployments. To get started:
2732

@@ -42,14 +47,15 @@ module.exports = {
4247

4348
<Icon name="arrow-fat-right"/> See [Admin panel configuration > Strapi AI](/cms/configurations/admin-panel#strapi-ai) for all configuration options.
4449

45-
## Available features {#features}
50+
### Available features {#features}
4651

4752
| Feature | Description |
4853
|---------|-------------|
4954
| [Content-Type Builder](/cms/features/content-type-builder#strapi-ai) | AI chat assistant that helps design content-type structures, explain existing schemas, and plan data models. Uses your existing content types as context. |
5055
| [Internationalization](/cms/features/internationalization#ai-powered-internationalization) | Automatically translates content from the default locale to all other configured locales when you save an entry. |
5156
| [Media Library](/cms/features/media-library#ai-powered-metadata-generation) | Generates alternative text, captions, and descriptions for uploaded images. |
52-
## Credits and data handling {#credits}
57+
58+
### Credits and data handling {#credits}
5359

5460
Strapi AI features consume AI credits.
5561

@@ -58,3 +64,9 @@ Strapi AI features consume AI credits.
5864
All AI requests are processed through Strapi-managed infrastructure. Content is only used temporarily during each request and is not stored outside your instance. Strapi AI follows the same GDPR-aligned framework as Strapi Cloud.
5965

6066
<Icon name="arrow-fat-right" /> See [Usage information > Strapi AI data handling](/cms/usage-information#strapi-ai-data-handling) for more details.
67+
68+
## Strapi MCP server
69+
70+
Strapi includes a built-in [Model Context Protocol (MCP)](https://modelcontextprotocol.io) server that lets AI clients like Claude, Cursor, or any MCP-compatible tool manage your content through natural language. Once enabled and connected, an AI client can create, read, update, delete, publish, and unpublish entries directly through Strapi's Content Manager, all gated by Admin token permissions.
71+
72+
<CustomDocCard icon="feather" title="MCP server" description="Learn how to enable, configure, connect to, and use Strapi's built-in MCP server." link="/cms/features/strapi-mcp-server" />

docusaurus/docs/cms/ai/for-developers.md

Lines changed: 8 additions & 65 deletions
Original file line numberDiff line numberDiff line change
@@ -104,77 +104,20 @@ This is particularly useful for understanding configuration examples, API respon
104104
- **`llms-full.txt`**: Use this when you need the AI to have access to the complete documentation content. This is a large file; make sure your model's context window can handle it.
105105
- **`llms-code.txt`**: Use this when you're working on code and want to give an AI all of Strapi's documented code examples. Each snippet includes the source page URL and anchor for traceability.
106106

107-
## Docs MCP server {#docs-mcp}
107+
## MCP servers {#mcp}
108108

109-
A [Model Context Protocol (MCP)](https://modelcontextprotocol.io) server for the documentation is available. The Docs MCP server exposes the Strapi documentation to AI coding tools. Connect it to your IDE to get Strapi-aware code suggestions and answers directly in your development environment.
109+
The [Model Context Protocol (MCP)](https://modelcontextprotocol.io) is an open standard that lets AI tools interact with external services. 2 MCP servers are available for Strapi:
110110

111-
### Compatible tools
112-
113-
The MCP server works with any tool that supports the MCP protocol, including:
114-
115-
- [Cursor](https://cursor.com)
116-
- [VS Code](https://code.visualstudio.com) with GitHub Copilot
117-
- [Claude Code](https://docs.anthropic.com/en/docs/claude-code)
118-
- [Windsurf](https://codeium.com/windsurf)
119-
- Any other MCP-compatible IDE or tool
120-
121-
### Connection details
122-
123-
When opening the Ask AI window, you should see a **Use MCP** dropdown in the top right corner. Click on it and choose which tool you'd like to connect:
124-
125-
<ThemedImage
126-
alt="Ask AI modal with Use MCP options higlighted"
127-
sources={{
128-
light: '/img/assets/ai/use-mcp-button.png',
129-
dark: '/img/assets/ai/use-mcp-button.png',
130-
}}
131-
/>
132-
133-
If manual MCP server configuration is required:
134-
135-
1. Click the **Copy MCP URL** from the dropdown. The server URL should be: `https://strapi-docs.mcp.kapa.ai`
136-
2. Update the MCP server configuration in your IDE:
137-
138-
<Tabs>
139-
<TabItem value="cursor" label="Cursor">
140-
141-
Add to your `.cursor/mcp.json` file:
142-
143-
```json title=".cursor/mcp.json"
144-
{
145-
"mcpServers": {
146-
"strapi-docs": {
147-
"url": "https://strapi-docs.mcp.kapa.ai"
148-
}
149-
}
150-
}
151-
```
152-
153-
</TabItem>
154-
<TabItem value="vscode" label="VS Code">
155-
156-
Add to your `.vscode/mcp.json` file:
157-
158-
```json title=".vscode/mcp.json"
159-
{
160-
"servers": {
161-
"strapi-docs": {
162-
"type": "http",
163-
"url": "https://strapi-docs.mcp.kapa.ai"
164-
}
165-
}
166-
}
167-
```
168-
169-
</TabItem>
170-
</Tabs>
171-
172-
Once connected, your AI coding assistant can query the Strapi documentation directly to answer questions, suggest implementations, and verify API usage.
111+
<CustomDocCardsWrapper>
112+
<CustomDocCard icon="feather" title="Strapi MCP server" description="Connect AI clients to your Strapi instance to manage content through natural language." link="/cms/features/strapi-mcp-server" />
113+
<CustomDocCard icon="book-open" title="Docs MCP server" description="Connect the Strapi documentation to your IDE for up-to-date, reliable information." link="/cms/ai/docs-mcp-server" />
114+
</CustomDocCardsWrapper>
173115

174116
## Tips for better results {#tips}
175117

118+
The following tips will help you fine-tune your prompts to get the best results:
119+
- Use the [Docs MCP server](/cms/ai/docs-mcp-server) in your IDE for the fastest developer experience. For docs-related questions, prefix your prompt with `Use the strapi-docs MCP server to answer:` so the tool queries docs.strapi.io instead of using potentially outdated training data.
176120
- Include the page URL so the assistant grounds its answer in the right context.
177121
- Mention your Strapi version (e.g., Strapi 5) to avoid outdated suggestions.
178122
- Pair code examples with their source page when sharing snippets from `llms-code.txt`.
179123
- Prefer documented APIs over private internals when asking for code generation.
180-
- Use the MCP server in your IDE for the fastest developer experience.

docusaurus/docs/cms/configurations/features.md

Lines changed: 9 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -35,16 +35,16 @@ To enable a future flag:
3535

3636
1. (_optional_) If the server is running, stop it with `Ctrl-C`.
3737
2. Open the `config/features.js|ts` file or create it if the file does not exist yet. The file will export a `future` object with all the future flags to enable.
38-
3. To enable a future flag, add its property name (see [full list](#available-future-flags)) to the `future` object and ensure the property's value is set to `true`. The following example shows how to enable the `adminTokens` future flag:
38+
3. To enable a future flag, add its property name (see [full list](#available-future-flags)) to the `future` object and ensure the property's value is set to `true`. The following example shows how to enable the `experimental_firstPublishedAt` future flag:
3939

4040
<Tabs groupId='js-ts'>
4141

4242
<TabItem value="js" label="JavaScript">
4343

44-
```ts title="/config/features.ts"
44+
```js title="/config/features.js"
4545
module.exports = ({ env }) => ({
4646
future: {
47-
adminTokens: env.bool('STRAPI_FUTURE_ADMIN_TOKENS', false),
47+
experimental_firstPublishedAt: env.bool('STRAPI_FUTURE_EXPERIMENTAL_FIRST_PUBLISHED_AT', false),
4848
},
4949
})
5050

@@ -53,27 +53,27 @@ To enable a future flag:
5353
This example assumes that you have an `.env` environment file at the root of your application and that the file includes the following line:
5454

5555
```json title=".env"
56-
STRAPI_FUTURE_ADMIN_TOKENS=true
56+
STRAPI_FUTURE_EXPERIMENTAL_FIRST_PUBLISHED_AT=true
5757
```
5858

59-
If your environment file does not include this value, the `adminTokens` future flag property value will default to `false` and the experimental feature will not be enabled.
59+
If your environment file does not include this value, the `experimental_firstPublishedAt` future flag property value will default to `false` and the experimental feature will not be enabled.
6060

6161
</TabItem>
6262

6363
<TabItem value="ts" label="TypeScript">
6464

6565
```ts title="/config/features.ts"
66-
export default {
66+
export default ({ env }) => ({
6767
future: {
68-
adminTokens: env.bool('STRAPI_FUTURE_ADMIN_TOKENS', false),
68+
experimental_firstPublishedAt: env.bool('STRAPI_FUTURE_EXPERIMENTAL_FIRST_PUBLISHED_AT', false),
6969
},
70-
};
70+
});
7171
```
7272

7373
This example assumes that you have an `.env` environment file at the root of your application and that the file includes the following line:
7474

7575
```json title=".env"
76-
STRAPI_FUTURE_ADMIN_TOKENS=true
76+
STRAPI_FUTURE_EXPERIMENTAL_FIRST_PUBLISHED_AT=true
7777
```
7878

7979
If your environment file does not include this value, the `experimental_firstPublishedAt` future flag property value will default to `false` and the experimental feature will not be enabled.
@@ -112,5 +112,4 @@ Developers can use the following APIs to interact with future flags:
112112
| Property name | Related feature | Suggested environment variable name |
113113
| ------------- | --------------- | ---------------------------------- |
114114
| `experimental_firstPublishedAt` | [Draft & Publish](/cms/features/draft-and-publish#recording-the-first-publication-date) | `STRAPI_FUTURE_EXPERIMENTAL_FIRST_PUBLISHED_AT` |
115-
| `adminTokens` | [Admin Tokens](/cms/features/admin-tokens) | `STRAPI_FUTURE_ADMIN_TOKENS` |
116115

docusaurus/docs/cms/faq.md

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ tags:
2424

2525
---
2626

27-
# Frequently Asked Questions
27+
# Frequently asked questions
2828

2929
Below are answers and solutions to most common issues that you may experience when working with Strapi.
3030

@@ -170,5 +170,6 @@ See the [Docker installation guide](/cms/installation/docker) for full Dockerfil
170170

171171
## Is there an MCP server for Strapi?
172172

173-
A Strapi MCP (<ExternalLink to="https://www.anthropic.com/news/model-context-protocol" text="Model Context Protocol" />) server is in [development](https://github.com/strapi/strapi/discussions/25398) and will be available soon.
174-
Meanwhile, a different [MCP server for Strapi Docs](https://docs.strapi.io/cms/ai/for-developers#docs-mcp) is already available.
173+
Yes. Strapi includes a built-in [Model Context Protocol (MCP)](https://modelcontextprotocol.io) server that exposes content management tools to AI clients. See the [MCP server feature page](/cms/features/strapi-mcp-server) for configuration and usage details.
174+
175+
A separate [Docs MCP server](/cms/ai/docs-mcp-server) is also available for querying the Strapi documentation.

0 commit comments

Comments
 (0)