Skip to main content
Glama

Strapi MCP

Strapi CMS 的 MCP 服务器,通过模型上下文协议提供对内容类型和条目的访问。

概述

此 MCP 服务器与任何 Strapi CMS 实例集成,以提供:

  • 将 Strapi 内容类型作为资源访问

  • 在 Strapi 中创建和更新内容类型的工具

  • 管理内容条目的工具(创建、读取、更新、删除)

  • 在开发模式下支持 Strapi

Related MCP server: Ledger MCP Server

设置

环境变量

建议使用项目根目录中的.env文件来存储您的凭据。

  • STRAPI_URL :您的 Strapi 实例的 URL(默认值: http://localhost:1337

  • STRAPI_ADMIN_EMAIL :Strapi 管理员用户的电子邮件地址(建议使用完整功能,尤其是架构访问)。

  • STRAPI_ADMIN_PASSWORD :Strapi 管理员用户的密码(推荐)。

  • STRAPI_API_TOKEN :(可选后备)API 令牌。如果未提供管理员凭据,则可以使用,但权限可能有限。

  • STRAPI_DEV_MODE :设置为"true"以启用开发模式功能(默认为false )。

示例

STRAPI_URL=http://localhost:1337 STRAPI_ADMIN_EMAIL=your_admin_email@example.com STRAPI_ADMIN_PASSWORD=your_admin_password # STRAPI_API_TOKEN=your_api_token_here # Optional

**重要提示:**将.env添加到您的.gitignore文件以避免提交凭据。

安装

npm install strapi-mcp

跑步

推荐方法(使用

确保已构建项目( npm run build )。然后使用 Node.js v20.6.0+ 和--env-file标志运行服务器:

node --env-file=.env build/index.js

替代方案(直接使用环境变量):

export STRAPI_URL=http://localhost:1337 export STRAPI_ADMIN_EMAIL=your_admin_email@example.com export STRAPI_ADMIN_PASSWORD=your_admin_password # export STRAPI_API_TOKEN=your-api-token # Optional fallback export STRAPI_DEV_MODE=true # optional # Run the globally installed package (if installed via npm install -g) strapi-mcp # Or run the local build directly node build/index.js

特征

  • 列出并阅读内容类型

  • 获取、创建、更新和删除条目

  • 上传媒体文件

  • 连接和断开关系

  • 获取内容类型架构

变更日志

0.1.6

  • **添加了create_content_type工具:**允许通过 Content-Type Builder API 创建新的内容类型(需要管理员凭据)。

  • **优先管理员凭证:**更新逻辑以优先使用管理员电子邮件/密码来获取内容类型和模式,从而提高可靠性。

  • **更新文档:**澄清身份验证方法和推荐的运行程序。

0.1.5

  • 通过多种后备方法改进内容类型发现

  • 增加了更强大的错误处理和日志记录

  • 增强内容类型的架构推断

0.1.4

  • 使用更具体的错误代码改进错误处理

  • 添加了ResourceNotFoundAccessDenied错误代码

  • 针对常见 API 错误的更好的错误消息

0.1.3

  • 首次公开发布

执照

麻省理工学院

strapi-mcp MCP 服务器

适用于您的 Strapi CMS 的 MCP 服务器

这是一个基于 TypeScript 的 MCP 服务器,与 Strapi CMS 集成。它通过 MCP 协议提供对 Strapi 内容类型和条目的访问,从而允许您:

  • 将 Strapi 内容类型作为资源访问

  • 创建、读取、更新和删除内容条目

  • 通过 MCP 工具管理您的 Strapi 内容

特征

资源

  • 通过strapi://content-type/ URI 列出并访问内容类型

  • 每种内容类型都以 JSON 格式公开其条目

  • 用于结构化内容访问的应用程序/JSON MIME 类型

工具

  • list_content_types - 列出 Strapi 中所有可用的内容类型

  • get_entries - 获取特定内容类型的条目,并可选地进行过滤、分页、排序和关系填充

  • get_entry - 根据 ID 获取特定条目

  • create_entry - 为内容类型创建新条目

  • update_entry - 更新现有条目

  • delete_entry - 删除条目

  • upload_media - 上传媒体文件到 Strapi

  • get_content_type_schema - 获取特定内容类型的模式(字段、类型、关系)。

  • connect_relation - 将相关条目连接到条目的关系字段。

  • disconnect_relation - 将相关条目与条目的关系字段断开。

  • create_content_type - 使用 Content-Type Builder API 创建新的内容类型(需要管理员权限)。

高级功能

过滤、分页和排序

get_entries工具支持高级查询选项:

{ "contentType": "api::article.article", "filters": { "title": { "$contains": "hello" } }, "pagination": { "page": 1, "pageSize": 10 }, "sort": ["title:asc", "createdAt:desc"], "populate": ["author", "categories"] }

资源 URI

可以使用各种 URI 格式访问资源:

  • strapi://content-type/api::article.article - 获取所有文章

  • strapi://content-type/api::article.article/1 - 获取 ID 为 1 的文章

  • strapi://content-type/api::article.article?filters={"title":{"$contains":"hello"}} - 获取过滤后的文章

发展

安装依赖项:

npm install

构建服务器:

npm run build

对于使用自动重建的开发:

npm run watch

安装

有关如何部署和测试此 MCP 服务器的详细分步说明,请参阅DEPLOYMENT.md文件。

快速设置:

  1. 构建服务器: npm run build

  2. 配置你的 Strapi 实例并获取 API 令牌

  3. 将服务器配置添加到 Claude Desktop:

在 MacOS 上: ~/Library/Application Support/Claude/claude_desktop_config.json在 Windows 上: %APPDATA%/Claude/claude_desktop_config.json

{ "mcpServers": { "strapi-mcp": { "command": "/path/to/strapi-mcp/build/index.js", "env": { "STRAPI_URL": "http://localhost:1337", "STRAPI_API_TOKEN": "your-api-token-here", "STRAPI_DEV_MODE": "false" } } } }

环境变量

  • STRAPI_URL (可选): 您的 Strapi 实例的 URL (默认为http://localhost:1337 )

  • STRAPI_ADMIN_EMAILSTRAPI_ADMIN_PASSWORD (推荐):Strapi 管理员用户的凭证。获取内容类型架构等完整功能所必需的。

  • STRAPI_API_TOKEN (可选后备):您的 Strapi API 令牌。如果未提供管理员凭据,则可以使用它,但功能可能会因令牌权限而受到限制。

  • STRAPI_DEV_MODE (可选):设置为“true”以启用开发模式功能(默认为 false)

认证优先级

服务器按以下顺序确定身份验证方法的优先级:

  1. 管理员电子邮件和密码( STRAPI_ADMIN_EMAILSTRAPI_ADMIN_PASSWORD

  2. API 令牌( STRAPI_API_TOKEN

强烈建议使用管理员凭据以获得最佳结果。

获取 Strapi 凭证

  • **管理员凭证:**使用现有超级管理员的电子邮件和密码,或在 Strapi 管理面板(设置 > 管理面板 > 用户)中创建专用管理员用户。

  • **API 令牌:(**可选后备)

  1. 登录您的 Strapi 管理面板

  2. 前往“设置”>“API 令牌”

  3. 点击“创建新的 API 令牌”

  4. 设置名称、描述和令牌类型(最好是“完全访问”)

  5. 复制生成的令牌并在 MCP 服务器配置中使用它

调试

由于 MCP 服务器通过 stdio 进行通信,调试起来可能比较困难。我们推荐使用MCP Inspector ,它以包脚本的形式提供:

npm run inspector

检查器将提供一个 URL 来访问浏览器中的调试工具。

使用示例

一旦 MCP 服务器配置并运行,您就可以使用它与 Claude 与您的 Strapi CMS 进行交互。以下是一些示例:

列出内容类型

use_mcp_tool( server_name: "strapi-mcp", tool_name: "list_content_types", arguments: {} )

获取条目

use_mcp_tool( server_name: "strapi-mcp", tool_name: "get_entries", arguments: { "contentType": "api::article.article", "filters": { "title": { "$contains": "hello" } }, "pagination": { "page": 1, "pageSize": 10 }, "sort": ["title:asc"] } )

创建条目

use_mcp_tool( server_name: "strapi-mcp", tool_name: "create_entry", arguments: { "contentType": "api::article.article", "data": { "title": "My New Article", "content": "This is the content of my article.", "publishedAt": "2023-01-01T00:00:00.000Z" } } )

上传媒体

use_mcp_tool( server_name: "strapi-mcp", tool_name: "upload_media", arguments: { "fileData": "base64-encoded-data-here", "fileName": "image.jpg", "fileType": "image/jpeg" } )

连接关系

use_mcp_tool( server_name: "strapi-mcp", tool_name: "connect_relation", arguments: { "contentType": "api::article.article", "id": "1", "relationField": "authors", "relatedIds": [2, 3] } )

断开关系

use_mcp_tool( server_name: "strapi-mcp", tool_name: "disconnect_relation", arguments: { "contentType": "api::article.article", "id": "1", "relationField": "authors", "relatedIds": [3] } )

创建内容类型

use_mcp_tool( server_name: "strapi-mcp-local", tool_name: "create_content_type", arguments: { "displayName": "My New Product", "singularName": "product", "pluralName": "products", "kind": "collectionType", "description": "Represents products in the store", "draftAndPublish": true, "attributes": { "name": { "type": "string", "required": true }, "description": { "type": "text" }, "price": { "type": "decimal", "required": true }, "stock": { "type": "integer" } } } )

更新内容类型

use_mcp_tool( server_name: "strapi-mcp-local", tool_name: "update_content_type", arguments: { "contentType": "api::speaker.speaker", "attributes": { "isHighlightSpeaker": { "type": "boolean", "default": false }, "newTextField": { "type": "string" } } } )

访问资源

-
security - not tested
A
license - permissive license
-
quality - not tested

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/l33tdawg/strapi-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server