LLMs之MCP:如何使用 Gradio 构建 MCP 服务器

LLMs之MCP:如何使用 Gradio 构建 MCP 服务器

导读: 本文详细介绍了如何使用Gradio构建MCP服务器,包括前提条件、构建方法、关键特性和相关资源。通过一个简单的字母计数示例,演示了如何将Gradio应用转换为LLM可以使用的工具。Gradio在构建MCP服务器比较便利和灵活,开发者可以使用Gradio为LLM添加各种自定义功能。

>> Gradio 的新功能:Gradio 现在支持将应用作为 MCP 服务器启动,使得 LLMs 能够调用这些应用作为工具,扩展其能力。

>> 构建 MCP 服务器的简便性:只需几行代码,开发者就可以将自己的 Python 函数包装为 LLMs 可调用的工具,极大地降低了集成门槛。

>> 广泛的适用性:无论是图像生成、音频合成还是数学计算,只要是 Python 函数,都可以通过 Gradio 转换为 MCP 工具,供 LLMs 使用。

总之,Gradio 与 MCP 的集成为开发者提供了一个强大而灵活的工具,使得构建和部署可供 LLMs 使用的工具变得前所未有的简单。

目录

[如何使用 Gradio 构建 MCP 服务器](#如何使用 Gradio 构建 MCP 服务器)

[1. 引言](#1. 引言)

[2. 构建 MCP 服务器的先决条件](#2. 构建 MCP 服务器的先决条件)

[3. 为什么构建 MCP 服务器?](#3. 为什么构建 MCP 服务器?)

[4. 示例:统计单词中某个字母的出现次数](#4. 示例:统计单词中某个字母的出现次数)

[5. Gradio 与 MCP 集成的关键特性](#5. Gradio 与 MCP 集成的关键特性)


如何使用 Gradio 构建 MCP 服务器

|------------|--------------------------------------------------------------------------------------------------------------------------------|
| 地址 | 文章地址:https://huggingface.co/blog/gradio-mcp |
| 时间 | 2025年4月30日 |
| 作者 | Abubakar Abid yuvraj sharma |

1. 引言

Gradio 是一个广泛使用的 Python 库,每月有超过 100 万开发者使用它来构建机器学习模型的用户界面。 除了创建 UI,Gradio 还提供 API 功能,现在更支持将 Gradio 应用作为 Model Context Protocol(MCP)服务器启动的新功能,使得大型语言模型(LLMs)能够调用这些应用作为工具。

>> Gradio是一个流行的Python库,用于构建机器学习模型的接口。

>> Gradio不仅可以创建UI,还提供API功能。

>> Gradio应用现在可以作为LLM的Model Context Protocol (MCP) 服务器启动。这意味着Gradio应用可以被LLM调用作为工具。

2. 构建 MCP 服务器的先决条件

明确了使用Gradio构建MCP服务器所需的软件环境。要构建 MCP 服务器,需要满足以下条件:

>> 安装Gradio时需要包含[mcp] extra,即pip install "gradio[mcp]"。

>> 需要支持工具调用且使用MCP协议的LLM应用,例如Claude Desktop, Cursor, 或 Cline(称为"MCP客户端")。

3. 为什么构建 MCP 服务器?

MCP 服务器是一种标准化的方式,用于向 LLMs 暴露工具,使其能够执行额外的功能,如生成或编辑图像、合成音频或执行特定计算(例如质因数分解)。Gradio 使得构建这些 MCP 服务器变得简单,将任何 Python 函数转换为 LLMs 可使用的工具。

阐述了构建MCP服务器的价值和意义,强调了Gradio的便利性。

>> MCP服务器是一种标准化的方式来暴露工具,以便LLM可以使用它们。

>>MCP服务器可以为LLM提供各种额外的能力,例如生成或编辑图像、合成音频、执行特定计算等。

>>Gradio使得构建这些MCP服务器变得容易,将任何Python函数转换为LLM可以使用的工具。

4. 示例:统计单词中某个字母的出现次数

通过一个具体的例子,演示了如何使用Gradio构建MCP服务器,并提供了配置信息。LLMs 在统计单词中某个字母的出现次数方面表现不佳。 通过为其提供一个工具,可以提升其能力。

以下是一个使用 Gradio 构建的简单应用,用于统计单词或短语中某个字母的出现次数:

通过设置mcp_server=True,Gradio应用就可以作为MCP服务器运行。

Gradio自动将letter_counter函数转换为MCP工具,函数的docstring用于生成工具的描述和参数。

提供了将MCP服务器URL添加到MCP客户端配置的示例:

python 复制代码
import gradio as gr

def letter_counter(word, letter):
    """统计特定字母在单词中的出现次数。

    参数:
        word: 要分析的单词或短语
        letter: 要统计的字母

    返回:
        字母在单词中出现的次数
    """
    return word.lower().count(letter.lower())

demo = gr.Interface(
    fn=letter_counter,
    inputs=["text", "text"],
    outputs="number",
    title="字母计数器",
    description="统计某个字母在单词中出现的次数"
)

demo.launch(mcp_server=True)

设置 mcp_server=True 后,Gradio 应用将:

  1. 启动常规的 Gradio Web 界面

  2. 启动 MCP 服务器

  3. 在控制台打印 MCP 服务器的 URL

MCP 服务器将可通过以下地址访问:http://your-server:port/gradio_api/mcp/sse

Gradio 会自动将 letter_counter 函数转换为 LLMs 可使用的 MCP 工具。 函数的文档字符串用于生成工具的描述及其参数信息。

只需将此 URL 端点添加到 MCP 客户端的配置中即可,例如:

python 复制代码
{
  "mcpServers": {
    "gradio": {
      "url": "http://your-server:port/gradio_api/mcp/sse"
    }
  }
}

对于尚不支持 SSE 的 MCP 客户端(如 Claude Desktop),可以使用 mcp-remote 工具进行中转。 首先安装 Node.js,然后在 MCP 客户端配置中添加以下内容:

python 复制代码
{
  "mcpServers": {
    "gradio": {
      "command": "npx",
      "args": [
        "mcp-remote",
        "http://your-server:port/gradio_api/mcp/sse"
      ]
    }
  }
}

此外,可以通过 Gradio 应用底部的 "View API" 链接,点击 "MCP" 查看确切的配置。

5. Gradio 与 MCP 集成的关键特性

详细介绍了Gradio <> MCP集成的关键特性,包括工具转换、环境变量支持、文件处理和托管服务器。

****>> 工具转换:****Gradio 应用中的每个 API 端点都会自动转换为具有相应名称、描述和输入模式的 MCP 工具。 可以通过访问 http://your-server:port/gradio_api/mcp/schema 或 Gradio 应用底部的 "View API" 链接,点击 "MCP" 查看工具和模式。

>> 环境 变量支持: 可以使用mcp_server参数或设置GRADIO_MCP_SERVER=True环境变量来启用MCP服务器功能。

>> 文件处理: 服务器自动处理文件数据转换,包括base64编码字符串到文件数据、图像文件处理和临时文件存储。

>> 托管 MCP 服务器在 �� Spaces 上: 可以将Gradio应用免费发布到Hugging Face Spaces,从而获得免费的托管MCP服务器。

建议将输入图像和文件作为完整的URL传递("http://..." 或 "https://..."),因为MCP客户端不总是正确处理本地文件。

相关推荐
charlee443 小时前
PandasAI连接LLM进行智能数据分析
ai·数据分析·llm·pandasai·deepseek
EdisonZhou4 小时前
多Agent协作入门:群聊编排模式
llm·aigc·.net core
SEO_juper7 小时前
企业级 AI 工具选型报告:9 个技术平台的 ROI 对比与部署策略
人工智能·搜索引擎·百度·llm·工具·geo·数字营销
同志们9 小时前
LiteLLM Go: 多平台LLM客户端统一接口实现
llm·go
Q同学9 小时前
SciMaster:无需微调,在人类最后考试上刷新 SOTA
人工智能·llm·agent
聚客AI10 小时前
🚀深度解析Agentic RAG:如何突破模型的知识边界
人工智能·llm·掘金·日新计划
青Cheng序员石头13 小时前
【转译】Agentic AI 与 AI Agent:五大差异及其重要性
llm·aigc·agent
青Cheng序员石头13 小时前
Prompt Engineering vs Vibe Coding vs Context Engineering
langchain·llm·aigc
数据智能老司机13 小时前
构建由 LLM 驱动的 Neo4j 应用程序——使用 Neo4j 和 Haystack 实现强大搜索功能
langchain·llm·aigc
胡耀超14 小时前
我们如何写好提示词、发挥LLM能力、写作指南:从认知分析到动态构建的思维方法
人工智能·python·学习·大模型·llm·提示词·八要素思维