症状:OpenClaw 无法通过 MCP 调用 xiaohongshu-mcp 的登录接口
根本原因:xiaohongshu-mcp 使用 SSE (Server-Sent Events) 传输,而不是简单的 HTTP POST 请求
[测试 1] 检查 MCP 服务器连接
✅ MCP 服务器正常运行
[测试 2] MCP 初始化
✅ 成功
会话信息: {
"protocolVersion": "2024-11-05",
"serverInfo": {
"name": "xiaohongshu-mcp",
"version": "2.0.0"
}
}
[测试 3] 获取工具列表 (不发送 initialized)
❌ MCP Error: method "tools/list" is invalid during session initialization
客户端 服务器
│ │
│ ── POST /mcp (initialize) ───>│
│ <──── 200 OK (session info) ──│
│ │
│ ── POST /mcp (tools/list) ───>│ ❌ 失败
│ │
❌ 每个请求独立,无法维持会话状态
客户端 服务器
│ │
│ ── POST /mcp (initialize) ───>│
│ <──── 200 OK ─────────────────│
│ │
│ ── GET /mcp?sessionId=xxx ───>│
│ <──── SSE 连接建立 ────────────│
│ │
│ <──── event: endpoint ─────────│ (持续接收事件)
│ <──── event: message ──────────│
│ │
│ ── POST /mcp (tools/list) ───>│ ✅ 成功
│ <──── SSE: tools/list result ─│
│ │
✅ 持久连接,会话状态维持
-
不支持 SSE 传输
- OpenClaw 的 Skill 系统基于简单的函数调用
- 无法建立和维持 SSE 持久连接
- 不支持异步事件流
-
会话状态管理
- MCP 需要
initialize→ 建立 SSE 连接 → 维持会话 - OpenClaw 无法在不同请求间维持会话状态
- MCP 需要
-
协议兼容性
- 虽然 OpenClaw 可能支持某种 MCP
- 但与 xiaohongshu-mcp 使用的 SSE 传输不兼容
为什么不可行:
- OpenClaw Skill 不支持长连接
- 无法在 Skill 中运行 SSE 事件监听器
- OpenClaw 的架构限制
适用场景:
- 独立应用
- Node.js 服务
- 支持持久连接的环境
推荐的客户端:
// .cursor/mcp.json
{
"mcpServers": {
"xiaohongshu-mcp": {
"url": "http://localhost:18060/mcp",
"description": "小红书 MCP 服务"
}
}
}优点:
- ✅ 原生支持 MCP
- ✅ 完美支持 SSE 传输
- ✅ 已验证可工作
- ✅ 有图形界面
# 添加 MCP 服务器
claude mcp add --transport http xiaohongshu-mcp http://localhost:18060/mcp
# 验证连接
claude mcp list优点:
- ✅ 官方 CLI 工具
- ✅ 完整的 MCP 支持
- ✅ 适合命令行用户
{
"xiaohongshu-mcp": {
"url": "http://localhost:18060/mcp",
"type": "streamableHttp",
"autoApprove": [],
"disabled": false
}
}优点:
- ✅ 强大的 AI 编程助手
- ✅ 支持 streamable HTTP
- ✅ 自然语言操作
// .vscode/mcp.json
{
"servers": {
"xiaohongshu-mcp": {
"url": "http://localhost:18060/mcp",
"type": "http"
}
}
}# 启动 Inspector
npx @modelcontextprotocol/inspector
# 在浏览器中打开
# http://localhost:6274
# 连接到 xiaohongshu-mcp
# URL: http://localhost:18060/mcp用途:
- ✅ 测试 MCP 连接
- ✅ 验证服务器功能
- ✅ 调试 MCP 问题
- ❌ 不适合日常使用
架构:
OpenClaw → HTTP API → 代理服务器 → SSE → xiaohongshu-mcp
问题:
- ❌ 需要维护额外的代理服务
- ❌ 增加系统复杂度
- ❌ 单点故障
- ❌ 性能开销
不推荐原因:
- 有更好的替代方案(方案 2)
- 维护成本高
- 收益不大
-
使用 Cursor (最简单)
- 安装 Cursor
- 配置 xiaohongshu-mcp
- 开始使用
-
使用 Claude Code (如果你喜欢命令行)
claude mcp add --transport http xiaohongshu-mcp http://localhost:18060/mcp
-
使用 MCP Inspector (仅用于测试)
npx @modelcontextprotocol/inspector
-
联系 OpenClaw 团队
- 请求添加对 SSE 传输的支持
- 请求改进 MCP 兼容性
-
等待 OpenClaw MCP 支持
- 关注 OpenClaw 更新
- 等待原生 MCP 支持
-
OpenClaw 不支持 SSE MCP 传输
- 这是架构限制,无法通过代码解决
-
xiaohongshu-mcp 已在主流 MCP 客户端中验证
- Cursor ✅
- Claude Code ✅
- Cline ✅
- VSCode ✅
-
最佳方案:使用支持 MCP 的客户端
- 无需修改 xiaohongshu-mcp
- 无需创建复杂的代理
- 开箱即用
- 立即行动:安装 Cursor 或使用 Claude Code
- 配置 MCP:添加 xiaohongshu-mcp 服务器地址
- 开始使用:享受完整的小红书自动化功能
虽然 OpenClaw 无法使用,但本项目的代码仍然有价值:
- ✅ MCP 客户端实现示例
- ✅ 诊断工具和文档
- ✅ 为将来 OpenClaw 添加 MCP 支持做准备
- ✅ 可参考用于其他项目