Gradio 是一个 Python 库,每月被超过 100 万开发者用于构建机器学习模型界面。除了创建用户界面,Gradio 还提供 API 功能,并且现在,Gradio 应用可以启动为大语言模型(LLM)的模型上下文协议(MCP)服务器。这意味着你的 Gradio 应用,无论是图像生成器、税务计算器还是其他功能,都可以被 LLM 作为工具调用。
本指南将展示如何用 Gradio 在几行 Python 代码中构建一个 MCP 服务器。
前提条件
如果尚未安装 Gradio,请使用 MCP 扩展安装:
pip install "gradio[mcp]"
这将安装必要的依赖项,包括 mcp
包。你还需要一个支持 MCP 协议工具调用的 LLM 应用,例如 Claude Desktop、Cursor 或 Cline(这些被称为“MCP 客户端”)。
为什么构建 MCP 服务器?
MCP 服务器是一种标准化的工具暴露方式,供 LLM 使用。MCP 服务器可以为 LLM 提供各种额外功能,例如生成或编辑图像、合成音频,或执行特定计算,如质因数分解。
Gradio 简化了构建 MCP 服务器的过程,将任何 Python 函数转换为 LLM 可用的工具。
示例:统计单词中的字母数
LLM 在统计单词中字母数量(例如“strawberry”中“r”的个数)方面表现不佳。但如果我们为它配备一个工具呢?让我们编写一个简单的 Gradio 应用来统计单词或短语中的字母数:
import gradio as gr
def letter_counter(word, letter):
"""Count the occurrences of a specific letter in a word.
Args:
word: The word or phrase to analyze
letter: The letter to count occurrences of
Returns:
The number of times the letter appears in the word
"""
return word.lower().count(letter.lower())
demo = gr.Interface(
fn=letter_counter,
inputs=["text", "text"],
outputs="number",
title="Letter Counter",
description="Count how many times a letter appears in a word"
)
demo.launch(mcp_server=True)
注意,我们在 .launch()
中设置了 mcp_server=True
。这就足以让你的 Gradio 应用作为 MCP 服务器运行!运行此应用时,它将:
启动常规的 Gradio 网页界面 启动 MCP 服务器 在控制台打印 MCP 服务器 URL
MCP 服务器将可通过以下地址访问:
http://your-server:port/gradio_api/mcp/sse
Gradio 自动将 letter_counter
函数转换为 LLM 可用的 MCP 工具。函数的文档字符串用于生成工具及其参数的描述。
你只需将此 URL 端点添加到你的 MCP 客户端(例如 Claude Desktop、Cursor、Cline 或 Tiny Agents),通常只需在设置中粘贴以下配置:
{
"mcpServers": {
"gradio": {
"url": "http://your-server:port/gradio_api/mcp/sse"
}
}
}
(顺便说一句,你可以通过 Gradio 应用的底部“查看 API”链接,点击“MCP”找到精确的配置代码进行复制粘贴。)

Gradio <> MCP 集成的关键功能
工具转换:Gradio 应用的每个 API 端点自动转换为 MCP 工具,包含对应的名称、描述和输入架构。要查看工具和架构,请访问 http://your-server:port/gradio_api/mcp/schema
,或通过 Gradio 应用底部的“查看 API”链接,点击“MCP”。动态界面:Gradio 允许开发者使用简单的 Python 代码创建复杂界面,支持动态 UI 操作,提供即时视觉反馈。 环境变量支持:有两种方式启用 MCP 服务器功能: 使用 mcp_server
参数,如上所示:
demo.launch(mcp_server=True)
使用环境变量:
export GRADIO_MCP_SERVER=True
文件处理:服务器自动处理文件数据转换,包括: 将 base64 编码字符串转换为文件数据 处理图像文件并以正确格式返回 管理临时文件存储
图像处理升级:近期 Gradio 更新改进了图像处理功能,支持类似 Photoshop 的缩放和平移,以及完全透明度控制。 输入建议:强烈推荐将输入图像和文件以完整 URL(“http://...” 或 “https://...”)形式传递,因为 MCP 客户端不一定能正确处理本地文件。 托管 MCP 服务器:你可以在 Hugging Face Spaces 上免费发布 Gradio 应用,从而获得免费托管的 MCP 服务器。Gradio 是更广泛生态系统的一部分,包括用于程序化构建或查询机器学习应用的 Python 和 JavaScript 库。
以下是一个 Spaces 示例:https://huggingface.co/spaces/abidlabs/mcp-tools。你可以将以下配置添加到你的 MCP 客户端,立即开始使用该 Space 的工具:
{
"mcpServers": {
"gradio": {
"url": "https://abidlabs-mcp-tools.hf.space/gradio_api/mcp/sse"
}
}
}
通过使用 Gradio 构建 MCP 服务器,你可以轻松为 LLM 添加各种自定义功能。只需要几行 Python 代码,你的 Gradio 应用就能成为一个强大的工具,供 LLM 调用,增强其在图像生成、计算或其他任务中的能力。(来源)