03-mcp-server案例分享-手搓一个MCP-server拥有属于自己的MCP_mcpserver是干什么的

部署运行你感兴趣的模型镜像

0.前言

MCP Server(模型上下文协议服务器)是一种基于模型上下文协议(Model Context Protocol,简称MCP)构建的轻量级服务程序,旨在实现大型语言模型(LLM)与外部资源之间的高效、安全连接。MCP协议由Anthropic公司于2024年11月开源,其核心目标是解决AI应用中数据分散、接口不统一等问题,为开发者提供标准化的接口,使AI模型能够灵活访问本地资源和远程服务,从而提升AI助手的响应质量和工作效率。

前期也给大家介绍过关于MCP-Server案例。mcp-server案例分享-即梦AI文生视频mcp-server案例分享-Excel 表格秒变可视化图表 HTML 报告,就这么简单。之前有小伙伴给我提过,能不能自己制作一个MCP-server并把它发布出去,然后让其他MCP-Client来调用呢?(Cherry Studio、cursor、cline、dify、fastgpt、N8N等支持MCP-Client工具),今天就带大家手搓一个MCP-server发布,并实现MCP-Client工具 调用,话不多下面看一下如果手搓。

1.modelcontextprotocol

The Model Context Protocol (MCP) 是一个开放协议,使大型语言模型应用与外部数据源和工具的无缝集成成为可能。无论是构建基于人工智能的集成开发环境 (IDE),增强聊天界面,还是创建自定义AI工作流,MCP 都提供了一种标准化的方式将大型语言模型与所需上下文连接起来。

github项目地址https://github.com/modelcontextprotocol

image-20250607155600357

我们选择 python-sdk 开发包

2.python-sdk

我们进入python-sdk 开发包的项目地址:https://github.com/modelcontextprotocol/python-sdk

uv

我们使用UV 来实现python包的依赖管理。

什么是UV?一个用 Rust 编写的极速 Python 包和项目管理工具,可替代pippoetrypyenv等多款工具

  • 核心优势
    • 速度极快:比pip快 10-100 倍,依赖解析和安装效率显著提升。
    • 功能集成:整合包管理、环境管理、脚本运行、Python 版本管理等多功能于一体。
    • 轻量高效:全局缓存实现依赖去重,节省磁盘空间;支持 Cargo 风格工作区,适合大型项目。
    • 跨平台兼容:支持 macOS、Linux、Windows 系统,安装无需 Rust 或 Python 环境。

image-20250607160058366

安装 uv (Windows为例)

powershell -ExecutionPolicy ByPass -c "irm https://astral.sh/uv/install.ps1 | iex"

安装完成后

image-20250607160327070

使用下面命令列举出我电脑上安装的python 版本

uv python list

image-20250607160550763

mcp-server-demo初始化

我们在 F:\work\code\AIcode 文件夹下新建一个 mcp-server-demo的文件件(后面存放代码)

image-20250607160932677

我们在CMD命令行窗口按照下面命令输入命令

cd F:\work\code\AIcode\mcp-server-demo
f:
uv python install 3.13
uv init mcp-server-demo

image-20250607161132480

这样我们就创建了一个 mcp-server-demo项目工程

image-20250607161155479

接下来将MCP添加到项目依赖中:

MCP 依赖添加

cd mcp-server-demo
uv add "mcp[cli]"

image-20250607161520582

3.vscode 开发

我们使用vscode 来开发一个MCP-server,打开桌面的vscode

image-20250607162106404

导入上面的项目工程文件

image-20250607162150730

我们打开main.py

def main():
    print("Hello from mcp-server-demo!")

if __name__ == "__main__":
    main()


上面是一个最基本python代码,我们运行一下,确保代码是可以运行的。(关于vscode 安装python依赖环境这里就不做详细展开,不会的同志可以搜索一下)

image-20250607162408130

点击运行 看到下面出现

Hello from mcp-server-demo!

说明我们的运行环境是OK的。

简单的MCP服务器

复制下面的代码覆盖上面的main.py

# server.py
from mcp.server.fastmcp import FastMCP

# Create an MCP server
mcp = FastMCP("Demo")

# Add an addition tool
@mcp.tool()
def add(a: int, b: int) -> int:
    """Add two numbers"""
    return a + b

# Add a dynamic greeting resource
@mcp.resource("greeting://{name}")
def get_greeting(name: str) -> str:
    """Get a personalized greeting"""
    return f"Hello, {name}!"

if __name__ == "__main__":
    mcp.run(transport="stdio")

客户端(Cherry Studio)配置

这里我们使用Cherry Studio来做测试

image-20250401231814428

点开这里,我们添加一个服务器,我们选择stdio,命令选择UV.

参数内容如下:

--directory
F:\work\code\AIcode\mcp-server-demo\mcp-server-demo
run 
main.py

image-20250607163634359

点击保存按钮完成设置。成功后我们也可以看到下面出现可用工具

image-20250607163934796

客户端(Cherry Studio)测试

我们回到cherry studio 聊天窗口中,MCP服务器中勾选我们刚才的增加的mcp-server-demo

image-20250607164209848

模型这里选择 qwen3-235B-A22B模型

image-20250607164317878

我给出的问题是

55+60 等于多少?

image-20250607164429725

以上我们就实现了一个最简单的MCP-Server

目前MCP-Server 支持三种方式(stdio、sse、streamableHttp)

image-20250607165517418

我们在实际项目中sse 方式也比较多,下面在介绍一下sse 方式。(streamableHttp 和sse方式类似)

简单的MCP服务器-SSE

这里我们修改一下代码transport 换成SSE

# server.py
from mcp.server.fastmcp import FastMCP

# Create an MCP server
mcp = FastMCP("Demo")

# Add an addition tool
@mcp.tool()
def add(a: int, b: int) -> int:
    """Add two numbers"""
    return a + b

# Add a dynamic greeting resource
@mcp.resource("greeting://{name}")
def get_greeting(name: str) -> str:
    """Get a personalized greeting"""
    return f"Hello, {name}!"

if __name__ == "__main__":
    mcp.run(transport="sse")

在vscode程序运行启动一下

image-20250607165846459

程序运行起来 对外提供一个http://127.0.0.1:8000 对外服务。

客户端(Cherry Studio)配置-SSE

我们在上面的Cherry Studio 配置修改一下 换成SSE ,地址填写 http://127.0.0.1:8000/sse

image-20250607170226686

后面的测试和前面一样,这里就不做详细展开了。点击测试 后端服务可以收到MCP-client发送的消息

image-20250607170453241

image-20250607170511290

4.打包发布

打包方式分2种,1种是使用代码打包成stdio方式上传的https://pypi.org/ 里面提供python依赖包提供下载

image-20250607171939127

这里就需要把把刚才的python打包依赖上传。上传后用户就可以通过UV 命令或者 pip install 下载这个依赖包了。这里我们就不做详细展开,本次是使用第二种方式,就是打包成SSE服务的方式部署在云服务器上方便客户端SSE 使用。

云服务器安装

​ 我有一台基于Ubuntu的云服务器,下面介绍一下在上面部署MCP-Server。

登录云服务器

image-20250607172626273

UV 安装
 curl -LsSf https://astral.sh/uv/install.sh | sh

​ 服务器上执行下面命令实现UV安装

​ 安装完成后,我们使用 uv -V 检查确保安装完成

image-20250607173010173

​ 接下来我们创建一个mcp-server-demo文件夹

mkdir mcp-server-demo
cd mkdir mcp-server-demo

image-20250607173423680

修改代码

我们把上面的main.py代码修改增加0.0.0.0端口访问,端口我们指定8002

main.py

# server.py
from mcp.server.fastmcp import FastMCP

# Create an MCP server
mcp = FastMCP("Demo")

# Add an addition tool
@mcp.tool()
def add(a: int, b: int) -> int:
    """Add two numbers"""
    return a + b

# Add a dynamic greeting resource
@mcp.resource("greeting://{name}")
def get_greeting(name: str) -> str:
    """Get a personalized greeting"""
    return f"Hello, {name}!"

if __name__ == "__main__":
    mcp.settings.host  = "0.0.0.0"
    mcp.settings.port = 8002
    mcp.run(transport="sse")

把上面的main.py 代码和pyproject.toml 文件复制到服务器对应的mcp-server-demo文件夹

image-20250607190734900

UV虚拟环境创建

接下来我们再服务器创建 UV虚拟环境

uv  venv

image-20250607191124012

依赖环境安装

接下来我们在按照python 运行依赖包

uv pip install .

image-20250607191805837

启动服务

接下来我们启动 SSE 服务,输入下面命令行启动服务

uv run  main.py

image-20250607192516962

这样我们就部署了一个云服务SSE服务了。 我们也可以在浏览器输入地址 http://14.103.204.132:8002/sse

image-20250607193753993

当然上面直接访问对外提供服务一点都不安全,是的没错,这里的确不安全,不过本次主要是讲基础知识不做安全方面的控制和管理。(主要担心增加安全方面知识很多小白就听不懂了。)

5.验证云服务SSE

​ 我们这里使用2种工作流采用SSE方式验证测试一下。

dify

​ 我们使用dify平台配置一个带有SSE 的服务端调用,详细的工作流配置这里就不做详细展开了。

​ 工作流截图如下

image-20250607195429836

image-20250607195612340

验证测试效果

image-20250607195505315

后端服务接受响应

image-20250607195535141

以上我们就完成了手搓的一个最简单的MCP-Server 给dify实现调用

N8N 调用

我们使用N8N平台配置一个带有SSE 的服务端调用,详细的工作流配置这里就不做详细展开了。

​ 工作流截图如下

image-20250607201945852

​ 我们看到在N8N 中也是可以实现这个简单SSE的调用的,服务端同样显示了调用记录

image-20250607202021811

以上我们也就完成了N8N的 MCP-client sse的调用了。

5.总结

今天主要带大家了解并实现了 MCP-Server 的搭建与部署,包括使用 Python SDK 开发包,借助 UV 进行依赖管理,在 VSCode 中开发 MCP 服务器,通过 Cherry Studio 进行客户端测试,以及将其打包部署到云服务器并验证 SSE 服务。借助 MCP-Server,我们可以实现简单的工具和资源调用,如加法工具和动态问候资源。同时,通过不同的传输方式(如 stdio、sse 等),满足不同场景下的使用需求。并且,MCP-Server 可以部署到云服务器上,方便客户端调用,如在 dify 和 N8N 平台中验证的那样。

感兴趣的小伙伴可以按照本文步骤去尝试搭建自己的 MCP-Server,体验其在大型语言模型应用与外部数据源和工具集成方面的强大功能。今天的分享就到这里结束了,我们下一篇文章见。

今天是2025年6月8日,全国高考第二天,高考加油,愿所有努力不被辜负,青春梦想就此启航✨。

零基础如何高效学习大模型?

为了帮助大家打破壁垒,快速了解大模型核心技术原理,学习相关大模型技术。从原理出发真正入局大模型。在这里我和MoPaaS魔泊云联合梳理打造了系统大模型学习脉络,这份 LLM大模型资料 分享出来:包括LLM大模型书籍、640套大模型行业报告、LLM大模型学习视频、LLM大模型学习路线、开源大模型学习教程等, 😝有需要的小伙伴,可以 扫描下方二维码免费领取🆓**⬇️⬇️⬇️

在这里插入图片描述

【大模型全套视频教程】

教程从当下的市场现状和趋势出发,分析各个岗位人才需求,带你充分了解自身情况,get 到适合自己的 AI 大模型入门学习路线。

从基础的 prompt 工程入手,逐步深入到 Agents,其中更是详细介绍了 LLM 最重要的编程框架 LangChain。最后把微调与预训练进行了对比介绍与分析。

同时课程详细介绍了AI大模型技能图谱知识树,规划属于你自己的大模型学习路线,并且专门提前收集了大家对大模型常见的疑问,集中解答所有疑惑!

在这里插入图片描述

深耕 AI 领域技术专家带你快速入门大模型

跟着行业技术专家免费学习的机会非常难得,相信跟着学习下来能够对大模型有更加深刻的认知和理解,也能真正利用起大模型,从而“弯道超车”,实现职业跃迁!

在这里插入图片描述

【精选AI大模型权威PDF书籍/教程】

精心筛选的经典与前沿并重的电子书和教程合集,包含《深度学习》等一百多本书籍和讲义精要等材料。绝对是深入理解理论、夯实基础的不二之选。

在这里插入图片描述

【AI 大模型面试题 】

除了 AI 入门课程,我还给大家准备了非常全面的**「AI 大模型面试题」,**包括字节、腾讯等一线大厂的 AI 岗面经分享、LLMs、Transformer、RAG 面试真题等,帮你在面试大模型工作中更快一步。

【大厂 AI 岗位面经分享(92份)】

图片

【AI 大模型面试真题(102 道)】

图片

【LLMs 面试真题(97 道)】

图片

【640套 AI 大模型行业研究报告】

在这里插入图片描述

【AI大模型完整版学习路线图(2025版)】

明确学习方向,2025年 AI 要学什么,这一张图就够了!

img

👇👇点击下方卡片链接免费领取全部内容👇👇

在这里插入图片描述

抓住AI浪潮,重塑职业未来!

科技行业正处于深刻变革之中。英特尔等巨头近期进行结构性调整,缩减部分传统岗位,同时AI相关技术岗位(尤其是大模型方向)需求激增,已成为不争的事实。具备相关技能的人才在就业市场上正变得炙手可热。

行业趋势洞察:

  • 转型加速: 传统IT岗位面临转型压力,拥抱AI技术成为关键。
  • 人才争夺战: 拥有3-5年经验、扎实AI技术功底真实项目经验的工程师,在头部大厂及明星AI企业中的薪资竞争力显著提升(部分核心岗位可达较高水平)。
  • 门槛提高: “具备AI项目实操经验”正迅速成为简历筛选的重要标准,预计未来1-2年将成为普遍门槛。

与其观望,不如行动!

面对变革,主动学习、提升技能才是应对之道。掌握AI大模型核心原理、主流应用技术与项目实战经验,是抓住时代机遇、实现职业跃迁的关键一步。

在这里插入图片描述

01 为什么分享这份学习资料?

当前,我国在AI大模型领域的高质量人才供给仍显不足,行业亟需更多有志于此的专业力量加入。

因此,我们决定将这份精心整理的AI大模型学习资料,无偿分享给每一位真心渴望进入这个领域、愿意投入学习的伙伴!

我们希望能为你的学习之路提供一份助力。如果在学习过程中遇到技术问题,也欢迎交流探讨,我们乐于分享所知。

*02 这份资料的价值在哪里?*

专业背书,系统构建:

  • 本资料由我与MoPaaS魔泊云的鲁为民博士共同整理。鲁博士拥有清华大学学士美国加州理工学院博士学位,在人工智能领域造诣深厚:

    • 在IEEE Transactions等顶级学术期刊及国际会议发表论文超过50篇
    • 拥有多项中美发明专利。
    • 荣获吴文俊人工智能科学技术奖(中国人工智能领域重要奖项)。
  • 目前,我有幸与鲁博士共同进行人工智能相关研究。

在这里插入图片描述

内容实用,循序渐进:

  • 资料体系化覆盖了从基础概念入门核心技术进阶的知识点。

  • 包含丰富的视频教程实战项目案例,强调动手实践能力。

  • 无论你是初探AI领域的新手,还是已有一定技术基础希望深入大模型的学习者,这份资料都能为你提供系统性的学习路径和宝贵的实践参考助力你提升技术能力,向大模型相关岗位转型发展

    在这里插入图片描述在这里插入图片描述在这里插入图片描述

抓住机遇,开启你的AI学习之旅!

在这里插入图片描述

您可能感兴趣的与本文相关的镜像

Python3.8

Python3.8

Conda
Python

Python 是一种高级、解释型、通用的编程语言,以其简洁易读的语法而闻名,适用于广泛的应用,包括Web开发、数据分析、人工智能和自动化脚本

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值