
mcp-server-server

2025.01.08
1
TypeScriptMCP 服务器管理WebSocket 服务开发效率
mcp-server-server 是一个概念验证的 MCP 服务器,它通过 WebSocket 暴露另一个 stdio MCP 服务器的功能。该项目的目的是解决 MCP 服务器在使用过程中的一些痛点,如配置复杂、进程管理繁琐和启动速度慢等问题。通过将 MCP 服务器转换为 WebSocket 服务,用户可以更方便地以编程方式与 MCP 服务器交互,而无需直接管理进程。
View on GitHub
Overview
基本能力
产品定位
mcp-server-server 旨在简化 MCP 服务器的使用和管理,通过 WebSocket 提供更灵活的服务访问方式。
核心功能
- 将 stdio MCP 服务器转换为 WebSocket MCP 服务器
- 提供程序化访问 MCP 服务器的能力,无需直接管理进程
- 支持通过 Docker 容器化部署 MCP 服务器
适用场景
- 需要集中管理多个 MCP 服务器的场景
- 需要快速启动和访问 MCP 服务器的场景
- 需要将 MCP 服务器集成到现有网络架构中的场景
工具列表
puppeteer_navigate
: 导航到指定 URLpuppeteer_screenshot
: 截取页面截图puppeteer_click
: 模拟点击页面元素puppeteer_fill
: 填充表单字段puppeteer_evaluate
: 在页面上下文中执行 JavaScript
常见问题解答
- 为什么需要将 MCP 服务器转换为 WebSocket 服务? 传统的 stdio MCP 服务器需要每个客户端管理进程,配置复杂且启动慢。通过 WebSocket 提供服务可以简化这些流程。
- 如何提高 MCP 服务器的启动速度?
可以通过直接安装 MCP 服务器并使用
node
直接运行,而不是通过npx
或uvx
来减少启动时间。
使用教程
使用依赖
- 确保已安装
bun
运行时环境 - 确保已安装
node
和pnpm
(如果选择直接安装 MCP 服务器)
安装教程
- 克隆仓库并进入项目目录
- 使用以下命令启动 WebSocket 包装器:
zsh bun run mcp-server-wrapper -p 3001 -- npx -y @modelcontextprotocol/server-puppeteer@latest
或为了更快的启动速度:zsh pnpm install -g @modelcontextprotocol/server-puppeteer@latest bun run mcp-server-wrapper -p 3001 -- node ~/Library/pnpm/global/5/node_modules/@modelcontextprotocol/server-puppeteer/dist/index.js
调试方式
- 使用提供的示例客户端代码连接到 WebSocket 服务: ```typescript import { Client } from "@modelcontextprotocol/sdk/client/index.js"; import { WebSocketClientTransport } from "@modelcontextprotocol/sdk/client/websocket.js";
const transport = new WebSocketClientTransport(new URL("ws://localhost:3001"));
const client = new Client( { name: "example-client", version: "1.0.0", }, { capabilities: {}, } ); await client.connect(transport); const tools = await client.listTools(); console.log( "Tools:", tools.tools.map((t) => t.name) ); await client.close(); ``` 2. 运行客户端代码并检查输出,确认能够正确列出可用的工具。