本文详细介绍了如何使用Python和FastMCP框架从零构建MCP服务器,实现大语言模型与网络自动化的结合。内容涵盖MCP核心概念、环境准备、代码实现、CherryStudio测试及多种传输模式配置。MCP作为标准化协议,可安全可控地让大模型访问外部能力,包括工具调用、资源读取和提示交互,为网络自动化提供即插即用的解决方案。文章还提供了扩展性设计、错误处理、安全性和生产部署等最佳实践。
供大家提神
摘要
在当今快速发展的网络环境中,网络自动化和智能运维已成为提升效率、降低成本的关键。模型上下文协议(Model Context Protocol, MCP)是一套开放标准,用于在客户端与服务器之间标准化工具调用、资源读取和提示交互,让大语言模型安全、可控地访问外部能力,从而支撑网络自动化的智能化实践。
本文旨在通过一个简单易懂的Python示例,引导您从零开始构建一个基本的MCP服务器。我们将使用FastMCP框架,并结合uv工具进行环境管理,最终在CherryStudio客户端中验证其功能。无论您是网络工程师、开发人员,还是对网络自动化感兴趣的初学者,本文都将为您提供一个快速入门MCP的实践指南。
第一部分:MCP服务器核心概念
什么是MCP(Model Context Protocol,模型上下文协议)?
MCP是Anthropic公司开源的一个通用的、开发的标准,用于打通大模型(人工智能体)与各个数据源的交互,习惯把mcp server叫做usb接口,即插即用的功能。
所以看这张图会更清晰,mcp server可以看作是一个python的脚本(获取或配置数据)。
MCP在网络自动化中的作用
- 标准化工具接入:将设备查询、网络资源查询及配置下发等能力封装为MCP工具,便于模型调用。
- 一致的资源读取:以URI形式暴露资产清单、拓扑、日志等数据,提升可观察性。
- 安全与可控:通过权限与输入校验,让模型在受控边界内执行操作。
- 可组合工作流:将多工具、多资源的操作编排为可复用流程,加速自动化。
- 易于集成:与MCP客户端(如CherryStudio)和LLM快速对接,缩短落地时间。
为什么选择Python和FastMCP?
- Python:作为一种通用编程语言,Python拥有丰富的库生态系统和简洁的语法,非常适合快速开发和原型设计。
- FastMCP:是一个基于Python的轻量级MCP框架,它简化了MCP服务器的构建过程,提供了清晰的API来定义工具(Tools)、资源(Resources)和提示(Prompts),使得开发者可以专注于业务逻辑而非底层通信细节。
第二部分:环境准备
在开始构建MCP服务器之前,我们需要准备好Python开发环境并安装必要的库。
1. Python环境安装
建议安装Python 3.9+以上。如果您尚未安装,请访问Python官方网站下载并安装最新版本。
2.uv工具的安装与使用
uv是一个现代化的Python包管理器和项目管理工具,它提供了比pip和venv更快的性能。
安装uv
pip install uv创建项目目录
首先,创建一个新的项目目录,例如mcp-server:
# -p 指定python版本C:\>uv init mcp-server -p 3.13Initialized project `mcp-server` at `C:\mcp-server`创建虚拟环境
进入项目目录,并使用uv创建虚拟环境:
C:\mcp-server>uv venv3.fastmcp库的安装
激活虚拟环境,然后安装fastmcp库:
# 激活虚拟环境C:\mcp-server>.\.venv\Scripts\activate# 安装fastmcp库(mcp-server) C:\mcp-server>uv add fastmcp第三部分:构建你的第一个MCP服务器
现在,我们将在main.py文件中编写MCP服务器的核心代码。
1. 基础代码结构解析
一个FastMCP服务器通常包含以下几个核心组件:
FastMCP实例:服务器的入口点。@mcp.tool():定义可供客户端调用的函数,执行特定操作。@mcp.resource():定义可供客户端查询或操作的数据资源。@mcp.prompt():定义用于生成文本或与大型语言模型交互的提示。
2. 示例代码:main.py
在项目根目录下创建main.py文件,并写入以下代码:
from fastmcp import FastMCP# 创建一个MCP服务器实例,命名为"Demo"mcp = FastMCP("Demo")# 添加一个加法工具@mcp.tool()def add(a: int, b: int) -> int: """Add two numbers""" return a + b# 添加一个动态问候资源# 资源路径支持变量,例如这里的{name}@mcp.resource("greeting://{name}")def get_greeting(name: str) -> str: """Get a personalized greeting""" returnf"Hello, {name}!"# 添加一个Prompt,用于生成问候语@mcp.prompt()def greet_user(name: str, style: str = "friendly") -> str: """Generate a greeting prompt""" styles = { "friendly": "Please write a warm, friendly greeting", "formal": "Please write a formal, professional greeting", "casual": "Please write a casual, relaxed greeting", } returnf"{styles.get(style, styles['friendly'])} for someone named {name}."if __name__ == '__main__': # 运行MCP服务器,使用stdio传输模式 mcp.run(transport="stdio")3. 代码详解
mcp = FastMCP("Demo"):初始化一个名为 “Demo” 的MCP服务器实例。@mcp.tool():装饰器将add函数注册为一个MCP工具。客户端可以通过MCP协议调用此函数,并传递参数a和b。@mcp.resource("greeting://{name}"):装饰器将get_greeting函数注册为一个MCP资源。客户端可以通过访问greeting://<name>这样的URI来获取个性化问候语。@mcp.prompt():装饰器将greet_user函数注册为一个MCP提示。这通常用于与大型语言模型(LLM)集成,根据提供的name和style生成相应的问候语提示。mcp.run(transport="stdio"):启动MCP服务器。transport="stdio"表示服务器将通过标准输入/输出进行通信,这是一种常见的本地调试和集成方式。
第四部分:集成与测试:CherryStudio配置
CherryStudio是一个强大的MCP客户端,可以方便地连接和测试您的MCP服务器。
1. CherryStudio简介
CherryStudio提供了一个友好的图形界面,允许您发现、调用MCP服务器上的工具、资源和Prompt,并与大型语言模型进行交互。
2. 配置MCP服务器连接(以stdio模式为例)
步骤一:添加MCP服务器
打开CherryStudio,找到设置-MCP,点击“添加”并选择“快速创建”。
步骤二:配置服务器参数
按照以下配置填写服务器信息:
名称:自定义一个名称,例如 “MyMCPDemo”
类型:选择
stdio模式参数:填写以下内容,指定MCP服务器的运行方式和代码路径。请确保
C:\mcp-server替换为您实际的项目路径。--directoryC:\mcp-serverrunmain.py
步骤三:保存并启用
点击保存并启用。
3. 在CherryStudio中测试MCP服务器
步骤一:选择MCP和大模型
返回到CherryStudio首页,在聊天界面选择您刚刚配置的MCP服务器(map-add-server)和大模型。
步骤二:调用工具进行测试
在聊天输入框中输入100+100,然后查看效果。CherryStudio将通过MCP服务器调用add工具并返回结果。
第五部分:探索不同的传输模式(可选/进阶)
FastMCP支持多种传输模式,以适应不同的部署和集成场景。除了stdio,常用的还有sse(Server-Sent Events) 和streamable-http。
1. SSE模式
SSE模式适用于需要服务器向客户端单向推送事件的场景。
代码修改
在main.py中,将mcp.run()的transport参数修改为sse:
# ...这块代码不变...if __name__ == '__main__': mcp.run(transport="sse")CherryStudio配置调整
在CherryStudio的MCP设置中,将类型改为sse。
2. Streamable-HTTP模式
Streamable-HTTP模式通常用于更复杂的HTTP通信场景,支持流式传输。
代码修改
在main.py中,将mcp.run()的transport参数修改为streamable-http:
# ...这块代码不变...if __name__ == '__main__': mcp.run(transport="streamable-http")CherryStudio配置调整
在CherryStudio的MCP设置中,将类型改为streamable-http。
3. 不同传输模式的适用场景简析
stdio:适用于本地开发、调试和简单的进程间通信。sse:适用于需要服务器向客户端单向推送事件的场景,例如实时日志、状态更新等。streamable-http:适用于需要更灵活的HTTP通信,支持长连接和流式数据传输,常用于构建高性能的API服务。
第六部分:进阶思考与最佳实践
1. MCP服务器的扩展性
- 添加更多工具:根据业务需求,定义更多
@mcp.tool()函数来执行网络配置、数据查询、故障诊断等操作。 - 定义复杂资源:使用
@mcp.resource()定义更复杂的网络设备状态、拓扑信息等资源。 - 集成更多Prompt:结合不同的LLM,定义多样化的
@mcp.prompt()来实现智能问答、配置生成等功能。
2. 错误处理与日志记录
在实际应用中,为您的MCP工具和资源添加健壮的错误处理机制和详细的日志记录至关重要。这有助于快速定位问题并提高系统的稳定性。
3. 安全性考虑
- 认证与授权:确保只有经过授权的客户端才能访问您的MCP服务器。
- 数据加密:在传输敏感数据时,使用加密协议保护数据安全。
- 输入验证:对所有来自客户端的输入进行严格验证,防止注入攻击和其他安全漏洞。
4. 生产部署建议
对于生产环境,您可能需要考虑将MCP服务器部署为独立的微服务,并结合容器化技术(如Docker)和编排工具(如Kubernetes)来管理和扩展。
第七部分:总结与展望
本文带您从零开始,使用Python和FastMCP框架构建了一个简单的MCP服务器,并通过CherryStudio进行了测试。我们探讨了MCP的核心概念、环境准备、代码实现以及不同传输模式的配置。
MCP作为模型上下文协议,为将大语言模型与外部工具、数据源和运维流程连接提供了标准化路径。借助其轻量、清晰的接口,您可以逐步将智能能力融入网络自动化场景,构建更可靠、可扩展的运维体系。
最后
我在一线科技企业深耕十二载,见证过太多因技术卡位而跃迁的案例。那些率先拥抱 AI 的同事,早已在效率与薪资上形成代际优势,我意识到有很多经验和知识值得分享给大家,也可以通过我们的能力和经验解答大家在大模型的学习中的很多困惑。
我整理出这套 AI 大模型突围资料包:
- ✅AI大模型学习路线图
- ✅Agent行业报告
- ✅100集大模型视频教程
- ✅大模型书籍PDF
- ✅DeepSeek教程
- ✅AI产品经理入门资料
完整的大模型学习和面试资料已经上传带到CSDN的官方了,有需要的朋友可以扫描下方二维码免费领取【保证100%免费】👇👇
为什么说现在普通人就业/升职加薪的首选是AI大模型?
人工智能技术的爆发式增长,正以不可逆转之势重塑就业市场版图。从DeepSeek等国产大模型引发的科技圈热议,到全国两会关于AI产业发展的政策聚焦,再到招聘会上排起的长队,AI的热度已从技术领域渗透到就业市场的每一个角落。
智联招聘的最新数据给出了最直观的印证:2025年2月,AI领域求职人数同比增幅突破200%,远超其他行业平均水平;整个人工智能行业的求职增速达到33.4%,位居各行业榜首,其中人工智能工程师岗位的求职热度更是飙升69.6%。
AI产业的快速扩张,也让人才供需矛盾愈发突出。麦肯锡报告明确预测,到2030年中国AI专业人才需求将达600万人,人才缺口可能高达400万人,这一缺口不仅存在于核心技术领域,更蔓延至产业应用的各个环节。
资料包有什么?
①从入门到精通的全套视频教程⑤⑥
包含提示词工程、RAG、Agent等技术点
② AI大模型学习路线图(还有视频解说)
全过程AI大模型学习路线
③学习电子书籍和技术文档
市面上的大模型书籍确实太多了,这些是我精选出来的
④各大厂大模型面试题目详解
⑤ 这些资料真的有用吗?
这份资料由我和鲁为民博士共同整理,鲁为民博士先后获得了北京清华大学学士和美国加州理工学院博士学位,在包括IEEE Transactions等学术期刊和诸多国际会议上发表了超过50篇学术论文、取得了多项美国和中国发明专利,同时还斩获了吴文俊人工智能科学技术奖。目前我正在和鲁博士共同进行人工智能的研究。
所有的视频教程由智泊AI老师录制,且资料与智泊AI共享,相互补充。这份学习大礼包应该算是现在最全面的大模型学习资料了。
资料内容涵盖了从入门到进阶的各类视频教程和实战项目,无论你是小白还是有些技术基础的,这份资料都绝对能帮助你提升薪资待遇,转行大模型岗位。
智泊AI始终秉持着“让每个人平等享受到优质教育资源”的育人理念,通过动态追踪大模型开发、数据标注伦理等前沿技术趋势,构建起"前沿课程+智能实训+精准就业"的高效培养体系。
课堂上不光教理论,还带着学员做了十多个真实项目。学员要亲自上手搞数据清洗、模型调优这些硬核操作,把课本知识变成真本事!
如果说你是以下人群中的其中一类,都可以来智泊AI学习人工智能,找到高薪工作,一次小小的“投资”换来的是终身受益!
应届毕业生:无工作经验但想要系统学习AI大模型技术,期待通过实战项目掌握核心技术。
零基础转型:非技术背景但关注AI应用场景,计划通过低代码工具实现“AI+行业”跨界。
业务赋能 突破瓶颈:传统开发者(Java/前端等)学习Transformer架构与LangChain框架,向AI全栈工程师转型。
👉获取方式:
😝有需要的小伙伴,可以保存图片到wx扫描二v码免费领取【保证100%免费】🆓**