Rgarcia_mcp Server Server

Rgarcia_mcp Server Server

🚀 mcp-server-server

本仓库是一个MCP服务器的概念验证项目,可用于启动其他MCP服务器,解决了传统MCP服务器使用不便的问题,提升了使用的便捷性与系统的可扩展性。

🚀 快速开始

✨ 主要特性

  • 消除进程管理:无需在客户端中 spawn多个进程来管理不同的MCP服务器。
  • 提升可扩展性:借助网络通信,能更高效地管理和路由多个用户及不同配置的请求。

📦 安装指南

将现有的stdio MCP服务器转换为WebSocket MCP服务器,可使用以下命令通过websocket暴露现有MCP服务器:

bun run mcp-server -p 3001 -- npx -y @modelcontextprotocol/server-puppeteer@latest

💻 使用示例

基础用法

无需管理进程即可程序化地与MCP服务器交互,示例代码如下:

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.map((t) => t.name)
);
await client.close();

运行示例

bun run mcp-server-wrapper-client
$ bun run src/mcp-server-wrapper/example-client/example-client.ts
工具: [ "puppeteer_navigate", "puppeteer_screenshot", "puppeteer_click", "puppeteer_fill",
"puppeteer_evaluate"
]

🔧 技术细节

项目目标

此仓库旨在展示如何将传统的基于stdio的MCP服务器转换为通过WebSocket进行通信的网络服务器,从而简化客户端与其交互的方式。

实现步骤

  1. 将现有MCP服务器封装为WebSocket服务:使用提供的包装程序,可轻松将任何现有的MCP服务器(如Puppeteer)转换为基于WebSocket的服务。
  2. 使用SDK进行程序化交互:通过MCP SDK和WebSocket客户端传输模块,能方便地与新的WebSocket MCP服务器进行交互。
  3. 扩展至MCP服务器即服务:目前,作为MCP客户端开发人员,在第1步中仍需为特定的MCP服务器和用户配置 spawn一个程序,后续有待进一步解决。

未来方向

  1. 统一接口:开发一个通用的MCP服务器接口,让任何服务器都能轻松通过WebSocket或其他协议暴露。
  2. 自动化配置:实现自动化的用户配置管理,减少手动 spawn进程的需求。
  3. 多租户支持:构建支持多用户的架构,允许每个用户根据自身需求定制和启动不同的MCP服务器实例。

结论

将MCP服务器转换为网络服务是一项具有革命性的改进,能极大提升开发效率和系统扩展性。尽管目前仍存在一些问题需要解决,但该方向值得深入探索和实践。

  • 0 关注
  • 0 收藏,22 浏览
  • system 提出于 2025-10-05 03:03

相似服务问题

相关AI产品