返回 MCP 目录
public公开dns本地运行

mcp-transport-prototype

一个实现自定义MCP服务器的原型项目,支持通过SSE和stdio两种传输方式进行通信,旨在理解这两种传输机制的工作原理与应用场景。

article

README

🚀 mcp-transport-prototype

本项目是一个原型实现,旨在帮助你理解如何构建自定义MCP服务器。该服务器可通过stdio和SSE这两种传输协议进行访问,项目的核心目标是深入探究SSE和stdio传输协议。

🚀 快速开始

若你想查看示例,可参考 mcp_client.py ,这是一个简单的脚本,用于测试MCP服务器在SSE模式下的运行情况。

# 在终端1中运行
uv run main.py

# 在终端2中运行
uv run mcp_client.py

✨ 主要特性

SSE 传输协议

服务器发送事件(Server-Sent Events,SSE) 是一种借助HTTP将实时更新从服务器推送到客户端的简单高效方式。

  • 与WebSocket不同,SSE是单向的,即服务器可向客户端推送数据,但客户端无法反向发送数据。
  • 它基于标准HTTP运行,非常适用于需要实时更新、通知或流式响应的场景。

⚠️ 重要提示

与stdio相比,SSE将MCP服务器作为单独的HTTP服务运行,这使其非常适合用于Web仪表板或基于浏览器的应用程序,这些应用程序需要从服务器接收网络上的实时更新。

Stdio 传输协议

Stdio(标准输入输出)是程序间通信的传统方式,它通过读取来自终端、文件或其他程序的标准输入(stdin),以及向终端、文件或其他程序发送标准输出(stdout)来实现。

  • stdin(标准输入):用于接收输入数据,通常来自键盘、文件或另一个程序。
  • stdout(标准输出):用于发送输出数据,通常显示在终端上,或通过管道传递给另一个程序。

⚠️ 重要提示

与SSE相比,基于Stdio的MCP服务器更像是内部工具。它们非常适合以子进程形式启动MCP服务器,例如从命令行工具、大语言模型(LLM)代理或需要高效发送和接收结构化数据而无需使用网络的背景脚本中使用。

help

运行方式说明

cloud

托管运行

托管运行通常表示这个 MCP Server 由服务方环境承载,用户一般按页面提供的连接方式或授权流程接入,不需要在本地长期启动一个 MCP 进程

  1. 打开服务方连接页
  2. 完成授权或复制端点
  3. 在 MCP 客户端中连接
terminal

本地运行 / 其它方式

本地运行通常需要用户在自己的电脑或服务器上安装依赖,把 server_config 复制到 MCP 客户端,并按 env_schema 补齐环境变量、密钥或其它配置

  1. 复制 server_config
  2. 安装所需依赖
  3. 补齐环境变量后重启客户端