返回市场
斯特拉pi-mcp服务器

斯特拉pi-mcp服务器

作者:misterboe49 星标更新:2025-07-21

项目介绍

Strapi MCP 服务器

这是一个用于与 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>

⚠️ 重要免责声明:本软件是在人工智能技术的帮助下开发的。它按原样提供,未经彻底测试和验证不应在生产环境中使用。代码可能包含错误、安全漏洞或意外行为。仅限于研究、学习或开发目的使用,并自行承担风险。

更新日志

版本 2.6.0 - 增强验证及调试更新

  • 🔧 实现了带有 McpError 和 ErrorCode 的结构化错误处理
  • ✅ 添加了全面的 Zod 验证以确保运行时类型安全
  • 📊 整合了带有请求跟踪的全面日志系统
  • 🐛 添加了通过环境变量配置的调试模式
  • 🧹 删除了未使用的提示处理器,使代码库更整洁
  • ⬆️ 将所有依赖项更新到最新版本
  • 📖 添加了用于开发工作流程的 DEBUGGING.md 指南
  • 🛡️ 通过更好的输入验证增强了安全性
  • 🚀 通过详细的错误消息改善了开发者体验

完整的版本历史,请参阅 CHANGELOG.md

功能

  • 🔍 架构内省
  • 🔄 支持带验证的 REST API
  • 📸 媒体上传处理
  • 🔐 JWT 认证
  • 📝 内容类型管理
  • 🖼️ 图像处理,包括格式转换
  • 🌐 多服务器支持
  • ✅ 自动架构验证
  • 🔒 写保护策略
  • 📚 集成文档
  • 🔄 版本兼容性管理

安装

您可以在 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 实例。

版本配置

服务器现在支持各种版本格式:

  • 通配符:"5.", "4."
  • 具体:"4.1.5", "5.0.0"
  • 简单:"v4", "v5"

这有助于服务器提供特定版本的指导并适当处理 API 差异。

获取 JWT 令牌

  1. 登录到您的 Strapi 管理面板
  2. 创建具有适当权限的 API 令牌
  3. 将令牌添加到您的配置文件中的相应服务器名称下

使用

列出可用服务器

strapi_list_servers();
// 现在包括版本信息以及 v4 和 v5 之间的差异

内容类型

// 从特定服务器获取所有内容类型
strapi_get_content_types({
  server: "myserver",
});

// 分页获取组件
strapi_get_components({
  server: "myserver",
  page: 1,
  pageSize: 25,
});

REST API

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: "替代文本",
  },
});

版本差异 (v4 vs v5)

Strapi 版本之间的关键差异,服务器会自动处理:

v4

  • 使用数字ID
  • 嵌套属性结构
  • 响应中的数据包装
  • 传统的 REST 模式
  • 外部 i18n 插件

v5

  • 文档型ID
  • 平坦的数据结构
  • 直接属性访问
  • 增强的 JWT 安全性
  • 内置 i18n 支持
  • 新的文档服务 API

安全特性

写保护策略

服务器实现了严格的写保护策略:

  • 所有写操作都需要明确授权
  • 受保护的操作包括:
    • POST (创建)
    • PUT (更新)
    • DELETE
    • 媒体上传
  • 每个操作都会被记录和验证

最佳实践

  1. 在查询之前始终检查架构,使用 strapi_get_content_types
  2. 使用适当的复数/单数形式的端点
  3. 在查询中包含错误处理
  4. 上传前验证 URL
  5. 从最小的查询开始,仅在需要时添加填充
  6. 更新时始终包含完整的数据对象
  7. 使用过滤器优化查询性能
  8. 利用内置的架构验证
  9. 检查操作的版本兼容性
  10. 遵循写保护策略指南

REST API 技巧

过滤

// 按字段值过滤
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"];
    }
  }
}

故障排除

常见问题及其解决方案:

  1. 404 错误

    • 检查端点的复数/单数形式
    • 验证内容类型是否存在
    • 确保 API URL 正确
    • 检查是否使用正确的 ID 格式(数字 vs 文档型)
  2. 认证问题

    • 验证 JWT 令牌有效
    • 检查令牌权限
    • 确保令牌未过期
  3. 版本相关问题

    • 验证配置中的版本规范
    • 检查数据结构是否符合版本
    • 查看版本差异文档
  4. 写保护错误

    • 确保操作已授权
    • 检查操作是否受保护
    • 验证请求遵循安全策略

贡献

欢迎贡献!请随时提交 Pull Request。

许可证

MIT