MCP协议(streamable http)简单示例
目的:通过官方mcp库(python-sdk)来实现一个简单的mcp server(基于streamable http协议),然后使用cherry studio来完成对接,让大模型调用这个服务。
一、安装及初始化
## 准备python虚拟化环境
mkdir d:mcp-server
cd d:mcp-server
uv init -p 3.12
uv venv -p 3.12
二、添加官方mcp包
uv add mcp[all]==1.8.1
#当前最新版为1.8.1,从1.8.0开始支持streamable http协议
三、 编写python代码,文件名为:
mcp-server-02-streamable.py
from mcp.server.fastmcp import FastMCP
# stateless_http=True 表明使用无状态通信
# log_level="DEBUG" 方便调试
mcp = FastMCP("StatelessServer", stateless_http=True, log_level="DEBUG")
@mcp.tool('add')
def add(a: int, b: int) -> int:
"""
函数说明:两个整数相加并返回结果。
:param a: 第一个整数
:param b: 第二个整数
:return: 两数之和
"""
return a + b
@mcp.tool('multiply')
def multiply(a: int, b: int) -> int:
"""
函数说明:两个整数相乘并返回结果。
:param a: 第一个整数
:param b: 第二个整数
:return: 两数之积
"""
return a * b
# 使用 streamable-http 方式运行服务器
if __name__ == "__main__":
mcp.run(transport="streamable-http")
代码功能:编写了两个tools,分别为两整数相加及两整数相乘。
四、运行代码
uv run .mcp-server-02-streamable.py
## 以下为输出:
[05/14/25 10:56:08] DEBUG Using proactor: IocpProactor proactor_events.py:634
INFO: Started server process [19964]
INFO: Waiting for application startup.
INFO StreamableHTTP session manager started streamable_http_manager.py:109
INFO: Application startup complete.
INFO: Uvicorn running on http://0.0.0.0:8000 (Press CTRL+C to quit)
打开浏览器访问地址:http://localhost:8000/mcp,出现如下内容表明正常。

mcp streamable http运行
关掉浏览器,打开cherry studio。
五、使用cherry studio来调用上述mcp 工具,实现加法计算、乘法计算及混合计算。
打开cherry studio,转到mcp 服务器配置:
按如下图填写参数:

mcp 工具配置
提示:名称和描述随意,重点为类型和URL。接图填写即可,最后打开右上角绿色开关,点击保存。注意,在使用过程中,第四步中的运行代码窗口不能关闭,否则运行不成功。
打开Cherry studio聊天窗口,本示例选择qwen3:32b模型,你也可以选择其它大模型尝试。
第一步:列出可用工具
提示词:请列出可用工具
回复:

第二步:计算两数加法:
提示词:请计算12+68

第三步:计算两数乘法:
提示词:345*888

第四步:计算混合运算:
提示词:128*86+34,请计算结果

第四步:计算带括弧的混合运算:
提示词:(1008+8888)*45,请计算

完成实验。
总结:通过官方的mcp库,实现了简单的加法及乘法计算,大模型能通过自身能力按四则运算规律分解计算步骤,并将结果汇总。
后续可能性:
1)基于streamable http协议的mcp工具将越来越流行,与stdio协议的工具形成互补。
2)官方mcp库很好用,实现代码简单,为开发者提供了便利。
3)cherry studio软件调用mcp工具很方便,给用户提供了更多的可能性。
4) qwen3:32b调用工具可行性很高,达到可用级别。

