本仓库是一个MCP服务器的概念验证项目,可用于启动其他MCP服务器,解决了传统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进行通信的网络服务器,从而简化客户端与其交互的方式。
将MCP服务器转换为网络服务是一项具有革命性的改进,能极大提升开发效率和系统扩展性。尽管目前仍存在一些问题需要解决,但该方向值得深入探索和实践。