Strapi MCP Server 使用说明
项目简介
Strapi MCP Server 是一个基于 Model Context Protocol (MCP) 构建的服务器,旨在为 AI 助手提供与 Strapi CMS 系统交互的标准接口。通过此服务器,AI 助手可以安全、便捷地访问和管理 Strapi CMS 中的内容,执行内容查询、创建、更新、删除等操作,并上传媒体文件。它充当了 LLM 客户端和 Strapi CMS 之间的桥梁,使得 AI 应用能够利用 Strapi CMS 强大的内容管理能力。
主要功能点
- Schema 内省 (Schema Introspection): 允许 AI 助手获取 Strapi CMS 的内容结构信息,例如内容类型和字段定义,帮助 AI 理解数据模型。
- REST API 支持: 支持全面的 Strapi REST API 操作,包括内容的增删改查 (CRUD) 功能,并提供数据验证。
- 媒体上传处理: 支持将图片等多媒体文件上传到 Strapi CMS 的媒体库,并可进行格式转换和优化。
- JWT 认证: 使用 JWT (JSON Web Token) 进行身份验证,确保访问安全。
- 内容类型管理: 支持对 Strapi CMS 中的内容类型进行管理和操作。
- 图片处理: 支持图片格式转换 (如转换为 WebP) 和质量控制。
- 多服务器支持: 可以配置和连接到多个 Strapi CMS 实例。
- 自动 Schema 验证: 对请求进行 Schema 验证,确保数据格式正确。
- 写入保护策略: 实施严格的写入保护策略,所有写入操作都需要显式授权。
- 集成文档: 将服务器的文档集成到服务器能力声明中,方便客户端查阅。
- 版本兼容性管理: 支持 Strapi v4 和 v5 版本,并处理版本差异。
安装步骤
- 安装 Strapi MCP Server: 您可以使用 'npx' 命令直接运行 Strapi MCP Server,无需全局安装。
服务器配置
为了让 MCP 客户端(如 Claude Desktop)连接到 Strapi MCP Server,您需要在客户端的 MCP 服务器配置中添加以下信息。 在 Claude Desktop 的配置 JSON 文件中,'mcpServers' 部分添加 Strapi 服务器配置:
{ "mcpServers": { "strapi": { "command": "npx", "args": ["-y", "@bschauer/[email protected]"] } } }
配置参数说明:
- 'server name':'strapi' (您可以自定义服务器名称)
- 'command': 'npx' (Node Package Execute,用于执行 npm 包)
- 'args': '["-y", "@bschauer/[email protected]"]'
- '-y': 'npx' 的参数,表示自动确认安装包。
- '@bschauer/[email protected]': 要执行的 npm 包及其版本号。
Strapi 服务器实例配置: Strapi MCP Server 需要连接到您的 Strapi CMS 实例才能工作。您需要在 '~/.mcp/strapi-mcp-server.config.json' 文件中配置 Strapi 服务器的连接信息。如果该文件不存在,请手动创建。
配置文件示例:
{ "myserver": { "api_url": "http://localhost:1337", "api_key": "your-jwt-token-from-strapi-admin", "version": "5.*" // 可选:指定 Strapi 版本 (例如 "5.*", "4.1.5", "v4") }, "anotherserver": { "api_url": "https://your-strapi-instance.com", "api_key": "another-jwt-token", "version": "v4" } }
配置文件参数说明:
- 'myserver', 'anotherserver': 服务器名称,您可以自定义,客户端工具(如工具调用)会使用此名称来指定要连接的 Strapi 实例。
- 'api_url': 您的 Strapi CMS 实例的 API 地址。例如 'http://localhost:1337' 或 'https://your-strapi-instance.com'。
- 'api_key': 用于身份验证的 JWT (JSON Web Token)。您需要在 Strapi 后台管理员界面创建 API Token 并复制到此处。
- 'version' (可选): 您的 Strapi CMS 版本。例如 '"5.*"', '"4.1.5"', '"v4"'。如果未指定,默认使用 'v4' 版本。
获取 JWT Token 步骤:
- 登录到您的 Strapi CMS 管理后台。
- 导航到 “Settings” (设置) -> “API Tokens” (API 令牌)。
- 创建一个新的 API Token,并为其分配合适的权限(根据您的使用需求)。
- 复制生成的 API Token,并将其粘贴到 'strapi-mcp-server.config.json' 文件中。
基本使用方法
Strapi MCP Server 提供了一系列工具 (Tools) 来与 Strapi CMS 交互。以下是一些基本的使用示例:
-
列出可用的 Strapi 服务器: 使用 'strapi_list_servers()' 工具可以列出在配置文件中配置的所有 Strapi 服务器实例及其版本信息。
strapi_list_servers(); -
获取内容类型: 使用 'strapi_get_content_types()' 工具可以获取指定 Strapi 服务器的所有内容类型 Schema 信息。
strapi_get_content_types({ server: "myserver" }); -
获取组件: 使用 'strapi_get_components()' 工具可以分页获取指定 Strapi 服务器的组件信息。
strapi_get_components({ server: "myserver", page: 1, pageSize: 25 }); -
执行 REST API 请求: 使用 'strapi_rest()' 工具可以执行自定义的 REST API 请求,例如查询、创建、更新或删除内容。
// 查询文章列表 strapi_rest({ server: "myserver", endpoint: "api/articles", method: "GET" }); // 创建新文章 (需要用户授权 userAuthorized: true) strapi_rest({ server: "myserver", endpoint: "api/articles", method: "POST", body: { data: { title: "New Article", content: "Article content" } }, userAuthorized: true }); -
上传媒体文件: 使用 'strapi_upload_media()' 工具可以上传图片等多媒体文件到 Strapi 媒体库。
strapi_upload_media({ server: "myserver", url: "https://example.com/image.jpg", format: "webp", quality: 80, metadata: { name: "My Image" }, userAuthorized: true // 需要用户授权 userAuthorized: true });
重要提示:
- 对于所有写入操作 (POST, PUT, DELETE) 和媒体上传操作,'strapi_rest' 和 'strapi_upload_media' 工具都需要显式的用户授权 ('userAuthorized: true')。客户端应用需要先获得用户许可,才能执行这些操作,以确保数据安全。
- 请务必参考 Strapi MCP Server 的完整文档和示例,以了解更多高级用法和配置选项。
信息
分类
开发者工具