使用说明

项目简介

本项目 'mcp-upload-file' 是一个实现了 Model Context Protocol (MCP) 的服务器,专注于提供文件上传功能。它作为一个 MCP 工具运行,允许 LLM 客户端指示服务器从指定的 URL 下载文件,并上传到预先配置的目标服务器。

主要功能点

  • 文件上传工具: 提供名为 'upload-file' 的 MCP 工具,LLM 可以调用此工具来上传文件。
  • URL 文件下载: 工具接收文件 URL 作为参数,服务器负责从该 URL 下载文件。
  • 可配置上传目标: 通过环境变量配置上传的目标 URL、表单字段名、文件名等。
  • 支持额外表单数据: 允许配置额外的表单数据,以满足不同上传接口的需求。
  • 基于标准 MCP 协议: 遵循 MCP 协议规范,易于集成到任何支持 MCP 协议的 LLM 客户端。

安装步骤

  1. 克隆仓库:
    git clone https://github.com/sujianqingfeng/mcp-upload-file.git
    cd mcp-upload-file
  2. 安装依赖:
    npm install
  3. 构建项目:
    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、时间戳等信息。

基本使用方法

  1. 启动 MCP 服务器: 确保 'mcp-upload-file' 服务器已按照上述配置在 MCP 客户端中启动。

  2. 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,由客户端生成。
  3. 服务器处理并返回结果: 'mcp-upload-file' 服务器接收到请求后,会从指定的 URL 下载文件,并上传到配置的 'UPLOAD_URL'。上传成功后,服务器会将上传结果以 JSON-RPC 响应的形式返回给客户端。响应内容会包含上传服务器返回的文本信息。

注意:

  • 请务必正确配置环境变量,特别是 'UPLOAD_URL' 和 'FILE_KEY',否则文件上传功能将无法正常工作。
  • 'EXTRA_FORM' 配置项允许您灵活地适应各种不同的文件上传 API 接口。
  • 确保 LLM 客户端和 'mcp-upload-file' 服务器之间的网络连接畅通。

信息

分类

开发者工具