Skip to content

Latest commit

 

History

History
299 lines (222 loc) · 6.38 KB

File metadata and controls

299 lines (222 loc) · 6.38 KB

OpenClaw MCP 集成问题分析与解决方案

问题总结

症状: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

技术分析

MCP 协议的两种传输方式

1. HTTP POST (我们尝试的方式)

客户端                           服务器
  │                               │
  │ ── POST /mcp (initialize) ───>│
  │ <──── 200 OK (session info) ──│
  │                               │
  │ ── POST /mcp (tools/list) ───>│ ❌ 失败
  │                               │
  ❌ 每个请求独立,无法维持会话状态

2. SSE (Server-Sent Events) (xiaohongshu-mcp 使用的方式)

客户端                           服务器
  │                               │
  │ ── POST /mcp (initialize) ───>│
  │ <──── 200 OK ─────────────────│
  │                               │
  │ ── GET /mcp?sessionId=xxx ───>│
  │ <──── SSE 连接建立 ────────────│
  │                               │
  │ <──── event: endpoint ─────────│  (持续接收事件)
  │ <──── event: message ──────────│
  │                               │
  │ ── POST /mcp (tools/list) ───>│ ✅ 成功
  │ <──── SSE: tools/list result ─│
  │                               │
  ✅ 持久连接,会话状态维持

为什么 OpenClaw 无法工作

OpenClaw 的限制

  1. 不支持 SSE 传输

    • OpenClaw 的 Skill 系统基于简单的函数调用
    • 无法建立和维持 SSE 持久连接
    • 不支持异步事件流
  2. 会话状态管理

    • MCP 需要 initialize → 建立 SSE 连接 → 维持会话
    • OpenClaw 无法在不同请求间维持会话状态
  3. 协议兼容性

    • 虽然 OpenClaw 可能支持某种 MCP
    • 但与 xiaohongshu-mcp 使用的 SSE 传输不兼容

解决方案对比

❌ 方案 1: 实现 SSE 客户端 (不适用于 OpenClaw)

为什么不可行

  • OpenClaw Skill 不支持长连接
  • 无法在 Skill 中运行 SSE 事件监听器
  • OpenClaw 的架构限制

适用场景

  • 独立应用
  • Node.js 服务
  • 支持持久连接的环境

✅ 方案 2: 使用支持 MCP 的客户端 (推荐)

推荐的客户端

1. Cursor (最推荐)

// .cursor/mcp.json
{
  "mcpServers": {
    "xiaohongshu-mcp": {
      "url": "http://localhost:18060/mcp",
      "description": "小红书 MCP 服务"
    }
  }
}

优点

  • ✅ 原生支持 MCP
  • ✅ 完美支持 SSE 传输
  • ✅ 已验证可工作
  • ✅ 有图形界面

2. Claude Code CLI

# 添加 MCP 服务器
claude mcp add --transport http xiaohongshu-mcp http://localhost:18060/mcp

# 验证连接
claude mcp list

优点

  • ✅ 官方 CLI 工具
  • ✅ 完整的 MCP 支持
  • ✅ 适合命令行用户

3. Cline

{
  "xiaohongshu-mcp": {
    "url": "http://localhost:18060/mcp",
    "type": "streamableHttp",
    "autoApprove": [],
    "disabled": false
  }
}

优点

  • ✅ 强大的 AI 编程助手
  • ✅ 支持 streamable HTTP
  • ✅ 自然语言操作

4. VSCode

// .vscode/mcp.json
{
  "servers": {
    "xiaohongshu-mcp": {
      "url": "http://localhost:18060/mcp",
      "type": "http"
    }
  }
}

✅ 方案 3: 使用官方 MCP Inspector (调试工具)

# 启动 Inspector
npx @modelcontextprotocol/inspector

# 在浏览器中打开
# http://localhost:6274

# 连接到 xiaohongshu-mcp
# URL: http://localhost:18060/mcp

用途

  • ✅ 测试 MCP 连接
  • ✅ 验证服务器功能
  • ✅ 调试 MCP 问题
  • ❌ 不适合日常使用

❌ 方案 4: 创建代理服务器 (不推荐)

架构

OpenClaw → HTTP API → 代理服务器 → SSE → xiaohongshu-mcp

问题

  • ❌ 需要维护额外的代理服务
  • ❌ 增加系统复杂度
  • ❌ 单点故障
  • ❌ 性能开销

不推荐原因

  • 有更好的替代方案(方案 2)
  • 维护成本高
  • 收益不大

推荐的行动方案

立即可用的方案

  1. 使用 Cursor (最简单)

    • 安装 Cursor
    • 配置 xiaohongshu-mcp
    • 开始使用
  2. 使用 Claude Code (如果你喜欢命令行)

    claude mcp add --transport http xiaohongshu-mcp http://localhost:18060/mcp
  3. 使用 MCP Inspector (仅用于测试)

    npx @modelcontextprotocol/inspector

长期方案

  1. 联系 OpenClaw 团队

    • 请求添加对 SSE 传输的支持
    • 请求改进 MCP 兼容性
  2. 等待 OpenClaw MCP 支持

    • 关注 OpenClaw 更新
    • 等待原生 MCP 支持

总结

关键要点

  1. OpenClaw 不支持 SSE MCP 传输

    • 这是架构限制,无法通过代码解决
  2. xiaohongshu-mcp 已在主流 MCP 客户端中验证

    • Cursor ✅
    • Claude Code ✅
    • Cline ✅
    • VSCode ✅
  3. 最佳方案:使用支持 MCP 的客户端

    • 无需修改 xiaohongshu-mcp
    • 无需创建复杂的代理
    • 开箱即用

下一步

  1. 立即行动:安装 Cursor 或使用 Claude Code
  2. 配置 MCP:添加 xiaohongshu-mcp 服务器地址
  3. 开始使用:享受完整的小红书自动化功能

项目保留价值

虽然 OpenClaw 无法使用,但本项目的代码仍然有价值:

  • ✅ MCP 客户端实现示例
  • ✅ 诊断工具和文档
  • ✅ 为将来 OpenClaw 添加 MCP 支持做准备
  • ✅ 可参考用于其他项目

相关链接