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

article/2025/8/5 12:50:05

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 服务器

1. 引言

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

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

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

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


如何使用 Gradio 构建 MCP 服务器

地址

文章地址:https://huggingface.co/blog/gradio-mcp

时间

2025年430

作者

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客户端配置的示例:

import gradio as grdef 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 客户端的配置中即可,例如:

{"mcpServers": {"gradio": {"url": "http://your-server:port/gradio_api/mcp/sse"}}
}

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

{"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客户端不总是正确处理本地文件。


http://www.hkcw.cn/article/lihMgCdZHa.shtml

相关文章

Redis最佳实践——性能优化技巧之集群与分片

Redis集群与分片在电商应用中的性能优化技巧 一、Redis集群架构模式解析 1. 主流集群方案对比 方案核心原理适用场景电商应用案例主从复制读写分离数据冗余中小规模读多写少商品详情缓存Redis Sentinel自动故障转移监控高可用需求场景订单状态缓存Redis Cluster原生分布式分片…

2025年最新Android Studio汉化教程

首先把idea更新到IntelliJ IDEA 2024.3.5 (Community Edition)&#xff0c;然后关闭AndroidStudio 没有idea可以下载最新的 IntelliJ IDEA – the IDE for Pro Java and Kotlin Development 找到idea的安装路径&#xff0c;找到“\plugins\localization-zh 然后把“localizat…

uniapp实现下载文件到手机(安卓),通过系统分享到其他app

要在UniApp中实现下载文件到安卓手机&#xff0c;我这里使用的是plus.io直接获取文件系统&#xff0c;大家可以找一下dcloud插件或者其他api。以下是一个简单的步骤&#xff1a; 首先&#xff0c;你需要创建一个按钮或者其他触发下载的UI元素&#xff0c;用户点击后触发文件下载…

flutter-渐变色边框和渐变色文字和渐变色背景

文章目录 1. 介绍2. 代码实现2-1. 渐变色背景2-2. 渐变色边框2-3. 宽高由内容撑起的渐变色边框2-4. 渐变色文本 3. 完整例子 1. 介绍 在 flutter 中&#xff0c;渐变有三种&#xff0c;线性渐变 LinearGradient、放射状渐变 RadialGradient、扇形渐变 SweepGradient。一般都是…

记录一次macbook 安装macOS+win11双系统的历程。包括MacBook电脑恢复、绕过win11限制等

一、MacBook恢复macOS系统&#xff0c;或有问题可以重新用此操作 关机状态&#xff0c;同时摁住 optioncommandR 三个键&#xff0c;然后再摁开机键&#xff0c;等出现 一个地球的图标即可松开。 然后正常链接wifi&#xff0c;让它自动下载一些组件即可。 这里对硬盘进行重新…

移动电视盒MGV2000刷安卓及Armbian笔记

我的是mgv2000 JL代工的&#xff0c;配置是四核1G内存8GEMMC&#xff0c;我的目的是把他刷成linux&#xff0c;网上查询资料后&#xff0c;了解到大概分以下两个步骤&#xff1a; #一、先把原来移动自带的系统刷新为适合的安卓系统 #二、在新的安卓系统下&#xff0c;再刷成A…

蚂蚁百宝箱3分钟上手MCP:6步轻松构建智能体应用并发布小程序

蚂蚁百宝箱3分钟上手MCP&#xff1a;6步轻松构建智能体应用并发布小程序 AI 能聊天、能画画&#xff0c;但它能帮你赚钱吗&#xff1f;智能体空有一身本领却难以变现&#xff0c;是不是让你也感到无奈&#xff1f; 别担心&#xff0c;蚂蚁百宝箱「MCP专区」来啦&#xff01;现…

Android Studio 使用WIFI连接手机进行无线调试 adb命令

1.将电脑和手机连接到同一WIFI 2.手机连接usb&#xff0c;连接到AndroidStudio&#xff0c;和平时连线调试一样。 3.打开AndroidStudio下方Terminal便可以开始输入adb命令。 4.输入 adb devices 命令查看设备 adb devices效果如下 5.设置设备端口号命令 adb tcpip 5555 端…

MySQL—使用binlog日志恢复数据

一、binlog日志恢复数据简介 在 MySQL 中&#xff0c;使用二进制日志&#xff08;binlog&#xff09;恢复数据是一种常见的用于故障恢复或数据找回的方法。以下是详细的使用步骤&#xff1a; 确认 binlog 已启用&#xff1a;首先需要确认 MySQL 服务器已经启用了二进制日志功…

Kotlin-类和对象

文章目录 类主构造函数次要构造函数总结 对象初始化 类的继承成员函数属性覆盖(重写)智能转换 类的扩展 类 class Student { }这是一个类,表示学生,怎么才能给这个类添加一些属性(姓名,年龄…)呢? 主构造函数 我们需要指定类的构造函数。构造函数也是函数的一种,但是它专门…

OpenWrt 配置 IOS 、 Android USB共享网络

前言 由于快过年了老家的宽带早已到期, 手机卡流量还有100G, 于是想到使用手机USB网络共享给openwrt来上网。 设备准备 准备手机( IOS / Android / USB随身Wi-Fi ) 带USB插口的openwrt路由器 openwrt配置 安装 kmod-usb-net-rndis、kmod-usb-storage 依赖包: 打开openwrt…

手把手教你在VSCode里开启中文模式(新手必看避坑指南)

文章目录 一、核心操作三步走&#xff08;有手就会&#xff09;1. 插件商店精准搜索2. 闪电安装法3. 终极验证 二、常见翻车现场急救指南场景1&#xff1a;插件装了但没反应场景2&#xff1a;菜单汉化不全场景3&#xff1a;终端/调试界面英文 三、高阶玩家必备骚操作1. 多语言自…

8个2025年必备的IntelliJ IDEA免费插件

IntelliJ IDEA 必备免费插件&#xff0c;全面提升 Java 开发效率与代码质量 微信搜索关注《Java学研大本营》 在 Java 开发中&#xff0c;IntelliJ IDEA 已然是一款强大的集成开发环境。但如果能搭配上合适的插件&#xff0c;能让开发体验提升到全新的高度。 今天给大家分享一…

Mac电脑(M芯片)安装ubuntu22.04

一、下载VMware虚拟机 VMware官网下载VMware Fusion 二、下载ubuntu镜像 M系列的Mac电脑要下载arm架构的镜像 方法一&#xff1a;官网下载 方法二&#xff1a;清华源下载 清华源镜像 点击获取下载链接 选择Ubuntu&#xff0c;下载22.04.5(arm64,Server) 三、创建虚拟机 …

Docker Desktop配置国内镜像源教程

在使用 Docker 时&#xff0c;由于默认镜像源在国外&#xff0c;经常会遇到下载速度慢、连接超时等问题。本文将详细介绍如何在 Windows 系统中为 Docker 配置国内镜像源&#xff0c;以提升镜像拉取速度。 常用国内镜像源 https://docker.1ms.run清华镜像源 https://docker.m…

Python详细安装教程——Python及PyCharm超详细安装教程:新手小白也能轻松搞定!(最新版)

Python作为一门简单易学、功能强大的编程语言&#xff0c;近年来在数据分析、人工智能、Web开发等领域广受欢迎。而PyCharm作为一款专业的Python集成开发环境&#xff08;IDE&#xff09;&#xff0c;提供了强大的代码编辑、调试和项目管理功能&#xff0c;是Python开发者的得力…

2024年最新版IntelliJ IDEA下载安装过程(含Java环境搭建)

1.摘要 本文介绍了2024年最新版IntelliJ IDEA的下载和安装过程&#xff0c;包括IntelliJ IDEA介绍、Java和JDK的介绍、如何选择社区版和商业版、Java环境的搭建、讲解了JDK的下载安装及配置。同时&#xff0c;文章还简要概述了Java语言的特点和适用场景&#xff0c;是Java初学…

Windows docker下载minio出现“Using default tag: latestError response from daemon”

Windows docker下载minio出现 Using default tag: latest Error response from daemon: Get "https://registry-1.docker.io/v2/": context deadline exceeded 此类情况&#xff0c;一般为镜像地址问题。 {"registry-mirrors": ["https://docker.re…

JetBrains 开发工具弹窗 We could not validate your license 包括但不限于IDEA/CLion/GoLand/PyCharm

JetBrains 开发工具弹窗 We could not validate your license 包括但不限于IDEA/CLion/GoLand/PyCharm 关于 JetBrains 开发工具近期更新后&#xff0c;始终弹窗 We could not validate your license的问题处理 其实问题很简单&#xff0c;弹窗的用户其实是因为地区中选择了中国…

Python深度学习环境配置(Pytorch、CUDA、cuDNN),包括Anaconda搭配Pycharm的环境搭建以及基础使用教程(保姆级教程,适合小白、深度学习零基础入门)

全流程导览 一、前言二、基本介绍2.1全过程软件基本介绍2.1.1 Pytorch2.1.2 Anaconda2.1.3 Pycharm2.1.4 显卡GPU及其相关概念2.1.5 CUDA和cuDNN 2.2 各部分相互间的联系和安装逻辑关系 三、Anaconda安装3.1安装Anaconda3.2配置环境变量3.3检验是否安装成功 四、Pycharm安装五、…