背景

在本地使用 MCP Router 统一管理 MCP Server(如 filesystem MCP)时,出现启动报错的问题。初衷是通过 Router 统一启动和管理 MCP Server,避免每个 Agent 单独配置 MCP。


踩坑问题

推荐claude code公益站
在这里插入图片描述

  1. 直接通过 Router 启动 filesystem MCP 报错

MCP error -32000: Connection closed

- 通过 Router 启动时,MCP Server 无法正常连接,提示连接被关闭。

2. **直接命令行启动**
```bash
npx -y @modelcontextprotocol/server-filesystem "C:\Users\admin\Downloads"

报错:

Error accessing directory C:\Users\admin\Downloads: Error: ENOENT: no such file or directory
  • 明确提示指定目录不存在。
  1. Node 版本问题

    • Node 24.x 可能存在依赖兼容性问题,但在本例中并非主要原因。
    • 真正问题是目录路径错误。

问题原因分析

  1. 目录路径不存在

    • MCP Filesystem 必须访问系统中真实存在的目录。
    • 配置中写入不存在的目录会导致 MCP Server 启动失败,Router 连接被关闭。
  2. 权限问题

    • 即便目录存在,如果 Router 或 MCP Server 没有权限访问该目录,也会导致启动失败。
  3. Router 与 MCP Server 的连接

    • Router spawn MCP Server 时,如果 MCP Server 启动失败或立即退出,会触发 Connection closed 错误。

解决方案

  1. 确保目录真实存在

    • Windows 用户目录需正确指向当前登录用户。

    • 示例:

      npx -y @modelcontextprotocol/server-filesystem "C:\Users\11345\Downloads" "C:\Users\11345\Pictures" "C:\Users\11345\Desktop" "D:\" "F:\"
      
  2. Router 配置示例

    {
      "mcpServers": {
        "filesystem": {
          "command": "npx",
          "args": [
            "-y",
            "@modelcontextprotocol/server-filesystem",
            "C:\\Users\\11345\\Downloads",
            "C:\\Users\\11345\\Pictures",
            "C:\\Users\\11345\\Desktop",
            "D:\\",
            "F:\\"
          ]
        }
      }
    }
    
  3. 注意事项

    • 每个目录必须真实存在,否则 MCP Server 启动失败。
    • 尽量使用当前用户可访问的目录。
    • 保留 -y 参数以避免交互确认,保证自动化启动。

总结

  • MCP Router 本身不收费,但使用 MCP Server 时目录路径必须真实存在。

  • Windows 下使用 filesystem MCP 时,路径错误是最常见的启动失败原因。

  • 配置完成后,启动日志应显示:

    Secure MCP Filesystem Server running on stdio
    

    表示 MCP Server 已成功启动,可以被 Router 和客户端正常访问。

Logo

火山引擎开发者社区是火山引擎打造的AI技术生态平台,聚焦Agent与大模型开发,提供豆包系列模型(图像/视频/视觉)、智能分析与会话工具,并配套评测集、动手实验室及行业案例库。社区通过技术沙龙、挑战赛等活动促进开发者成长,新用户可领50万Tokens权益,助力构建智能应用。

更多推荐