本项目实现了一个MCP(Model Context Protocol)服务器,使用TypeScript语言开发。借助Server-Sent Events (SSE) 达成实时通信,利用Bearer Token进行身份验证。项目结构清晰,各功能模块职责明确,能有效满足相关业务需求。
git clone [仓库地址]
cd mcp-server
npm install
npm run dev
npm run build
node dist/index.js
/sse 和 /messages 的处理逻辑。GET /sse 请求与服务器建立SSE通道,并提供Bearer Token进行认证。/messages 接口发送包含会话ID的消息请求。以下是项目的交互流程图:
@startuml
title "基于SSE和Bearer认证的MCP服务器通信流程"
actor "MCP客户端" as Client
participant "Express服务器" as Express
participant "Auth中间件" as Auth
participant "路由 /sse" as SSERoute
participant "SSE传输层" as SSE
participant "MCP服务器" as MCP
participant "路由 /messages" as MsgRoute
== 建立连接 ==
Client -> Express: GET /sse\n(Authorization: Bearer )
Express -> Auth: 验证Bearer Token
Auth -> Client: 200 OK
Client -> SSERoute: 建立SSE通道
SSERoute -> SSE: 创建传输实例
SSE -> MCP: 初始化连接
== 发送消息 ==
Client -> MsgRoute: POST /messages\n(会话ID)
MsgRoute -> SSE: 获取传输实例
SSE -> MCP: 转发消息
MCP -> SSE: 处理结果回传
SSE -> Client: 接收响应
== 断开连接 ==
Client -> SSE: 关闭通道
SSE -> SSERoute: 通知断开
SSERoute -> Express: 清理资源
@enduml
未来计划增加以下功能: