如果您尝试使用接受文件(图像、视频、音频)作为输入的远程 Gradio MCP 服务器,您可能遇到过此错误
原因是 Gradio 服务器托管在另一台机器上,因此任何输入文件都必须通过公共 URL 访问,以便可以在远程机器上下载。
在互联网上托管文件的方法有很多,但它们都需要在工作流中添加一个手动步骤。在 LLM 代理时代,我们不应该期望它们能为您处理这个步骤吗?
在这篇文章中,我们将展示如何将您的 LLM 连接到“文件上传”MCP 服务器,以便它可以在适当的时候为您处理文件上传!
从版本 5.36.0 开始,Gradio 现在自带一个内置的 MCP 服务器,可以将文件上传到正在运行的 Gradio 应用程序。在服务器的“查看 API”页面中,如果任何工具需要文件输入,您应该会看到以下代码片段
启动 MCP 服务器的命令接受两个参数
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> 设置得尽可能小,以防止意外的文件上传!