这是一个用于与 Strapi CMS 交互的 Model Context Protocol 服务器。此服务器使AI助手能够通过标准化接口与您的 Strapi 实例进行交互,支持内容类型和 REST API 操作。
<a href="https://glama.ai/mcp/servers/qfdkybxvkp"> <img width="380" height="200" src="https://gips1.baidu.com/it/u=2722077859,1407071218&fm=3081&app=31&f=PNG?w=760&h=400" alt="Strapi Server MCP 服务器" /> </a>⚠️ 重要免责声明:本软件是在人工智能技术的帮助下开发的。它按原样提供,未经彻底测试和验证不应在生产环境中使用。代码可能包含错误、安全漏洞或意外行为。仅限于研究、学习或开发目的使用,并自行承担风险。
完整的版本历史,请参阅 CHANGELOG.md。
您可以在 Claude Desktop 配置中直接使用 npx 来使用此服务器:
{
"mcpServers": {
"strapi": {
"command": "npx",
"args": ["-y", "@bschauer/strapi-mcp-server@2.6.0"]
}
}
}
在 ~/.mcp/strapi-mcp-server.config.json 创建一个配置文件:
{
"myserver": {
"api_url": "http://localhost:1337",
"api_key": "your-jwt-token-from-strapi-admin",
"version": "5.*" // 可选:指定 Strapi 版本(例如:"5.*", "4.1.5", "v4")
}
}
您可以通过添加它们到此文件来配置多个 Strapi 实例。
服务器现在支持各种版本格式:
这有助于服务器提供特定版本的指导并适当处理 API 差异。
strapi_list_servers();
// 现在包括版本信息以及 v4 和 v5 之间的差异
// 从特定服务器获取所有内容类型
strapi_get_content_types({
server: "myserver",
});
// 分页获取组件
strapi_get_components({
server: "myserver",
page: 1,
pageSize: 25,
});
REST API 提供了内置验证和特定版本处理的全面 CRUD 操作:
// 使用过滤器查询内容
strapi_rest({
server: "myserver",
endpoint: "api/articles",
method: "GET",
params: {
filters: {
title: {
$contains: "搜索词",
},
},
},
});
// 创建新内容
strapi_rest({
server: "myserver",
endpoint: "api/articles",
method: "POST",
body: {
data: {
title: "新文章",
content: "文章内容",
category: "新闻",
},
},
});
// 更新内容
strapi_rest({
server: "myserver",
endpoint: "api/articles/123",
method: "PUT",
body: {
data: {
title: "更新标题",
content: "更新内容",
},
},
});
// 删除内容
strapi_rest({
server: "myserver",
endpoint: "api/articles/123",
method: "DELETE",
});
// 上传图像并自动优化
strapi_upload_media({
server: "myserver",
url: "https://example.com/image.jpg",
format: "webp",
quality: 80,
metadata: {
name: "我的图片",
caption: "图片说明",
alternativeText: "替代文本",
},
});
Strapi 版本之间的关键差异,服务器会自动处理:
服务器实现了严格的写保护策略:
strapi_get_content_types// 按字段值过滤
params: {
filters: {
title: "精确匹配";
}
}
// 包含过滤
params: {
filters: {
title: {
$contains: "部分";
}
}
}
// 多条件
params: {
filters: {
$and: [{ category: "新闻" }, { published: true }];
}
}
params: {
sort: ["createdAt:desc"];
}
params: {
pagination: {
page: 1,
pageSize: 25
}
}
// 不带填充的基本请求
params: {
}
// 需要时选择性填充
params: {
populate: ["category"];
}
// 详细填充,选择字段
params: {
populate: {
category: {
fields: ["name", "slug"];
}
}
}
常见问题及其解决方案:
404 错误
认证问题
版本相关问题
写保护错误
欢迎贡献!请随时提交 Pull Request。
MIT