mcp-server-server

mcp-server-server

site icon
2025.01.09 0
TypeScriptMCP服务器管理网络通信优化开发效率
该mcp-server-server是一个概念验证的MCP服务器,旨在简化MCP服务器的使用和管理。它通过将传统的stdio通信方式转换为基于网络的websocket通信,使得MCP服务器可以像普通服务器一样通过网络进行交互,从而避免了进程管理的复杂性和基础设施问题。
View on GitHub

Overview

基本能力

产品定位

该服务旨在简化MCP服务器的使用和管理,通过提供一种更高效的通信机制来替代传统的stdio方式。

核心功能

  1. 转换stdio MCP服务器为websocket MCP服务器:将现有的MCP服务器通过websocket暴露出来,便于网络交互。
  2. 程序化交互:允许开发者通过网络与MCP服务器进行交互,无需直接管理进程。
  3. 工具列表展示:可以列出可用的工具及其功能。

适用场景

  1. 多用户环境:在需要为不同用户配置不同MCP服务器的场景下,简化管理和操作。
  2. 开发效率提升:开发者可以通过网络直接与MCP服务器交互,无需处理进程管理的复杂性。

工具列表

  1. puppeteer_navigate:用于浏览器导航。
  2. puppeteer_screenshot:用于截取浏览器屏幕。
  3. puppeteer_click:用于模拟点击操作。
  4. puppeteer_fill:用于填充表单。
  5. puppeteer_evaluate:用于执行浏览器中的JavaScript代码。

常见问题解答

  1. 为什么需要转换stdio MCP服务器为websocket MCP服务器?
  2. 传统的stdio方式需要每个MCP客户端管理进程,增加了复杂性和基础设施负担。
  3. 如何与MCP服务器进行程序化交互?
  4. 使用提供的SDK和websocket通信机制,开发者可以轻松地与MCP服务器进行交互。

使用教程

使用依赖

  1. 确保已安装Bun运行时环境。

安装教程

  1. 克隆仓库并进入项目目录。
  2. 运行以下命令启动MCP服务器: zsh bun run mcp-server -p 3001 -- npx -y @modelcontextprotocol/server-puppeteer@latest

调试方式

  1. 使用提供的示例客户端代码进行调试: ```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. 运行客户端代码并检查输出:zsh bun run src/mcp-server-wrapper/example-client/example-client.ts ```

许可证

None