使用说明
项目简介
本项目 'mcp-upload-file' 是一个实现了 Model Context Protocol (MCP) 的服务器,专注于提供文件上传功能。它作为一个 MCP 工具运行,允许 LLM 客户端指示服务器从指定的 URL 下载文件,并上传到预先配置的目标服务器。
主要功能点
- 文件上传工具: 提供名为 'upload-file' 的 MCP 工具,LLM 可以调用此工具来上传文件。
- URL 文件下载: 工具接收文件 URL 作为参数,服务器负责从该 URL 下载文件。
- 可配置上传目标: 通过环境变量配置上传的目标 URL、表单字段名、文件名等。
- 支持额外表单数据: 允许配置额外的表单数据,以满足不同上传接口的需求。
- 基于标准 MCP 协议: 遵循 MCP 协议规范,易于集成到任何支持 MCP 协议的 LLM 客户端。
安装步骤
- 克隆仓库:
git clone https://github.com/sujianqingfeng/mcp-upload-file.git cd mcp-upload-file - 安装依赖:
npm install - 构建项目:
npm run build
服务器配置
要将 'mcp-upload-file' 作为 MCP 服务器集成到 MCP 客户端,需要在客户端的 MCP 配置文件中添加以下配置。请根据实际情况修改以下配置中的路径和环境变量值。
{ "mcpServers": { "upload-file-server": { "command": "node", "args": [ "path/to/mcp-upload-file/dist/index.js" ], "env": { "UPLOAD_URL": "YOUR_UPLOAD_TARGET_URL", // 必填:文件上传的目标 URL,例如:https://example.com/upload "FILE_KEY": "file", // 必填:上传表单中文件字段的 key 名称,例如:file "FILE_NAME": "uploaded_file.txt", // 可选:上传的文件名,如果留空则使用默认文件名或从URL推断 "EXTRA_FORM": "{\"key1\":\"value1\", \"key2\":123}" // 可选:额外的表单数据,JSON 格式字符串,例如: "{\"user_id\":\"123\", \"timestamp\":1678886400}" } } } }
配置参数说明:
- 'server name': 'upload-file-server' (用户自定义,用于在客户端唯一标识此 MCP 服务器)
- 'command': 'node' (启动 Node.js 环境)
- 'args': '["path/to/mcp-upload-file/dist/index.js"]' (指向 'mcp-upload-file' 服务器入口文件 'index.js' 的路径,请替换为实际路径)
- 'env': 环境变量配置,用于配置文件上传工具的具体行为。
环境变量说明 (配置在 'env' 字段中):
- 'UPLOAD_URL': 必填。文件上传的目标 URL,这是文件实际被上传到的服务器地址。
- 'FILE_KEY': 必填。上传表单中用于接收文件的字段的名称 (key)。通常在 HTML 表单中,文件上传字段会有一个 'name' 属性,这里需要填写的就是这个 'name' 属性的值。
- 'FILE_NAME': 可选。上传到目标服务器的文件名。如果设置,则所有上传的文件都会使用这个名字。如果不设置,可能会使用默认文件名或者尝试从下载 URL 中推断文件名。
- 'EXTRA_FORM': 可选。额外的表单数据,以 JSON 字符串格式提供。如果上传接口除了文件字段外,还需要其他额外的表单字段,可以通过此配置添加。例如,某些接口可能需要用户 ID、时间戳等信息。
基本使用方法
-
启动 MCP 服务器: 确保 'mcp-upload-file' 服务器已按照上述配置在 MCP 客户端中启动。
-
LLM 客户端调用工具: 在 LLM 客户端中,可以使用 'upload-file' 工具,并提供文件 URL 和文件名(可选)作为参数。
例如,客户端可以发送如下 JSON-RPC 请求来调用 'upload-file' 工具:
{ "jsonrpc": "2.0", "method": "Tool.upload-file", "params": { "url": "https://www.example.com/path/to/your/file.txt", "fileName": "my_uploaded_file.txt" // 可选,自定义文件名 }, "id": "some_request_id" }- 'method': 固定为 'Tool.工具名',这里是 'Tool.upload-file'。
- 'params': 工具的参数,'upload-file' 工具需要 'url' 参数 (文件下载地址),'fileName' 参数为可选的文件名。
- 'id': 请求 ID,由客户端生成。
-
服务器处理并返回结果: 'mcp-upload-file' 服务器接收到请求后,会从指定的 URL 下载文件,并上传到配置的 'UPLOAD_URL'。上传成功后,服务器会将上传结果以 JSON-RPC 响应的形式返回给客户端。响应内容会包含上传服务器返回的文本信息。
注意:
- 请务必正确配置环境变量,特别是 'UPLOAD_URL' 和 'FILE_KEY',否则文件上传功能将无法正常工作。
- 'EXTRA_FORM' 配置项允许您灵活地适应各种不同的文件上传 API 接口。
- 确保 LLM 客户端和 'mcp-upload-file' 服务器之间的网络连接畅通。
信息
分类
开发者工具