使用说明
MCP流HTTP服务器
一个提供HTTP流媒体功能的模型上下文协议(MCP)服务器。该服务器使AI助手能够获取和流式传输HTTP内容,包括对服务器发送事件(SSE)的支持。
特点/功能
- HTTP 流媒体以块为单位流式传输大型HTTP响应
- 完整的HTTP获取获取包含完整元数据的整个HTTP响应
- **服务器发送事件(SSE)**实时解析和流式传输SSE事件
- 灵活的HTTP方法支持 GET、POST、PUT、DELETE、PATCH、HEAD、OPTIONS 方法
- 自定义头部为请求添加自定义头部
- 请求体支持POST/PUT/PATCH操作中的请求体
安装
npm install
npm run build
可用工具
1. stream_http(直译为“流_HTTP”,但通常根据上下文可理解为“HTTP流传输”或“基于HTTP的流”)
以块的形式流式传输HTTP响应内容。适用于大型响应或实时数据流。
参数:
url(必填):要获取的URLmethod(可选):HTTP 方法(GET、POST、PUT、DELETE、PATCH、HEAD、OPTIONS)。默认:GETheaders(可选):以键值对形式表示的HTTP头部body(可选):POST、PUT、PATCH 请求的请求体chunkSize(可选):每个数据块的大小(以字节为单位)。默认值:1024
回应:
{
"success": true,
"url": "https://example.com",
"method": "GET",
"statusCode": 200,
"statusText": "OK",
"headers": {...},
"chunksReceived": 5,
"totalBytes": 5120,
"content": "...",
"chunks": [
{
"index": 0,
"size": 1024,
"timestamp": 1234567890
}
]
}
2. fetch_http(获取HTTP)
获取包含完整元数据的完整HTTP响应。
参数:
url(必需):要获取的URLmethod(可选):HTTP 方法。默认:GETheaders(可选):以键值对形式表示的HTTP头body(可选):POST、PUT、PATCH 请求的请求体
回答:
{
"success": true,
"url": "https://example.com",
"method": "GET",
"statusCode": 200,
"statusText": "OK",
"headers": {...},
"contentLength": 5120,
"content": "..."
}
3. stream_sse(可译为“服务器发送事件流”或根据上下文具体含义翻译)
从给定的URL流式传输服务器发送的事件。解析并返回到达的SSE(Server-Sent Events)事件。
参数:
url(必需):SSE 端点 URLheaders(可选):HTTP 头作为键值对maxEvents(可选):要接收的最大事件数。默认值:100
回答:
{
"success": true,
"url": "https://example.com/events",
"eventsReceived": 10,
"events": [
{
"id": "1",
"event": "message",
"data": "Event data",
"timestamp": 1234567890
}
]
}
配置
与Claude Desktop一起使用
将此添加到您的Claude桌面配置文件中:
MacOS(苹果电脑操作系统): ~/Library/Application Support/Claude/claude_desktop_config.json
Windows: %APPDATA%\Claude\claude_desktop_config.json
{
"mcpServers": {
"stream-http": {
"command": "node",
"args": ["/path/to/MCP-App/dist/index.js"]
}
}
}
与其他MCP客户端一起使用
服务器使用stdio传输方式,并且可以与任何兼容MCP的客户端进行集成。
使用示例
示例1:获取网页
// Using the fetch_http tool
{
"url": "https://api.example.com/data",
"method": "GET",
"headers": {
"User-Agent": "MCP-Client/1.0"
}
}
示例2:流式传输大响应
// Using the stream_http tool
{
"url": "https://example.com/large-file",
"method": "GET",
"chunkSize": 2048
}
示例3:带有请求体的POST请求
// Using the fetch_http tool
{
"url": "https://api.example.com/submit",
"method": "POST",
"headers": {
"Content-Type": "application/json"
},
"body": "{\"key\": \"value\"}"
}
示例4:流式服务器发送事件
// Using the stream_sse tool
{
"url": "https://example.com/events",
"maxEvents": 50
}
发展
构建
npm run build
手表模式
npm run dev
运行服务器
npm start
错误处理
所有工具都返回一种统一的错误格式:
{
"success": false,
"error": "Error message here",
"url": "https://example.com"
}
技术细节
- 协议;议定书模型上下文协议(MCP)
- 交通stdio(标准输入输出)
- 运行时Node.js
- 语言TypeScript
- SDK 版本@modelcontextprotocol/sdk ^1.0.4
建筑学
服务器实现了三种主要工具:
- **stream_http(在中文语境下,这个术语通常直接保留原样,因为它是一个特定的技术或网络领域的术语,没有直接的中文对应词汇。但如果需要解释性翻译,可以理解为“HTTP流”或“基于HTTP的流传输”,不过具体翻译还需根据上下文来确定。)**使用 Node.js 流按块处理 HTTP 响应
- **fetch_http 可以翻译为“获取HTTP资源”或“通过HTTP获取”**使用 node-fetch 获取完整响应
- **stream_sse(可译为“服务器发送事件流”或根据具体上下文简化为“SSE流”,但通常直接保留为“stream_sse”以指代特定技术或功能)**解析服务器发送事件(Server-Sent Events)协议,并进行适当的事件解析
所有工具包括:
- 全面的错误处理
- 详细的响应元数据
- 时间戳追踪
- 灵活的配置选项
许可证
麻省理工学院(MIT)
贡献
欢迎贡献!请随时提交拉取请求。
支持
对于问题和疑问,请在GitHub仓库中提交一个议题。
