本项目是一个原型实现,旨在帮助你理解如何构建自定义MCP服务器。该服务器可通过stdio和SSE这两种传输协议进行访问,项目的核心目标是深入探究SSE和stdio传输协议。
若你想查看示例,可参考 mcp_client.py ,这是一个简单的脚本,用于测试MCP服务器在SSE模式下的运行情况。
# 在终端1中运行
uv run main.py
# 在终端2中运行
uv run mcp_client.py
服务器发送事件(Server-Sent Events,SSE) 是一种借助HTTP将实时更新从服务器推送到客户端的简单高效方式。
⚠️ 重要提示
与stdio相比,SSE将MCP服务器作为单独的HTTP服务运行,这使其非常适合用于Web仪表板或基于浏览器的应用程序,这些应用程序需要从服务器接收网络上的实时更新。
Stdio(标准输入输出)是程序间通信的传统方式,它通过读取来自终端、文件或其他程序的标准输入(stdin),以及向终端、文件或其他程序发送标准输出(stdout)来实现。
stdin(标准输入):用于接收输入数据,通常来自键盘、文件或另一个程序。stdout(标准输出):用于发送输出数据,通常显示在终端上,或通过管道传递给另一个程序。⚠️ 重要提示
与SSE相比,基于Stdio的MCP服务器更像是内部工具。它们非常适合以子进程形式启动MCP服务器,例如从命令行工具、大语言模型(LLM)代理或需要高效发送和接收结构化数据而无需使用网络的背景脚本中使用。