掘金 人工智能 前天 12:07
我是如何构建MCP服务器并免费托管的
index_new5.html
../../../zaker_core/zaker_tpl_static/wap/tpl_guoji1.html

 

本文介绍了如何使用Gradio快速将Python函数封装为MCP服务器,并通过实例演示了将计算弹道距离的函数转换为MCP的过程。文章详细阐述了从安装Gradio、编写函数、创建Gradio界面到启动MCP服务器的完整流程,并展示了如何将该MCP服务器与Claude Desktop等MCP客户端集成。此外,文章还提到了将MCP托管到Hugging Face Spaces上,实现免费托管的方法,让用户能够轻松地创建和部署自己的MCP服务器,拓展了Python函数的使用场景。

🚀 使用Gradio可以快速将Python函数转换为MCP服务器。通过Gradio的界面,用户可以方便地定义输入、输出,并将其封装为MCP接口。

💡 创建MCP服务器的步骤包括安装Gradio库、编写Python函数、使用gr.Interface创建界面,以及使用app.launch(mcp_server=True)启动MCP服务器。这个过程简单易行,即使是初学者也能快速上手。

🔗 MCP服务器可以与Claude Desktop、Cursor等MCP客户端集成。通过配置客户端,可以调用MCP服务器提供的功能,实现更强大的功能。

☁️ Hugging Face Spaces提供了免费托管MCP服务器的方案。用户可以将MCP服务器部署到Hugging Face Spaces上,实现云端访问,方便与其他用户共享和使用。

✅ 文章以计算弹道距离的函数为例,详细演示了整个转换和集成过程,包括在Claude Desktop中配置MCP服务器,验证其功能。这为读者提供了实用的操作指南。

只需一分钟即可将任何Python函数封装为MCP.

我对MCP的第一印象是, ...哇!

对其他人来说, 这没什么特别的. 当Antropic发布这个令人惊叹的协议时, 我们都感到震惊. 一夜之间, 一个完整的生态系统诞生了, 拥有数百个MCP服务器.

有一件事一直困扰着我.

如何创建任何我想要的MCP服务器? 如何将Python函数转换为MCP? 如何将我的私有API接口转换为MCP?

答案直到最近才浮现在我脑海中.

在浏览电子邮件简讯时, 我看到一个链接指向Huggingface. 它说你可以用不到五行Python代码创建一个MCP. 这太棒了.

我试了一下, 现在我已经为个人使用转换了大量MCP服务器.

其中一些可以通过现有的MCP解决方案实现, 但它们没有提供我需要的精细控制. 不过, 我的自定义MCP可以做到.

这就是它的运作方式.

使用 Gradio 界面将 Python 函数转换为 MCP.

Gradio 使这成为可能.

我原本以为 Gradio 只是一个网页界面构建工具. 它仍然是, 但现在 Gradio 能够做更多事情. 我们可以使用它来构建 MCP 服务器.

我喜欢 Gradio, 因为它既可以作为网页应用, 也可以作为笔记本中的嵌入式工具.

6 个 Python GUI 框架, 用于创建桌面, 网页甚至移动应用.

你可以纯粹用 Python 构建出精美的应用.

以下是构建 MCP 服务器的步骤. 我们还将将其连接到 Claude 桌面. 但首先, 让我们从安装开始.

pip install "gradio[mcp]"# or: uv add "gradio[mcp]"

假设我们有一个计算弹道距离的函数. 它可以是任何内容. 但这个示例应该可以正常工作.

def compute_projectile_distance(initial_speed, angle):    """    Calculate the horizontal distance traveled by a projectile.    Parameters:    initial_speed (float): Initial speed of the projectile in m/s    angle (float): Launch angle in degrees    Returns:    float: Horizontal distance traveled in meters    """    # Convert angle from degrees to radians    angle_rad = math.radians(angle)    # Gravitational acceleration (m/s²)    g = 9.81    # Calculate the horizontal distance using the projectile motion formula:    # distance = (initial_speed² * sin(2*angle)) / g    distance = (initial_speed**2 * math.sin(2 * angle_rad)) / g

现在, 我们可以将它转换为 MCP. 以下是操作步骤.

app = gr.Interface(    fn=compute_projectile_distance,    inputs=["number", "number"],    outputs="number",    title="Compute Projectile Distance",    description="Computes the theoretical horizontal distance a projectile travels for a given initial speed and angle.")

通过这个API调用, 我们的应用程序就可以作为MCP运行. 然而, 以下代码行会创建实际的MCP服务器.

app.launch(mcp_server=True)

现在, 我们可以像往常一样启动应用程序.

python app.py

这将启动我们的MCP服务器, 地址为: http://localhost:7860/gradio_api/mcp/sse

现在可以为任何客户端进行配置. Claude Desktop, Cursor 和 Cline 是流行的 MCP 客户端. 你也可以自行开发客户端.

在本篇文章中, 我将演示如何将其与 Claude Desktop 集成.

与 MCP 服务器一同启动的还有 Gradio 的应用程序网页界面. 你可通过 http://localhost:7860 访问该界面. 在网页界面的底部, 你会看到一个名为“通过 API 使用”的按钮.

点击该按钮.

这将打开一个弹出窗口. 其中有一个名为 MCP 的按钮. 点击它以查看如何设置 MCP 服务器与客户端的配置说明.

我使用这里标记的第二种方法, 该方法使用 Node.js. 要使此方法生效, 你需要在计算机上安装 Node.js.

将以下内容复制并粘贴到 Claude Desktop 的配置文件中. 你可以在安装位置找到名为 claude_desktop_config.json 的文件.

如果你无法找到安装位置, 请执行以下操作.

打开Claude Desktop, 点击应用程序左上角的汉堡菜单. 然后选择“文件”并点击“设置”. 最后进入“开发者设置”并点击“编辑配置”按钮.

粘贴配置后, 你需要重新启动Claude Desktop. 这样就完成了. Claude Desktop现在可以调用你的函数来计算弹道距离.

让我们试试看.

在上面的提示中, 我询问如果 Tim 以 2m/s 的速度和 30 度角投掷一块石头, 是否会击中 Sam? Sam 距离 Tim 25 米.

Claude 并未自行进行计算. 相反, Claude 使用了我们提供的工具(通过 MCP). 基于该工具的结果, 模型得出结论:石头不会击中 Sam.

看! 创建MCP, 启动MCP服务器, 连接MCP客户端以及使用工具都轻而易举. 这就是我喜欢这种方法的原因.

MCP已创建;如何托管?

私有MCP需要托管. 你需要自行处理.

但你知道吗? 将其放入HuggingFace Space, 即可获得免费托管.

如果你是第一次在 Spaces 上发布, 这与 Git 的操作非常相似.

前往 HuggingFace Spaces 并点击“新建空间”. 填写详细信息并选择 Gradio 作为空间 SDK. 保持模板空白.

当你第一次创建空间时, 会收到将空间与本地代码库连接的说明. 如果你之前使用过 Git, 请原谅我重复这些内容.

确保在 app.launch 方法中添加 share=True.

app.launch(mcp_server=True, share=True)

如果没有这个设置, 你的应用和API只能在同一环境中使用. 但当我们将其托管在云端时, 我们希望能够从本地计算机访问它. 当你将此设置为True时, Gradio会为你提供一个公共URL, 你可以将其替换到你的客户端(Claude Desktop)中.

最后思考

MCP是新的, 所以我不能声称自己是专家.

我虽然知道如何将 MCP 服务器连接到 Claude Desktop 和 Cursor, 但不知道如何创建一个. 我以为这会像写博士论文一样复杂.

但 Gradio 让这一切变得非常简单.

我现在已经为个人使用创建了数十个 MCP. 你创建过 MCP 服务器吗? 如果不是使用 Gradio, 你更喜欢哪种方法?

好吧, 今天的内容就分享到这里啦!

一家之言, 欢迎拍砖!

Happy coding! Stay GOLDEN!

Fish AI Reader

Fish AI Reader

AI辅助创作,多种专业模板,深度分析,高质量内容生成。从观点提取到深度思考,FishAI为您提供全方位的创作支持。新版本引入自定义参数,让您的创作更加个性化和精准。

FishAI

FishAI

鱼阅,AI 时代的下一个智能信息助手,助你摆脱信息焦虑

联系邮箱 441953276@qq.com

相关标签

Gradio MCP Python Hugging Face Spaces
相关文章