[特殊字符] 实战复盘:在 Windows 上从零部署小红书 MCP 服务并解决 Defender 拦截难题
个人实战分析分享
🚀 实战复盘:在 Windows 上从零部署小红书 MCP 服务并解决 Defender 拦截难题
📝 前言
在自动化和 AI Agent 领域,MCP (Model Context Protocol) 正成为连接大模型与外部数据的桥梁。最近,我尝试在 Windows 环境下部署开源项目 xpzouying/xiaohongshu-mcp,旨在让 AI 助手具备搜索小红书笔记、分析趋势甚至发布内容的能力。
然而,部署过程并非一帆风顺。从文件迁移到杀毒软件误报,再到端口冲突,每一个坑都是宝贵的经验。本文将完整复盘这次部署流程,重点分享如何解决 Windows Defender 对自动化浏览器的拦截这一核心痛点。
🛠️ 环境准备
- 操作系统: Windows 10/11
- 运行时: Node.js v24+, Python (uv), Go (预编译二进制)
- 目标项目: xpzouying/xiaohongshu-mcp
- 集成平台: OpenClaw (或其他支持 MCP 的 Client)
🔧 核心步骤复盘
第一步:文件迁移与目录构建
首先,我们需要将下载的二进制文件和技能脚本移动到 OpenClaw 的技能目录中。
通过 PowerShell 的 Copy-Item 和 Move-Item 命令,我们将以下关键文件部署到了 D:\OpenClaw\...\skills\xiaohongshu-mcp:
- 技能定义文件:
SKILL.md,_meta.json,scripts/ - 核心二进制:
xiaohongshu-login-windows-amd64.exe(扫码登录工具)xiaohongshu-mcp-windows-amd64.exe(MCP 服务端)
💡 经验点: 使用 PowerShell 脚本进行批量移动和验证(检查文件大小、是否存在),比手动复制更可靠,能有效避免路径错误。
第二步:遭遇“拦路虎”——Windows Defender 误报
这是本次部署最大的挑战。当我们首次运行登录工具 .\xiaohongshu-login-windows-amd64.exe 时,程序崩溃并抛出 Panic 错误:
panic: fork/exec .../leakless.exe: Operation did not complete successfully because the file contains a virus or potentially unwanted software.
原因分析:
该工具基于 go-rod 库,需要动态下载 Chromium 浏览器内核以及一个名为 leakless.exe 的辅助进程来防止浏览器泄漏。Windows Defender 将这种“程序动态释放并执行另一个 exe”的行为判定为潜在威胁,直接拦截了 leakless.exe 的运行。
✅ 解决方案:添加排除项 (Whitelist)
必须以管理员身份运行 PowerShell,将技能目录添加到 Defender 的排除列表中:
$exclusionPath = "D:\OpenClaw\node-v24.14.0-win-x64\node_modules\openclaw\skills\xiaohongshu-mcp"
Add-MpPreference -ExclusionPath $exclusionPath
同时,清理了之前下载失败的浏览器缓存 (%APPDATA%\rod),确保下次启动时重新干净下载。
结果:再次运行登录工具,浏览器窗口正常弹出,扫码后显示 登录成功!,Cookie 成功保存。
第三步:启动服务与端口冲突处理
登录成功后,启动主服务:
.\xiaohongshu-mcp-windows-amd64.exe
此时遇到了第二个常见错误:
level=error msg="服务器启动失败: listen tcp :18060: bind: Only one usage of each socket address..."
原因分析:端口 18060 已被占用。这通常是因为之前的测试进程没有正常关闭,或者在后台已经有一个实例在运行。
✅ 解决方案:暴力清理与重启
使用 PowerShell 一键查杀相关进程并重启:
# 查找并强制结束所有相关进程
Get-Process | Where-Object { $_.Name -like "*xiaohongshu-mcp*" } | Stop-Process -Force
# 等待端口释放后重新启动
Start-Sleep -Seconds 2
.\xiaohongshu-mcp-windows-amd64.exe
看到日志输出 启动 HTTP 服务器: :18060 且无报错,标志着服务正式上线。
💡 关键知识点总结
1. 为什么自动化工具容易被杀软拦截?
许多 RPA (机器人流程自动化) 和爬虫工具(如 go-rod, puppeteer, selenium)都需要控制浏览器。它们通常会:
- 下载特定版本的浏览器内核。
- 注入驱动进程。
- 模拟用户行为。
这些行为与恶意软件的特征高度重合。在开发调试阶段,**“添加信任目录”**是最高效的解决方式,而不是盲目关闭杀毒软件。
2. 端口占用的排查思路
当遇到 bind: address already in use 时:
- Windows:
Get-Process | Where-Object {...} | Stop-Process或netstat -ano | findstr :18060。 - Linux/Mac:
lsof -i :18060然后kill -9 <PID>。
养成在启动服务前先清理旧进程的习惯,能减少 90% 的启动失败。
3. MCP 服务的黑盒特性
MCP 服务器通常以 HTTP API 或 Stdio 方式运行,不像传统 Web 服务那样有直观的首页。
- 如果
curl http://localhost:18060/返回 404,不代表服务挂了。 - 只要日志显示
Server started且无 Panic,通常意味着它正在等待符合 MCP 协议的特定请求(如initialize,tools/list)。 - 验证连通性的最佳方式是直接在 Client 端(如 OpenClaw)调用一个具体技能。
🎯 最终成果
经过上述排错,系统现已达到以下状态:
- ✅ 持久化登录:扫码一次,长期有效。
- ✅ 稳定运行:服务在 18060 端口静默运行。
- ✅ 功能就绪:AI 现已具备以下能力:
- 🔍 搜索笔记:实时获取小红书热门内容。
- 📊 数据分析:提取点赞、收藏、评论数据。
- 📝 内容发布:自动化图文/视频发布流程。
🔚 结语
在 Windows 上部署涉及底层浏览器控制的自动化工具,权限管理和进程管理是两个核心关卡。希望这篇复盘能帮助大家在搭建类似的 MCP 服务时少走弯路。
作者:茶海虾王
日期:2026-03-30
更多推荐

所有评论(0)