DevBox实战:从零开发MCP Server与Client并一键部署上线

使用DevBox云平台从零构建并部署MCP服务端与客户端的完整教程
本文介绍了如何利用DevBox云开发平台,从零构建基于MCP(Model Context Protocol)协议的AI工具调用系统。文章详细讲解了MCP服务端(天气查询工具)和客户端(Gradio界面+大模型工具调用逻辑)的开发过程,并借助DevBox实现无需Docker知识的一键部署,完整验证了从工具定义、SSE连接、大模型决策到工具调用的全链路。
在AI应用开发中,MCP(Model Context Protocol)正迅速成为连接大模型与外部工具的标准协议。MCP由Anthropic于2024年底开源发布,旨在解决大语言模型与外部数据源、工具之间的连接碎片化问题。在MCP出现之前,每个AI应用都需要为不同的工具和API编写定制化的集成代码,导致大量重复劳动。MCP借鉴了USB-C统一接口的理念,定义了一套通用的客户端-服务端架构:MCP Server负责暴露工具和资源,MCP Client负责与Server通信并将工具能力传递给大模型。这种标准化使得任何符合MCP协议的工具都可以被任何支持MCP的客户端调用,极大地促进了AI工具生态的互操作性。
不过,从开发到部署的全流程常常让人望而却步——环境配置、Docker镜像构建、SSL证书申请、公网暴露……每一步都可能卡住进度。
这篇文章将手把手带你使用DevBox云开发平台,从零构建一套完整的MCP服务端和客户端,并实现无需Docker基础的一键上线部署。
DevBox平台:从开发到部署的全流程解决方案
DevBox是一款面向开发者的云开发平台,核心价值在于将应用的创建、开发、调试、部署和发布全流程做到了极致简化。它具备以下几个关键特性:
- 多语言多框架支持:覆盖Python、Node.js等主流语言,并且已原生支持MCP服务模板
- 无缝集成本地IDE:可以直接在VSCode、Cursor等本地编辑器中进行开发,体验与本地开发一致
- 一键部署发布:无需掌握Docker知识,只需输入版本号即可自动构建镜像并完成部署。传统的容器化部署流程通常需要开发者编写Dockerfile、配置多阶段构建、处理依赖缓存等,而DevBox将这些复杂操作完全封装在平台内部
- 自动配置网络:部署完成后自动提供内网和公网两个访问地址,SSL证书也会自动配置好。SSL证书的自动化管理意味着开发者无需手动通过Let's Encrypt等工具申请和续期证书,服务天然支持HTTPS安全访问
- 灵活的端口管理:创建应用时可手动修改暴露端口及是否开启公网访问

此外,DevBox还集成了多种数据库服务,包括关系型数据库和向量数据库,通过简单的点击操作即可创建数据库实例。其中向量数据库对于AI应用尤为重要——它能够存储和检索文本的语义向量表示,是实现RAG(检索增强生成)等高级AI功能的基础设施,非常适合AI应用的全栈开发场景。
构建MCP服务端:定义天气查询工具
创建MCP Server项目
首先在DevBox中新建项目,关键配置如下:
- 项目名称:MCP Server
- 服务类型:选择MCP
- 运行版本:Python 3.12
- 暴露端口:修改为8081

创建完成后,可以直接在本地IDE中打开项目。DevBox会提供一个MCP服务的示例模板,我们在此基础上进行修改就行。
编写MCP工具代码
在构建MCP工具时,有一个非常重要的细节:必须通过注释对工具的功能、所需参数进行详细描述。原因很简单——大模型需要根据这些描述来判断何时调用该工具,以及如何传递参数。这背后涉及到大模型的工具调用(Function Calling)机制:开发者将可用工具的JSON Schema描述(包括函数名、功能说明、参数类型和含义)作为上下文传递给大模型,模型在推理过程中会判断当前用户请求是否需要调用某个工具。如果需要,模型会输出一个结构化的工具调用请求(包含函数名和提取的参数),而非直接生成自然语言回复。因此,描述写得越清晰,大模型的调用准确率就越高。
本次演示中,我们定义了一个"获取天气"的MCP工具,传入城市名称作为参数,返回固定的天气结果(仅作演示用途)。工具定义完成后,需要修改启动脚本中的端口号,确保与创建应用时暴露的8081端口一致。
发布与部署MCP Server
发布流程非常简单,三步搞定:
- 在DevBox中输入版本号,平台会自动构建Python镜像
- 点击"上线"进行自动部署,保持默认配置,确认暴露端口为8081
- 点击"部署应用",等待状态变为"可访问"
部署完成后,公网地址和内网地址都已就绪,MCP服务端即可对外提供服务。
构建MCP客户端:Gradio界面与大模型工具调用
创建客户端项目
在DevBox中再新建一个项目,使用Python框架,端口设置为8082。进入VSCode后,我们从头构建MCP客户端代码。
核心调用逻辑解析
客户端的核心是一个query函数,它包含了MCP客户端创建和用户输入处理的完整流程:
第一步:初始化大模型服务
构建大模型的API连接(基于OpenAI SDK),用于后续的智能决策。OpenAI SDK已经成为大模型API调用的事实标准,国内外众多模型提供商(如DeepSeek、通义千问、Moonshot等)都提供了兼容OpenAI API格式的接口,这意味着只需更换Base URL和API Key即可无缝切换不同的大模型服务。
第二步:创建SSE客户端连接
MCP服务有两种连接方式:SSE和STDIO。STDIO(标准输入输出)方式适用于本地场景,MCP Client通过启动一个子进程与MCP Server通信,数据通过进程的stdin和stdout传递,延迟极低但仅限于同一台机器。SSE(Server-Sent Events)方式则基于HTTP协议,Server通过长连接持续向Client推送事件流,天然支持远程部署和网络通信。SSE是HTML5规范的一部分,相比WebSocket更轻量,特别适合服务端向客户端单向推送数据的场景。由于我们的服务端部署在云端并使用SSE方式创建,客户端也需要初始化对应的SSE客户端来进行交互。
第三步:获取可用工具列表
通过list_tools方法获取当前连接的MCP服务中所有可用工具的信息,包括工具名称、用途描述和所需参数。这些信息会被转换为大模型能够理解的JSON Schema格式,作为上下文的一部分传递给模型,使模型"知道"自己拥有哪些能力。
第四步:大模型决策与工具调用循环
这是整个MCP客户端最核心的部分。将可用工具信息、用户问题和系统提示词一并输入大模型,由大模型自主决定:
- 是否需要调用工具
- 调用哪个工具
- 从用户输入中提取工具所需的参数

由于采用流式输出(Streaming),处理逻辑相对复杂。流式输出是指模型不会等到完整回复生成后才返回,而是逐token地将结果推送给客户端,这样用户可以实时看到回复的生成过程,显著提升交互体验。但在工具调用场景中,客户端需要在流式数据中识别出工具调用请求,将其完整拼接后再执行实际调用。整个过程是一个循环:大模型调用工具后获取结果,将结果加入上下文,再由大模型判断是否需要继续调用其他工具。如果不需要,则跳出循环,给出最终回复。这种循环机制也是构建AI Agent的基础模式——ReAct(Reasoning + Acting),即模型交替进行推理和行动,直到任务完成。
第五步:系统提示词调优
这里要特别强调一点:在构建MCP客户端时,系统提示词(System Prompt)直接决定了客户端效果的好坏。系统提示词是在对话开始前注入给大模型的指令文本,用于定义模型的角色、行为边界和决策策略。一个精心设计的系统提示词需要明确告诉模型:何时应该调用工具而非直接回答、如何从模糊的用户表述中提取工具所需的结构化参数、在多个工具可用时如何选择最合适的工具、以及如何将工具返回的原始数据组织成用户友好的自然语言回复。提示词工程(Prompt Engineering)已经成为AI应用开发中的核心技能之一,一个优秀的系统提示词能让大模型更准确地理解用户意图,更合理地选择和调用工具。
搭建Gradio前端界面
使用Gradio搭建前端界面,提供以下可配置项:
- 大模型名称、Base URL、API Key
- 温度参数(Temperature)
- MCP服务地址
- 工具调用结果展示区域
- 大模型最终回复展示区域
Gradio是由Hugging Face维护的开源Python库,专门用于快速构建机器学习和AI应用的Web演示界面。它的核心优势在于极低的前端开发门槛——开发者只需用几行Python代码就能创建包含文本输入、滑块、下拉菜单等交互组件的完整Web应用,内置了WebSocket实时通信、队列管理、API自动生成等功能,特别适合用于AI原型验证和内部工具搭建。
其中温度参数(Temperature)是控制大模型输出随机性的关键参数,取值范围通常为0到2。温度越低,模型输出越确定和保守;温度越高,输出越多样和富有创造性。在工具调用场景中,通常建议将温度设置在较低水平(如0.1-0.3),以确保模型能够稳定、准确地生成工具调用请求。
需要注意将Gradio的监听端口设置为8082,与DevBox中暴露的端口保持一致。
安装依赖与一键部署
创建requirements.txt依赖文件,包含三个核心包:gradio、mcp、openai。激活虚拟环境后安装依赖,修改启动脚本指向客户端代码文件。

完成后同样通过DevBox一键发布和部署,等待公网地址变为可访问状态即可。
实际效果验证:完整链路测试
打开客户端的公网地址,进入Gradio界面后按以下步骤操作:
- 配置大模型服务的相关参数(模型名称、API Key等)
- 在MCP服务地址中填入服务端的公网地址(注意需要加上
/sse后缀) - 输入问题,例如"北京今天天气怎么样?"
测试结果显示,MCP客户端成功完成了完整的工具调用链路:大模型从问题中提取出"北京"作为参数,调用天气查询工具,获取到返回结果"天气晴"(我们预设的固定值),最终大模型基于工具返回的结果生成了完整的自然语言回复。
整个流程验证了MCP协议从服务端工具定义、客户端SSE连接、大模型智能决策到工具调用的完整链路,所有环节都运行正常。这一过程也展示了MCP协议的核心价值:工具的定义者(Server开发者)和工具的使用者(Client开发者)可以完全解耦,只要双方遵循MCP协议规范,就能实现无缝对接。
总结与思考
通过DevBox平台,我们完成了MCP服务端和客户端的完整开发部署流程。整个过程中,开发者只需要专注于业务逻辑本身——定义MCP工具、编写客户端调用逻辑、搭建Gradio前端界面——而环境配置、镜像构建、网络配置、SSL证书等运维工作全部由平台自动处理。
对于想要快速验证MCP应用想法的开发者来说,这种云开发模式能够显著降低上手门槛和部署成本。当然,本文演示的天气查询工具比较简单,感兴趣的话可以尝试接入更复杂的开源MCP服务,比如数据库查询、文件操作、API聚合等,构建更强大的AI Agent应用。目前MCP生态正在快速发展,社区已经涌现出大量开源的MCP Server实现,涵盖GitHub操作、Slack消息发送、数据库CRUD、网页抓取等常见场景,开发者可以直接复用这些现成的工具服务,通过组合多个MCP Server来构建功能丰富的AI Agent,而无需从零开发每一个工具集成。
相关推荐
教程攻略Cursor+Codex双IDE协同:开源项目二开实战方法论
基于实战经验总结的开源项目二次开发完整方法论,详解Cursor+Codex双IDE协同工作流,涵盖二开七环节、MVP验证、AI读源码技巧,帮助开发者三天跑通项目、两周完成业务集成。
教程攻略Cursor多Agent实战:50分钟搭建Next.js全栈博客
使用Cursor IDE多Agent协作模式,50分钟内从零搭建全栈博客。涵盖Next.js、Clerk认证、Supabase数据库集成,详解4个AI Agent分阶段开发流程与关键避坑经验。
教程攻略从零搭建AI软件工厂:Cursor工程师的多Agent协作实战经验
Cursor工程师Eric分享AI软件工厂构建实战:从自动化六层级、护栏设计、并行Agent管理到规模化扩展,详解如何用多Agent协作实现7×24小时高效软件开发。