mcp-server-server

mcp-server-server

site icon
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: 导航到指定 URL
  • puppeteer_screenshot: 截取页面截图
  • puppeteer_click: 模拟点击页面元素
  • puppeteer_fill: 填充表单字段
  • puppeteer_evaluate: 在页面上下文中执行 JavaScript

常见问题解答

  • 为什么需要将 MCP 服务器转换为 WebSocket 服务? 传统的 stdio MCP 服务器需要每个客户端管理进程,配置复杂且启动慢。通过 WebSocket 提供服务可以简化这些流程。
  • 如何提高 MCP 服务器的启动速度? 可以通过直接安装 MCP 服务器并使用 node 直接运行,而不是通过 npxuvx 来减少启动时间。

使用教程

使用依赖

  • 确保已安装 bun 运行时环境
  • 确保已安装 nodepnpm(如果选择直接安装 MCP 服务器)

安装教程

  1. 克隆仓库并进入项目目录
  2. 使用以下命令启动 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

调试方式

  1. 使用提供的示例客户端代码连接到 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. 运行客户端代码并检查输出,确认能够正确列出可用的工具。

许可证

该项目遵循 Apache-2.0 开源许可条款,请参阅 Apache-2.0 了解完整条款。