模型上下文协议服务器

一个基于模型上下文协议(MCP)的服务器实现,提供两种实时通信机制:服务器发送事件(SSE)和可流式HTTP,用于客户端与模型之间的实时通信。

  • by sanathshetty444
  • TypeScript
  • 本地部署
  • 更新于
在 GitHub 查看 sanathshetty444/mcp-api-server

使用说明

MCP API服务器

这是一个服务器实现,它使用具有两种不同传输机制的模型上下文协议(MCP):

  1. 服务器发送事件(SSE)
  2. 流式HTTP

这两种实现都使用模型上下文协议实现了客户端和模型之间的实时通信。

概述

此项目提供了两种不同的服务器实现:

SSE服务器(src/sse/index.ts)

  • 使用服务器发送的事件进行持久、实时通信
  • 使用唯一的会话ID管理多个客户端会话
  • 提供双向通信(SSE用于下游,HTTP POST用于上游)

HTTP流服务器(src/httpStream/index.ts)

  • 使用流式HTTP传输进行通信
  • 使用单个传输实例实现更简单
  • 使用UUID生成会话

安装

克隆存储库并安装依赖项:

git clone <repository-url>
cd MCP-API-server
npm install

所需依赖关系

该项目要求:

  • 快速
  • 模型上下文协议SDK(@modelcontextprotocol/sdk)
  • Node.js加密模块(用于HTTP流中的UUID生成)

运行服务器

请参阅中的脚本 package.json 用于特定的运行命令。通常:

# To run the SSE server
npm run start:sse

# To run the HTTP Stream server
npm run start:http-stream

默认情况下,两台服务器都将在端口3000上启动。

API终点

SSE服务器

SSE 连接

GET /connect

  • 与服务器建立SSE连接
  • 服务器分配一个唯一的会话ID
  • 自动开始发送示例消息

发送消息(SSE)

POST /messages?sessionId=YOUR_SESSION_ID

  • 向服务器发送消息
  • 需要有效的会话ID作为查询参数

HTTP流服务器

发送消息(HTTP流)

POST /messages?sessionId=YOUR_SESSION_ID

  • 向服务器发送消息
  • 需要有效的会话ID作为查询参数
  • 使用流式HTTP传输来处理请求

使用Claude AI进行测试

要将这些服务器与Claude AI一起使用,请在Claude配置中添加以下内容:

# For SSE server
"greet": {
    "command": "npx",
    "args": ["mcp-remote", "http://localhost:3000/connect"]
}

# For HTTP Stream server (adjust endpoint as needed)
"greet": {
    "command": "npx",
    "args": ["mcp-remote", "http://localhost:3000/messages"]
}

实现细节

SSE服务器

  • 维护按会话ID索引的传输字典
  • 提供示例消息流功能
  • 处理客户端断开连接时的连接清理

HTTP流服务器

  • 为所有客户端使用单个传输实例
  • 为会话ID生成随机UUID
  • 更简单的实现,专注于HTTP流

错误处理

这两台服务器都包括以下基本错误处理:

  • 会话ID无效
  • 丢失的运输工具
  • 连接错误

许可证

[在此处添加您的许可证信息]