斯特拉皮MCP内容管理工具
通过MCP协议提供对Strapi CMS内容的访问,允许用户通过Claude创建、读取、更新和删除内容条目。
服务介绍
strapi-mcp MCP 服务器
一个用于您的 Strapi CMS 的 MCP 服务器
这是一个基于 TypeScript 的 MCP 服务器,与 Strapi CMS 集成。它通过 MCP 协议提供对 Strapi 内容类型和条目的访问,允许您:
- 将 Strapi 内容类型作为资源访问
- 创建、读取、更新和删除内容条目
- 通过 MCP 工具管理您的 Strapi 内容
功能
资源
- 通过
strapi://content-type/URI 列出和访问内容类型 - 每个内容类型将其条目以 JSON 格式暴露
- 使用 Application/JSON MIME 类型进行结构化内容访问
工具
list_content_types- 列出 Strapi 中所有可用的内容类型get_entries- 获取特定内容类型的条目,并支持可选的过滤、分页、排序和关系填充get_entry- 通过 ID 获取特定条目create_entry- 为内容类型创建新条目update_entry- 更新现有条目delete_entry- 删除条目upload_media- 向 Strapi 上传媒体文件
高级功能
过滤、分页和排序
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 文件。
快速设置:
- 构建服务器:
npm run build - 配置您的 Strapi 实例并获取 API 令牌
- 在 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_API_TOKEN(必需):用于身份验证的 Strapi API 令牌STRAPI_DEV_MODE(可选):设置为 "true" 以启用开发模式功能(默认为 false)
获取 Strapi API 令牌
- 登录到您的 Strapi 管理面板
- 转到设置 > API 令牌
- 点击“创建新的 API 令牌”
- 设置名称、描述和令牌类型(建议选择“完全访问”)
- 复制生成的令牌并在您的 MCP 服务器配置中使用
调试
由于 MCP 服务器通过 stdio 通信,调试可能会比较困难。我们推荐使用 MCP Inspector,它作为一个包脚本可用:
npm run inspector
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"
}
)
访问资源
access_mcp_resource(
server_name: "strapi-mcp",
uri: "strapi://content-type/api::article.article"
)