大语言模型非常非常强大,但也有一些弱点。例如,需要精确推理与计算的场景、实时数据(如天气)获取等。MCP则是对这类外部能力扩展的一个接口,让大模型/Agent都能够便捷的接入外部工具解决此类问题。
本文通过演示创建一个外部计算24点的程序(MCP Server),让Cursor Agent访问LLM时具备快速的24点计算能力,从而帮助开发者快速了解如何构建一个MCP Server。该24点计算的MCP Server也已经在🤗 Hugging Face对外发布,你也可以接入你的Cursor(或其他MCP Host)进行测试(参考本文小结:在Cursor中配置MCP工具)[1]。
创建 MCP Server
现在各种工具框架已经把MCP
入门构建的门槛降低非常低了,这里将使用Gradio
构建一个24点计算的程序,并以MCP Server
的方式提供给各MCP Host
(本文是Cursor
)使用,同时将该MCP Server
发布在🤗 Hugging Face
的Space
上,以供其他人测试和使用。
创建24点计算的MCP Server
使用Gradio
创建MCP的代码如下:
#
# A project for mcp learning by orczhou
#
from solve_24_game import solve_24_game
import gradio as gr
def gradio_interface(a, b, c, d):
return solve_24_game([a, b, c, d])
# Create the Gradio interface
demo = gr.Interface(
fn=gradio_interface,
title="solve the 24 game/puzzle",
inputs=[
gr.Number(label="Number 1", value=1),
gr.Number(label="Number 2", value=2),
gr.Number(label="Number 3", value=3),
gr.Number(label="Number 4", value=4),
],
outputs="text",
flagging_mode="never",
description="Solves the 24-point game. Given a list of four numbers, it attempts to find a mathematical expression using addition, subtraction, multiplication, and division that evaluates to 24. Each number must be used exactly once.",
theme=gr.themes.Ocean()
)
# Launch the interface and MCP server
if __name__ == "__main__":
demo.launch(mcp_server=True)
Gradio 不仅可以快速构建可视化的交互界面(通常用于机器学习领域),还可以非常简单的构建起MCP Server,并将其托管于🤗 Hugging Face
:
demo.launch(mcp_server=True)
在启动时,新增mcp_server=True
即可以同时启动一个与此界面“相同”的MCP Server
。
左侧的代码首先创建了一个如下Web
服务:

在创建了上述的Web服务的同时,Gradio
还会同时创建了一个如下Endpoint
的MCP Server:
https://orczhou-solve-24-game.hf.space/gradio_api/mcp/sse
如果是本地运行,Endpoint
则可能是:
http://127.0.0.1:7860/gradio_api/mcp/
这里解决24点问题的代码存储在文件solve_24_game.py
中,代码参考:solve_24_game.py。如何解决24点问题并不是本文的重点,这里不做详述。
本地运行该MCP Server
在本地,则只需要使用python3 app.py
命令即可运行:
python3 app.py
* Running on local URL: http://127.0.0.1:7860
* To create a public link, set `share=True` in `launch()`.
🔨 Launching MCP server:
** Streamable HTTP URL: http://127.0.0.1:7860/gradio_api/mcp/
* [Deprecated] SSE URL: http://127.0.0.1:7860/gradio_api/mcp/sse
在Hugging Face上发布 MCP Server
在 🤗 Hugging Face
上可以非常方便的创建并托管简单的MCP Server。详细的介绍可以参考:Spaces as MCP servers。这里演示如何进行操作。
前提要求
- 首先,你要有一个
🤗 Hugging Face
的账号,注册即可 - (可选)可能还需要进行充值与信用卡绑定
- 准备好
🤗 Hugging Face
的Token
,并配置好权限
通常,Hugging Face运行程序的资源是需要付费的。但是也有部分免费资源,例如MCP
托管的时候,提供了一个免费的CPU Basic(2 vCPU 16 GB RAM)
的免费资源(当前免费,未来也可能是计费的)。
在本地代码向Space
上推送的时候,则需要通过Token
的方式进行认证和权限管理。
创建 Space
进入🤗 Hugging Face
,进入Space
,点击“+ New Space
”创建新的Space
,则进入右侧的创建表单。
注意到,在Space Hardware
选项中,这里的CPU Basic 2 vCPU 16GB
是免费规格,这里用作个人测试故选择免费。
此外,这里选择了Gradio
模板进行创建。
可以看到,这里🤗 Hugging Face
把相关操作的入门门槛降到了非常低的程度,对初学者非常友好。
提交代码
在完成创建后,可以使用 git
想仓库中提交代码,Space
则会根据代码架构,完全自动化的构建一个MCP Server向公网提供服务。
代码提交可以参考如下命令:

git clone https://huggingface.co/spaces/orczhou/solve_24_game
cd solve_24_game
git add solve_24_game.py app.py
git commit -m "mcp for 24 point game"
git remote add origin https://huggingface.co/spaces/orczhou/solve_24_game
git push -u origin main
补充说明:首先在Hugging Face托管则需要把程序命名为app.py
,此外,还需要编写一个requirements.txt
文件说明Pythone程序需要的一些模块,这里仅需要gradio[mcp]
:
cat requirements.txt
gradio[mcp]
调试
这里使用Hugging Face
和Gradio
构建的MCP
服务,可以非常方便的使用可视化的界面进行查看服务,例如,在这里可以通过,如下的URL
来进行查看该服务是否正常:solve the 24 game/puzzle。
此外,可以通过curl
命令进行调试,以确认MCP
服务是否正常:

curl -X POST \
-H "Content-Type: application/json" \
-H "Accept: application/json, text/event-stream" \
-d '{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/list",
"params": {}
}' \
-L \
https://orczhou-solve-24-game.hf.space/gradio_api/mcp/
data: {
"jsonrpc":"2.0",
"id":1,
"result":{
"tools":[{
"name":"solve_24_game_gradio_interface",
"description":"",
"inputSchema":{
"type":"object",
"properties":{
"a":{"type":"number", "default":1 },
"b":{"type":"number", "default":2 },
"c":{"type":"number", "default":3 },
"d":{"type":"number", "default":4 }
}
}
}]}}
在Cursor中配置该MCP服务
配置新的MCP服务
在Cursor
的Settings->Tools & Integrations
中找到MCP Tools
,就可以通过New MCP Server
处编辑mcp.json
,从而增加MCP Tools
。
具体的配置,参考如下:

{
"mcpServers": {
"solve_24_game": {
"type": "sse",
"url": "https://orczhou-solve-24-game.hf.space/gradio_api/mcp/sse"
}
}
}
查看Cursor中MCP配置状态
首次测试和使用MCP时,还是比较容易出错的。可以通过上述的MCP Tools
处(右图)可以查看MCP的状态,已经该MCP中可用的工具。

在Cursor中使用该MCP服务
在Agent
模式下进行对话,Cursor
背后的大模型就可以使用该MCP
的能力。为了避免Agent
生成代码(Cursor
的Agent总是倾向于生成代码解决问题),故使用如下提示词提问:
“不要生成任何代码,使用工具计算如下24点问题: 2 5 5 10”。
返回的结果如右图。可以看到,大模型拿到返回的结果(5-(2/10))*5
后,进行了必要的解释与回答。MCP
详细的调用过程如下,包括了使用的参数、返回的结果:


在我的Cursor上使用该MCP
因为这里创建的MCP Server
是运行在公网环境,故在你本地的Cursor或者其他MCP Host上也可以配置和使用该MCP服务,配置的方法参考上述小结“配置新的MCP服务”,这里不再赘述。
其他
更换Gradio的默认配色主题
可以使用 theme=gr.themes.Ocean()
选项更改主题选项:
# Create the Gradio interface
demo = gr.Interface(
...
theme=gr.themes.Ocean()
)
更多的配色主题可以参考:Theming Guide。
最后
大模型说:“我不需要帮助,愚蠢的人类!”
Leave a Reply