Skip to main content
Glama

🚀 YIXZ-MCP 节点聚合管理平台

YIXZ-MCP 是一个轻量级的 Model Context Protocol (MCP) 节点聚合管理工具。它允许你管理多个 MCP 服务节点(支持 SSE 在线服务和本地 stdio 命令),并将它们聚合为一个统一的 SSE 接入地址。

通过这个工具,你只需在xiaozhi.me控制台获取接入地址,填入实例后即可同时使用所有集成的 MCP 工具。

📌 本仓库说明

本仓库是 NasWanke/yixz-mcp-open部署修正版(fork 后修复)。 上游代码在 pnpm 11 + Windows 环境下无法启动,本版修复了该问题,并补充了实测内存数据服务器选型建议。 详细修复内容见文末 🔧 启动问题修复记录

✨ 核心功能

  • 🔗 节点聚合:将分散的 MCP 服务(如本地运行的 Python 脚本、远程 SSE 服务)聚合成单一入口。

  • ⚡ 统一接入:生成标准的 SSE 接入地址,完美兼容 Cursor、Trae 等支持 MCP 的客户端。

  • 🔌 多协议支持

    • SSE (Server-Sent Events): 接入现有的 MCP Web 服务。

    • Stdio (Standard Input/Output): 直接运行本地命令(如 node script.js, python script.py)。

  • 📱 响应式界面:完美适配桌面端和移动端,随时随地管理节点。

  • 🚀 轻量级架构:基于 Node.js + Express + Vue 3,数据存储采用 JSON 文件,无需数据库,部署极简。

Related MCP server: MCP HTTP Proxy

🚀更新日志

v0.0.3 (2025-01-30)

  • 每次添加点节不用再手动重启了,会自动更新

  • 自动更新的时候节点显示"连接中"状态(黄色背景显示)

  • 节点状态自动轮询更新(每2秒),直到显示“已连接”就说明成功了

📝更新说明

更新前请先备份MCP配置文件

# 在项目目录下,请手动备份
./api/data/instances.json

📊 实测数据与服务器选型建议

以下数据均来自真实运行实例的实测(2026-09-06),不是估算。

测试环境

项目

操作系统

Windows 11(10.0.26200)

Node.js

v22.22.2

pnpm / npm

11.5.3 / 10.9.7

启动方式

node_modules\.bin\tsx.cmd api\index.ts

实测资源占用

指标

实测值

说明

服务进程内存(空闲)

102 MB

工作集,此时未连接任何 MCP 实例

前端产物体积

index.html 12.4 KBindex-*.js 146 KBindex-*.css 22 KB*.js.map 841 KB

已构建在 dist/

监听地址

0.0.0.0:3001 + [::]:3001

IPv4 / IPv6 双栈

每个 MCP 子节点

约 100 – 300 MB

通过 StdioClientTransport 派生,npx 类常见 100–200 MB

⚠️ 关键点:真正吃内存的不是服务本体(仅 102 MB),而是你接入的每个 MCP 子节点。评估配置时必须把节点数量算进去: 总内存 ≈ 100 MB + N × (100~300 MB)

功能验证结果(全部通过)

验证项

结果

GET /(首页)

✅ HTTP 200,含 <div id="app"> 挂载点

GET /assets/index-DDefo-a4.js

✅ HTTP 200(页面不会白屏)

GET /assets/index-BLZJsBXW.css

✅ HTTP 200

GET /favicon.svg

✅ HTTP 200

GET /health

{"status":"ok"}

GET /api/network-ip

✅ HTTP 200

SPA 路由回退(任意路径)

✅ HTTP 200

启动日志

✅ 无报错,Server running on port 3001

💡 服务器选型结论(重点:2核2G 够不够?)

结论:2核2G + Windows 是错误搭配,不推荐;同样的 2核2G 换 Linux 则完全够用。

瓶颈是内存,不是 CPU(Node 基本单线程,本应用 CPU 占用极低,2 核绰绰有余)。

配置

系统

OS 占用

应用 + 3 个 MCP 节点

剩余余量

结论

2核2G

Windows Server

1.3 – 1.8 GB

~0.7 GB

≈ 0

不可用,接 1–2 个节点就 OOM

2核2G

Linux

0.2 – 0.3 GB

~0.7 GB

~1.0 GB

推荐

2核4G

Windows Server

~1.5 GB

~0.7 GB

~1.8 GB

✅ 可用(Windows 的实用底线)

2核4G+

Linux

~0.25 GB

~0.7 GB

~3 GB

✅ 宽松

为什么 Windows 不行:Windows Server 空载就要吃掉 1.3–1.8 GB,2 GB 内存几乎被系统占满,留给应用的只剩两三百 MB,随便接个 MCP 子节点就会触发 OOM 并疯狂读写页面文件,表现为"卡死/无响应"。

具体建议

  1. 🥇 首选:2核2G 就装 Linux(Alibaba Cloud Linux 3 / Ubuntu 22.04)。操作系统省下 1 GB 以上,本应用运行从容,还能稳定挂载多个 MCP 节点。而且阿里云 Windows 镜像需额外付许可证费,Linux 免费——省两笔钱。

  2. 若必须用 Windows:最低 2核4G,4核8G 更从容。2G 跑 Windows 生产环境不建议。

  3. 死磕 2G Windows 的唯一办法(不推荐生产):Server Core 无桌面版 + 关闭非必要服务 + 调大页面文件,且只能接 1 个 MCP 节点,仍随时可能 OOM。

🚀 上云部署注意事项

  • 不要直接用 tsx 跑生产tsx 是即时编译 TypeScript,启动慢且多占内存。生产环境应先把 api/ 编译为 JS 再用 node 运行。

  • 不要靠 run_windows.bat 常驻:用 pm2(Linux)或 nssm(Windows)托管为服务,实现崩溃自拉起与开机自启。

  • 放行端口:安全组/防火墙开放 3001(或 Nginx 反向代理到 80/443)。

  • 本仓库已内置 dist/:弱配置服务器可跳过 npm run build,直接启动即可对外服务,省去在 2G 机器上构建的内存压力。

  • ⚠️ 凭证安全(重要)api/data/instances.json存有 MCP 实例的 JWT 凭证,已被 .gitignore 排除;.env 同样已排除。部署前请务必确认没有把这两个文件提交进公开仓库


🛠️ 部署指南

我们提供了三种部署方式,请根据你的使用场景选择最适合的一种:

部署方式

适用场景

难度

维护成本

🚀 一键启动脚本

个人电脑、快速测试

⭐ 简单

🐳 Docker 容器化

服务器、生产环境

⭐⭐ 中等

🌐 服务器面板

VPS 长期运行、已有面板

⭐⭐ 中等


方式一:一键启动脚本 (无 Docker) 🚀

适合人群:个人用户、开发者、想快速体验的用户

系统要求

  • 操作系统:Windows 10+ / macOS / Linux

  • Node.js:v18 或更高版本 (下载地址)

🪟 Windows 用户

  1. 下载项目

    git clone https://github.com/NasWanke/yixz-mcp-open.git
    cd yixz-mcp-open
  2. 一键启动

    • 双击运行 run_windows.bat

    • 脚本会自动完成以下操作:

      • ✅ 检测 Node.js 环境

      • ✅ 安装项目依赖

      • ✅ 构建前端资源

      • ✅ 启动服务

      • ✅ 自动打开浏览器

  3. 访问应用

    • 浏览器会自动打开 http://localhost:3001

    • 如需停止服务,在命令行窗口按 Ctrl + C

🍎 Mac / Linux 用户

  1. 下载项目

    git clone https://github.com/NasWanke/yixz-mcp-open.git
    cd yixz-mcp-open
  2. 赋予执行权限

    chmod +x run_mac.sh
  3. 一键启动

    ./run_mac.sh
  4. 访问应用

    • 浏览器会自动打开 http://localhost:3001

    • 如需停止服务,在终端按 Ctrl + C

⚙️ 脚本功能说明

两个脚本(run_windows.batrun_mac.sh)均提供以下智能功能:

  • 🔍 环境检测:自动检测 Node.js 是否安装

  • 📦 智能依赖管理

    • 首次运行自动安装依赖

    • 已安装依赖时跳过安装步骤

    • 自动检测并使用 pnpm(如果存在)

  • 🏗️ 构建优化

    • 首次运行自动构建前端

    • 已构建时跳过构建步骤

  • 🚀 自动启动:服务启动后自动打开浏览器

  • 🛡️ 错误处理:详细的错误提示和解决方案

📝 常见问题

访问 Node.js 官网 下载 LTS 版本安装。安装完成后重新运行脚本。

可能原因:

  1. 网络问题:尝试配置 npm 镜像源 npm config set registry https://registry.npmmirror.com

  2. 权限问题(Linux/Mac):尝试使用 sudo npm install

  3. Node.js 版本过低:升级到 v18+

删除 dist 文件夹后重新运行脚本即可:

  • Windows: 删除 dist 文件夹

  • Mac/Linux: rm -rf dist


方式二:Docker 容器化部署 🐳

适合人群

  • 熟悉 Docker 的开发者

  • 需要在服务器上部署的用户

  • 希望环境隔离、易于迁移的场景

系统要求

  • Docker:20.10+

  • Docker Compose:2.0+

📦 快速开始

  1. 安装 Docker

    • Windows/Mac:下载 Docker Desktop

    • Linux

      curl -fsSL https://get.docker.com | sh
      sudo usermod -aG docker $USER
  2. 启动服务

    # 克隆项目
    git clone https://github.com/NasWanke/yixz-mcp-open.git
    cd yixz-mcp-open
    
    # 构建并启动(后台运行)
    docker-compose up -d --build
  3. 查看日志

    # 查看实时日志
    docker-compose logs -f
    
    # 查看服务状态
    docker-compose ps
  4. 访问应用

    • 打开浏览器访问 http://localhost:3001

🛠️ Docker 管理命令

# 停止服务
docker-compose stop

# 启动服务
docker-compose start

# 重启服务
docker-compose restart

# 停止并删除容器
docker-compose down

# 查看资源占用
docker stats yixz-mcp-open

💾 数据持久化

  • 配置数据自动保存在 ./api/data 目录

  • 容器删除或重建不会丢失数据

  • 备份数据只需复制 api/data 文件夹

🔧 高级配置

修改 docker-compose.yml 中的端口映射:

ports:
  - "8080:3001"  # 将 8080 映射到容器内的 3001

取消 docker-compose.yml 中 Nginx 服务的注释,配置 nginx.conf

server {
    listen 80;
    server_name your-domain.com;

    location / {
        proxy_pass http://yixz-mcp:3001;
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection 'upgrade';
        proxy_set_header Host $host;
        proxy_cache_bypass $http_upgrade;
    }
}

Docker 会自动检查服务健康状态:

  • 检查间隔:30 秒

  • 超时时间:10 秒

  • 重试次数:3 次

查看健康状态:

docker inspect --format='{{.State.Health.Status}}' yixz-mcp-open

方式三:服务器面板部署 (宝塔 / 1Panel) 🌐

适合人群

  • 使用 VPS/云服务器的用户

  • 已安装宝塔或 1Panel 面板的用户

  • 需要通过 Web 界面管理的场景

系统要求

  • 操作系统:CentOS / Ubuntu / Debian

  • Node.js:v18+

  • 面板:宝塔面板 7.x+ 或 1Panel

📋 部署步骤

  1. 上传项目文件

    • 使用 Git 克隆或 FTP/SFTP 上传到服务器

    • 推荐目录:/www/wwwroot/mcp-open/opt/mcp-open

    # 使用 Git 克隆
    cd /www/wwwroot
    git clone https://github.com/your-repo/yixz-mcp-open.git
    cd yixz-mcp-open
  2. 安装依赖与构建

    # 安装依赖
    npm install
    
    # 构建前端资源
    npm run build
    
    # 验证构建结果
    ls -la dist/
  3. 启动服务

    方式 A:宝塔面板

    • 登录宝塔面板

    • 点击左侧 网站 -> Node项目

    • 点击 添加Node项目

    • 填写配置:

      • 项目名称yixz-mcp-open

      • 项目目录/www/wwwroot/yixz-mcp-open

      • 启动文件api/index.ts 或使用 package.jsonstart 脚本

      • 端口3001

      • 运行用户www

    • 点击 提交 并启动项目

    方式 B:1Panel

    • 登录 1Panel 面板

    • 点击 容器 -> 应用商店

    • 搜索并安装 Node.js 运行环境

    • 配置:

      • 项目目录/opt/yixz-mcp-open

      • 启动命令npm start

      • 端口3001

    方式 C:命令行 PM2

    # 安装 PM2
    npm install -g pm2
    
    # 启动服务
    pm2 start npm --name "yixz-mcp-open" -- start
    
    # 设置开机自启
    pm2 startup
    pm2 save
    
    # 查看状态
    pm2 status
    pm2 logs yixz-mcp-open
  4. 配置反向代理 (可选)

    如果你想通过域名访问,配置 Nginx 反向代理:

    宝塔面板:

    • 点击 网站 -> 添加站点

    • 填写域名,创建站点

    • 点击 设置 -> 反向代理

    • 添加规则:

      • 代理名称MCP Open

      • 目标 URLhttp://127.0.0.1:3001

      • 发送域名$host

    手动配置 Nginx:

    server {
        listen 80;
        server_name your-domain.com;
    
        location / {
            proxy_pass http://127.0.0.1:3001;
            proxy_http_version 1.1;
            proxy_set_header Upgrade $http_upgrade;
            proxy_set_header Connection 'upgrade';
            proxy_set_header Host $host;
            proxy_set_header X-Real-IP $remote_addr;
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
            proxy_set_header X-Forwarded-Proto $scheme;
            proxy_cache_bypass $http_upgrade;
        }
    }
  5. 配置 SSL (可选)

    使用宝塔面板或 Let's Encrypt 免费证书:

    # 使用 Certbot
    sudo apt install certbot python3-certbot-nginx
    sudo certbot --nginx -d your-domain.com

🔧 服务器维护

# 查看日志
tail -f /var/log/nginx/access.log
tail -f /var/log/nginx/error.log

# 重启服务
pm2 restart yixz-mcp-open

# 重启 Nginx
sudo systemctl restart nginx

# 查看端口占用
netstat -tulnp | grep 3001

📊 性能优化建议

  1. 使用 PM2 集群模式(多核 CPU)

    pm2 start npm --name "mcp-open" -i max -- start
  2. 配置 Nginx 缓存(静态资源)

    location ~* \.(js|css|png|jpg|jpeg|gif|ico|svg)$ {
        expires 1y;
        add_header Cache-Control "public, immutable";
    }
  3. 启用 gzip 压缩

    gzip on;
    gzip_types text/plain text/css application/json application/javascript text/xml application/xml application/xml+rss text/javascript;

📖 使用指南

  1. 创建实例

    • 打开首页,点击右上角“新建实例”,填写名称(如 "My Tools")。

  2. 添加节点

    • 进入实例详情页,点击“添加节点”。

    • SSE 模式:填写远程 MCP 服务的 URL。

    • Stdio 模式:填写要执行的命令(如 npx)和参数(如 -y @modelcontextprotocol/server-filesystem c:\projects)。

  3. 获取接入地址

    • 在实例详情页顶部,复制“接入地址”(通常以 /api/mcp/{id}/sse 结尾)。

  4. 配置 AI 客户端

    • 打开 CursorTrae 的设置页面。

    • 找到 MCP 设置 -> Add new MCP server

    • Type 选择 SSE

    • URL 填入刚才复制的地址。

    • 点击保存,即可连接成功!


💻 开发指南

如果你想参与开发或修改源码:

# 1. 安装依赖
pnpm install

# 2. 启动开发服务器 (前后端同时启动)
pnpm run dev
  • 前端地址: http://localhost:5173

  • 后端地址: http://localhost:3001


🔧 启动问题修复记录

记录本仓库相对上游所做的修复,供排障参考。

问题现象

双击 run_windows.bat 后,浏览器打不开 http://localhost:3001,端口无监听。

根因

pnpm start 会先执行依赖状态检查并自动触发 pnpm install,而 pnpm ≥ 10 默认拦截依赖的 postinstall 构建脚本,导致 install 失败并中断启动:

[ERR_PNPM_IGNORED_BUILDS] Ignored build scripts: esbuild@0.21.5, esbuild@0.27.0, esbuild@0.27.2
[ERROR] Command failed with exit code 1: ... pnpm install

服务进程从未被启动,因此端口无监听。

排查难点:原脚本用 >nul 2>&1 吞掉了全部输出,错误信息完全不可见。

修复内容

#

文件

修改

说明

1

pnpm-workspace.yaml

allowBuilds: esbuild: true

放行 esbuild 构建脚本(原为占位值 set this to true or false

2

run_windows.bat

改用 start "YIXZ-MCP-Server" cmd /c "node_modules\.bin\tsx.cmd api\index.ts > server.log 2>&1"

直接调用本地 tsx绕开 pnpm 依赖检查;独立窗口运行,关闭 bat 窗口后服务不退出;输出落盘到 server.log

3

run_windows.bat

启动前检测 3001 端口占用

避免重复启动时子进程 EADDRINUSE 静默失败,而脚本却误报"启动成功"

4

.gitignore

新增 api/data/.env

运行时含 MCP 实例 JWT 凭证,禁止入库

⚠️ 一个无效写法(避坑)

不要package.json 中添加:

"pnpm": { "onlyBuiltDependencies": ["esbuild"] }

pnpm 11 已不再读取 package.jsonpnpm 字段,实测会告警且完全无效:

[WARN] The "pnpm" field in package.json is no longer read by pnpm.
       The following keys were ignored: "pnpm.onlyBuiltDependencies"

正确位置是 pnpm-workspace.yamlallowBuilds

排障建议

服务起不来时,第一件事是把启动输出落到日志文件,而不是丢给 >nul

:: 错误示范 —— 报错全被吞掉,无法排障
start /B cmd /c "pnpm start >nul 2>&1"

:: 正确示范 —— 报错可见 + 独立窗口 + 关窗不死
start "YIXZ-MCP-Server" cmd /c "node_modules\.bin\tsx.cmd api\index.ts > server.log 2>&1"

随后检查 server.log/health 接口即可快速定位。


📄 License

Apache-2.0 license

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.

No tool schema history has been recorded yet.

Maintenance

ActivityMaintained
ResponsivenessNo issues

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Connectors

Related MCP Servers

  • A
    license
    B
    quality
    D
    maintenance
    A flexible proxy server that aggregates multiple backend MCP servers into a single interface using STDIO or SSE transports. It supports dynamic server management via an HTTP API and utilizes namespacing to prevent tool conflicts across connected services.
    3
    1
    MIT
  • A
    license
    Not graded
    quality
    D
    maintenance
    Exposes any stdio-based MCP server to the internet via HTTP/SSE transport, enabling remote agents to access MCP tools over a network.
    21
    MIT
  • A
    license
    Not graded
    quality
    B
    maintenance
    Aggregates multiple MCP servers behind a single stdio interface, supporting stdio-based and HTTP SSE-based upstreams with OAuth.
    9
    MIT

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/openclawzhangchong/xiaozhi-mcp-dandu-20260906'

If you have feedback or need assistance with the MCP directory API, please join our Discord server