使用说明
卷曲MCP服务器v1.2.0
一种模型上下文协议(MCP)服务器,提供用于发出HTTP请求和下载文件的curl功能,针对GPT模型与干净、简单的JSON响应的兼容性进行了优化。
特性
-
curl_request:向任何支持以下内容的URL发出HTTP请求:
- 多种HTTP方法(GET、POST、PUT、DELETE、PATCH、HEAD、OPTIONS)
- 自定义头
- 请求数据/正文
- 超时配置
- 用户代理定制
- 重定向以下内容
- 包含响应标头
- 响应大小限制 (新增)-通过截断大响应来防止过度输出
-
curl下载:从以下URL下载文件:
- 自定义输出路径规范
- 超时配置
- 重定向以下内容
- 进度跟踪
v1.2.0中的新功能
针对GPT模型进行了优化
- 默认情况下,简化的响应格式仅返回数据,不包含元数据包装器
- 响应为有效JSON时自动进行JSON解析
- 干净、最少的错误消息
- 更好地处理大型JSON数组和对象
- 直接数据传递,使AI模型更容易处理
v1.1.0版本的功能
响应大小限制
- 添加
max_response_size参数(默认值:800KB) - 自动截断大型响应以防止系统过载
- 提供有关截断的元数据(原始大小、截断大小、警告消息)
- 安全地处理非常大的API响应(如Binance exchange信息)
更好的错误处理
- 增加内部缓冲区大小,以便在截断之前处理大型响应
- 额外的安全检查,以防止系统内存问题
- 改进了错误消息和截断通知
安装
- 安装Node.js依赖项:
cd C:\claude\curl-mcp-server
npm install
- 确保
curl已安装并在系统PATH中可用。
配置
克劳德桌面配置(v1.2.0)
将此添加到您的Claude Desktop配置文件中(通常位于 %APPDATA%\Claude\claude_desktop_config.json):
{
"mcpServers": {
"curl-mcp-server": {
"command": "node",
"args": ["C:\\claude\\curl-mcp-server\\index.js"],
"env": {}
}
}
}
使用示例
简单GET请求
{
"tool": "curl_request",
"args": {
"url": "https://api.github.com/users/octocat"
}
}
响应格式(v1.2.0)
所有响应现在都直接返回干净的JSON或文本数据,使GPT模型更容易处理:
{
"tool": "curl_request",
"args": {
"url": "https://fapi.binance.com/fapi/v1/exchangeInfo"
}
}
直接返回实际的API响应,而不使用元数据包装器。
具有大小限制的大响应
{
"tool": "curl_request",
"args": {
"url": "https://fapi.binance.com/fapi/v1/exchangeInfo",
"max_response_size": 500000
}
}
带数据的POST请求
{
"tool": "curl_request",
"args": {
"url": "https://httpbin.org/post",
"method": "POST",
"headers": {
"Content-Type": "application/json",
"Authorization": "Bearer your-token"
},
"data": "{\"name\": \"John\", \"email\": \"john@example.com\"}"
}
}
下载文件
{
"tool": "curl_download",
"args": {
"url": "https://example.com/file.zip",
"output_path": "C:\\downloads\\file.zip"
}
}
具有自定义响应大小限制的请求
{
"tool": "curl_request",
"args": {
"url": "https://api.example.com/large-dataset",
"method": "GET",
"max_response_size": 1000000,
"headers": {
"Accept": "application/json"
}
}
}
响应大小限制
服务器现在会自动限制响应大小,以防止系统不堪重负:
- 默认限制:800KB(800000字节)
- 可定制的:使用
max_response_size参数 - 截断信息:当响应被截断时,您将收到:
truncated: trueoriginal_size:原始响应大小(字节)truncated_size:截断后的大小truncation_note:人类可读的截断消息warning:关于使用max_response_size参数的建议
示例响应(v1.2.0)
对于JSON API,直接返回解析后的JSON:
{
"result": [...], // Direct API response
"timestamp": "2024-01-01T00:00:00Z"
}
对于文本响应,返回原始文本:
Plain text response from the server
对于错误,返回一个简单的错误对象:
{
"error": "Connection timeout"
}
安全说明
- 此服务器在本地执行curl命令,因此请确保您信任正在访问的URL
- 小心文件下载路径,避免覆盖重要文件
- 考虑在沙盒环境中运行以获得额外的安全性
- 响应大小限制有助于防止内存耗尽攻击
故障排除
- 未找到卷曲:确保curl已安装并位于系统PATH中
- 权限不足:确保输出目录存在并且可写
- 超时错误:增加慢速连接的超时值
- 大量回应:使用
max_response_size控制截断的参数 - 内存问题:服务器现在通过自动截断安全地处理大型响应
参数参考
curl_request参数
url(必填):目标URLmethod:HTTP方法(默认值:“GET”)headers:具有自定义标头的对象data:请求正文数据timeout:请求超时(秒)(默认值:30)follow_redirects:遵循重定向(默认:true)include_headers:包含响应标头(默认值:false)user_agent:自定义用户代理(默认:“curl mcp服务器/1.1.0”)max_response_size:最大响应大小(以字节为单位)(默认值:800000)
依赖项
- Node.js(v14或更高版本)
- curl(系统依赖性)
- @模型上下文协议/sdk
版本历史记录
- v1.2.0版本:针对GPT模型进行了优化-默认情况下简化了响应格式,自动JSON解析,输出更清晰
- v1.1.0版本:增加了响应大小限制,更好的错误处理,增加了缓冲区大小
- v1.0.0:具有基本卷曲功能的初始版本
许可证
MIT许可证