一、MCP技术概览:Anthropic的创新协议
自2023年11月起,由Claude的研发团队Anthropic重磅推出的模型上下文协议(Model Context Protocol,简称MCP),迅速成为AI开发者社区热议的焦点。作为一套完全开放的行业标准协议,MCP旨在搭建起大型语言模型(LLM)与外部数据资源、功能工具之间的桥梁,为开发者提供了一套统一的解决方案。无论是构建智能化的AI集成开发环境(IDE)、优化聊天机器人交互体验,还是定制个性化的AI工作流,MCP都能通过标准化接口实现LLM与外部上下文的无缝对接。
MCP的核心技术突破体现在两大维度:
- 开发者友好的服务封装:将各类功能模块抽象为标准化的工具(Tool)与资源(Resource),极大降低开发门槛
- 模型驱动的智能交互:通过协议内置的自解释文档,支持大模型以零样本学习方式实现工具调用,无需复杂的训练过程
目前网络上已有不少关于MCP技术原理的深度解析文章,感兴趣的读者可以自行搜索研读。本文将重点聚焦于MCP的实战应用,帮助开发者快速掌握落地技巧。
二、MCP的核心价值:破解传统开发困局
传统开发模式的痛点
在传统AI应用开发中,大模型调用外部服务往往面临复杂的技术挑战,整个链路包含: 自然语言理解 → 业务逻辑解析 → API调用 → 结果处理
这一过程中容易出现三大典型问题:
- 语义转换难题:自然语言指令与API参数之间存在理解鸿沟
- 动态认知缺失:模型难以实时感知可用服务与资源
- 安全风险敞口:直接暴露API调用存在潜在安全隐患
MCP的破局之道
MCP的诞生,旨在彻底打通大型语言模型与外部世界交互的”最后一公里”,实现:
- 模型与工具的高效协同
- 虚拟世界与现实世界的深度连接
- 技术实现与人类需求的完美契合
通过标准化的协议接口,MCP让AI应用开发变得更加简单、安全和高效。
三、MCP与functionCall的关系
一句话总结:
MCP统一了不同大模型和不同服务之间的协议。
一张图理解:
再引用两张网络流传甚广的图片帮助理解:
- 传统API实现调用方式:不同服务提供不同SDK,调用方需要对该应用做接入。
- MCP方式:不同服务就是一个MCP Server,都遵循MCP协议提供服务。
四、快速使用MCP服务
1. 安装vscode+cline
我们使用开源免费的vscode和cline来进行mcp的尝试,当然你也可以用cursor等其他方式。本质上我们只是需要一个agent以及一个对应的IDE(用来编辑mcp配置文件)。
2. 配置cline
我们需要配置cline使用的大模型,cline提供的是与你本地IDE和命令行交互的能力,需要用户配置使用的模型。
可以看到有很多现成的API Provider可以选,如果你有deepseek或者通义千问的现成额度和api key可以直接使用。我研究了一番,发现openrouter很好,他有大量主流模型的免费额度可以使用。如果想快速体验的朋友可以直接选openrouter,cline会引导你注册apikey。(需要谷歌或者Github账号登录)
下图可以看到,我只筛选免费,搜索deepseek,包括当前最新的V3 0324模型都可以免费使用(但是有限制)。
跟着cline引导配置完OpenRouter API Key。
配置完成后你可以尝试下现在cline的对话是否ok,来确定openrouter是否调通。
3. 使用现有MCP Server
接下来,我们开始尝试使用网上现成的MCP Server,cline内置了一个MCP应用市场,可以直接点击install。
3.1.Puppeteer MCP
我们先用应用市场内有的浏览器操作框架Puppeteer提供的MCP Server来尝试,当然你完全可以在网上自行找MCP Server来安装。
点击install后,实际上cline就是帮你写了一段提示词,来让大模型帮你全自动安装Puppeteer MCP Server,提示词如下:
根据cline的指引,一步步接受模型指令后,我们可以看到一个配置完成的cline_mcp_settings.json文件,里面申明了我们安装的mcp server列表(目前只有一个Puppeteer MCP Server)。
{
"mcpServers": {
"github.com/modelcontextprotocol/servers/tree/main/src/puppeteer": {
"autoApprove": [],
"disabled": false,
"timeout": 60,
"command": "npx",
"args": [
"-y",
"@modelcontextprotocol/server-puppeteer"
],
"transportType": "stdio"
}
}
}
接着我们来使用该mcp访问网页,尝试访问下bilibili首页,并让他告诉我首页有哪些视频标题。
运行后,可以看到Puppeteer自主操作了浏览器,打开了B站首页。
模型通过Puppeteer得到了返回的数据。
成功。
3.2.高德地图MCP
高德很早就支持了MCP协议,我们就来试试它的能力如何。
我们向模型发起提问:
请帮我规划一条从杭州市滨江区阿里巴巴园区到杭州市西湖景区的路线
模型依次调用了查询目的地经纬度、驾车、地铁公交、步行三种方案:
- maps_geo:将详细的结构化地址转换为经纬度坐标。支持对地标性名胜景区、建筑物名称解析为经纬度坐标。
- maps_direction_driving:驾车路径规划 API 可以根据用户起终点经纬度坐标规划以小客车、轿车通勤出行的方案,并且返回通勤方案的数据。
- maps_direction_transit_integrated:根据用户起终点经纬度坐标规划综合各类公共(火车、公交、地铁)交通方式的通勤方案,并且返回通勤方案的数据,跨城场景下必须传起点城市与终点城市。
- maps_direction_walking:根据输入起点终点经纬度坐标规划100km 以内的步行通勤方案,并且返回通勤方案的数据。
得到了最终方案:
详细的思考和调用截图示例
五、快速搭建MCP服务
我们已经能够调用现成的MCP服务(MCP Server),接下来我们的目标是自己搭建一个MCP Server,让cline来调用。
目前MCP官方已经有多个语言的SDK,在其官方文档都能看到。
https://modelcontextprotocol.io/introduction
我们使用他们的python sdk来创建一个demo
https://github.com/modelcontextprotocol/python-sdk
我们直接偷懒,让cline+deepseek来帮我们写。deepseek一路火花带闪电,完成了工作,主要有下面几个步骤:
首先需要在当前项目目录下创建一个新文件夹来存放MCP server
使用FastMCP来创建一个简单的Python MCP server demo
需要安装FastMCP依赖,可以使用pip安装
创建一个简单的MCP server示例,暴露一个简单的工具
将MCP server配置添加到cline_mcp_settings.json文件中
最终的mcp server(mcp_server.py)如下,实现了打招呼和两数相加的工具(tool)和资源(resource)。
# server.pyfrom mcp.server.fastmcp import FastMCP
# Create an MCP serverprint("Initializing FastMCP...")mcp = FastMCP("Demo", port=8001)print("FastMCP instance created")
# Add an addition toolprint("Registering add tool...")@mcp.tool()def add(a: int, b: int) -> int: """Add two numbers""" return a + bprint("Add tool registered")
# Add a dynamic greeting resourceprint("Registering greeting resource...")@mcp.resource("greeting://{name}")def get_greeting(name: str) -> str: """Get a personalized greeting""" return f"Hello, {name}!"print("Greeting resource registered")
# Start the MCP serverif __name__ == "__main__": print("Starting MCP server...") try: mcp.run(transport="stdio") print("MCP server is running") except Exception as e: print(f"Error starting MCP server: {str(e)}") exit(1)
资源、工具、提示词的定义,也是MCP的官方概念,在本文不做详细阐述。
我们在cline上添加第二个配置。
{
"mcpServers": {
"github.com/modelcontextprotocol/servers/tree/main/src/puppeteer": {
"autoApprove": [],
"disabled": false,
"timeout": 60,
"command": "npx",
"args": [
"-y",
"@modelcontextprotocol/server-puppeteer"
],
"transportType": "stdio"
},
"demo-python-server": {
"autoApprove": [],
"disabled": false,
"timeout": 3000,
"command": "/Users/xxxx/.venv/bin/python3",
"args": [
"/Users/xxxxx/mcp_server_demo/mcp_server.py"
],
"transportType": "stdio"
}
}
}
配置完成后,可以看到clineUI也展示了我的MCP Server。
接着可以让cline尝试调用一下模型,由于配置文件里有我们自己创造的工具的声明,所以cline调用了工具,完成了打招呼的任务。
展望
技术层面:重构服务提供范式
MCP正在构建AI时代的”数字乐高标准件”技术体系。当协议层实现真正的标准化,将引发三个技术革命:
- 服务发现机制的进化:未来的MCP工具市场可能会出现全局自动服务发现中心,模型可通过自然语言描述自动发现适配工具链,实现”所想即所得”的服务组合。
- 性能优化新范式:协议层统一后,工具链性能指标可量化对比,催生出专门针对大模型工具调用的编译优化技术,如工具缓存预加载、调用路径动态优化等。
- 多模态工具引擎:当前文本交互为主的协议或将扩展为支持视觉-动作-物理世界的多模态交互协议,使AI能操作CAD设计软件、工业机器人等复杂系统。
产品层面:重塑人机协作界面
当工具调用成本趋近于零时,将引爆产品创新奇点:
- 智能体市场崛起:类似App Store的MCP智能体商店将出现,用户可自由组合不同服务提供商的能力模块。某旅游智能体可能聚合航司API、酒店MCP服务、签证工具链,自动完成复杂行程规划。
- 无代码智能体工厂:企业可通过可视化拖拽,将内部系统快速封装为MCP服务,如把ERP系统暴露为”库存查询@erp://warehouse”等自然语义接口
- 个性化服务涌现:每个人的数字分身都能持有专属工具集。教师助理智能体自动组合教案生成器+知识点验证服务,程序员助手动态调用代码分析、云部署等工具链
人文层面:重构知识工作边界
当工具调用成为基础能力,将引发更深层的变革:
- 技术平权新阶段:语言成为终极编程接口,任何能用自然语言清晰描述需求的人都能创建复杂工具链,知识工作者与开发者的界限逐渐消融
- 人机协作伦理进化:需要建立新的责任追溯机制,当AI通过MCP调用真实世界服务时,需明确工具开发者、模型提供者、终端用户之间的责任矩阵。
MCP协议正悄然构建着AI时代的”数字巴别塔”。当不同语言、不同平台的服务都能通过统一协议无缝协作时,我们或将见证人类文明史上最大规模的认知革命——在这个新世界里,调用工具的能力,终将成为人类思维的自然延伸。
实时监控应用关键业务异常与告警
本方案使用日志服务(SLS)基于收集的业务日志对业务实现监控与告警,能够帮助您了解应用的运行趋势,及时发现业务异常状态,采用具体措施以保证系统稳定性。
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件举报,一经查实,本站将立刻删除。
文章由技术书栈整理,本文链接:https://study.disign.me/article/202520/5.mcp-quick-start.md
发布时间: 2025-05-12