1. MCP
  2. 文件上传 MCP

文件上传 MCP 服务器

如果您尝试使用接受文件(图像、视频、音频)作为输入的远程 Gradio MCP 服务器,您可能遇到过此错误

原因是 Gradio 服务器托管在另一台机器上,因此任何输入文件都必须通过公共 URL 访问,以便可以在远程机器上下载。

在互联网上托管文件的方法有很多,但它们都需要在工作流中添加一个手动步骤。在 LLM 代理时代,我们不应该期望它们能为您处理这个步骤吗?

在这篇文章中,我们将展示如何将您的 LLM 连接到“文件上传”MCP 服务器,以便它可以在适当的时候为您处理文件上传!

使用文件上传 MCP 服务器

从版本 5.36.0 开始,Gradio 现在自带一个内置的 MCP 服务器,可以将文件上传到正在运行的 Gradio 应用程序。在服务器的“查看 API”页面中,如果任何工具需要文件输入,您应该会看到以下代码片段

启动 MCP 服务器的命令接受两个参数

  • 要上传文件的 gradio 应用程序的 URL(或 Hugging Face space id)。在本例中为 http://127.0.0.1:7860
  • 服务器允许从中上传文件的计算机本地目录(<UPLOAD_DIRECTORY>)。为了安全起见,请将此目录设置得尽可能窄,以防止意外的文件上传。

如图像中所述,在从 MCP 客户端连接之前,您需要安装 uv(一个可以运行 python 脚本的 python 包管理器)。

如果您在本地安装了 gradio 并且不想安装 uv,则可以将 uvx 命令替换为 gradio 二进制文件的路径。它应该如下所示

"upload-files": {
    "command": "<absoluate-path-to-gradio>",
    "args": [
    "upload-mcp",
    "https://:7860/",
    "/Users/freddyboulton/Pictures"
    ]
}

连接到上传服务器后,您的 LLM 代理将知道何时为您自动上传文件!

结论

在本指南中,我们介绍了如何连接到文件上传 MCP 服务器,以便您的代理可以在使用 Gradio MCP 服务器之前上传文件。请记住,将 <UPLOAD_DIRECTORY> 设置得尽可能小,以防止意外的文件上传!

gradio