打通模型与现实世界的最后一公里?MCP极速入门指南

简介: 本文重点讲述如何快速实战上手MCP。

一、MCP介绍

去年 11 月,由Claude的母公司 Anthropic 推出了模型上下文协议(MCP),MCP是一种开放协议,可以实现LLM应用与外部数据源和工具的无缝集成。无论您是在构建一个AI驱动的IDE、增强聊天界面,还是创建定制的AI工作流程,MCP都能提供连接LLM与所需的上下文的一种标准化方式。

MCP实现了两大突破:


  • 面向开发者的服务封装:将任意功能封装为标准化工具(Tool)或资源(Resource)
  • 面向模型的自然交互:大模型通过协议自解释文档,实现零样本工具调用


网络上目前有很多介绍MCP原理的文章值得一读,在这里就不一一列举了,小伙伴们可以自行搜索了解,本文重点在快速实战上手MCP。


二、MCP核心解决的问题

传统范式之困:在传统开发模式中,大模型调用外部服务需要经历复杂的技术链路:


自然语言理解 -> 业务逻辑解析 -> API调用 -> 结果处理


每个环节都可能产生信息损耗,比如下面提到的三个典型问题:


  • 语义鸿沟:自然语言指令到具体API参数的映射模糊
  • 能力黑洞:模型对可用服务缺乏实时认知
  • 安全边界:直接开放API调用存在风险敞口


MCP核心解决的问题:


打通模型与工具、与现实世界、与人类所见、所思、所想的最后一公里。


三、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账号登录)

https://openrouter.ai/

下图可以看到,我只筛选免费,搜索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(mcp_server.py)如下,实现了打招呼和两数相加的工具(tool)和资源(resource)。

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

# Create an MCP server
print("Initializing FastMCP...")
mcp = FastMCP("Demo", port=8001)
print("FastMCP instance created")

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

# Add a dynamic greeting resource
print("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 server
if __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时代的"数字巴别塔"。当不同语言、不同平台的服务都能通过统一协议无缝协作时,我们或将见证人类文明史上最大规模的认知革命——在这个新世界里,调用工具的能力,终将成为人类思维的自然延伸。



来源  |  阿里云开发者公众号

作者  |  如驰

相关文章
|
1月前
|
人工智能 监控 安全
面对MCP"工具投毒",我们该如何应对
本文探讨了MCP(Model Context Protocol)的安全风险与防护措施。MCP作为AI系统与外部工具交互的标准框架,虽提升了插件兼容性,但也带来了“工具投毒”等安全威胁。攻击者可通过篡改工具描述,诱导模型执行非授权操作,如读取敏感文件。文章详细分析了攻击原理,并通过复刻实验展示了如何利用MCP客户端/服务器代码实现此类攻击。为应对风险,提出了基于大模型智能评估和eBPF技术的两种安全可观测方案:前者通过内置评估模板检测潜在威胁,后者实时监控系统运行时行为,结合两者可有效提升MCP系统的安全性。
717 93
面对MCP"工具投毒",我们该如何应对
|
1月前
|
人工智能 负载均衡 数据可视化
10分钟上手全球开源模型冠军 Qwen3
阿里通义千问Qwen3在最新全球AI基准测试中智能水平位列全球前五,开源第一,且成本优势显著,推理成本仅为DeepSeek-R1的1/3、Claude 3.7的1/20。Qwen3支持119种语言,具备强大的代码和数学能力,同时提供思考与非思考两种模式无缝切换,适合复杂与简单任务。通过阿里云百炼平台,用户可在10分钟内快速搭建Qwen3模型服务,结合Cherry Studio客户端实现便捷交互。本文详细介绍了Qwen3的部署、体验及工具调用能力,帮助用户轻松上手。
654 78
|
1月前
|
监控 Kubernetes Go
日志采集效能跃迁:iLogtail 到 LoongCollector 的全面升级
LoongCollector 在日志场景中实现了全面的重磅升级,从功能、性能、稳定性等各个方面均进行了深度优化和提升,本文我们将对 LoongCollector 的升级进行详细介绍。
299 86
|
1月前
|
消息中间件 运维 监控
加一个JVM参数,让系统可用率从95%提高到99.995%
本文针对一个高并发(10W+ QPS)、低延迟(毫秒级返回)的系统因内存索引切换导致的不稳定问题,深入分析并优化了JVM参数配置。通过定位问题根源为GC压力大,尝试了多种优化手段:调整MaxTenuringThreshold、InitialTenuringThreshold、AlwaysTenure等参数让索引尽早晋升到老年代;探索PretenureSizeThreshold和G1HeapRegionSize实现索引直接分配到老年代;加速索引复制过程以及升级至JDK11使用ZGC。
382 82
加一个JVM参数,让系统可用率从95%提高到99.995%
|
1月前
|
人工智能 自然语言处理 搜索推荐
AI 零成本搭建个人网站,小白 3 步搞定!通义灵码智能体+MCP 新玩法
通过AI技术,即使不编写代码也能高效开发项目。从生成诗朗诵网页到3D游戏创建,这些令人惊叹的操作如今触手可及。经过摸索,我利用AI成功上线了个人站点:https://koi0101-max.github.io/web。无需一行代码,借助强大的工具即可实现创意,让开发变得简单快捷!
1003 68
|
1月前
|
人工智能 安全 应用服务中间件
阿里巴巴 MCP 分布式落地实践:快速转换 HSF 到 MCP server
本文分享了阿里巴巴内部将大规模HSF服务快速转换为MCP Server的实践经验,通过Higress网关实现MCP协议卸载,无需修改代码即可接入MCP生态。文章分析了MCP生态面临的挑战,如协议快速迭代和SDK不稳定性,并详细介绍了操作步骤及组件功能。强调MCP虽非终极解决方案,但作为AI业务工程化的起点具有重要意义。最后总结指出,MCP只是AI原生应用发展的第一步,未来还有更多可能性值得探索。
738 49
|
1月前
|
人工智能 安全 API
Higress MCP Server 安全再升级:API 认证为 AI 连接保驾护航
Higress MCP Server 新增了 API 认证功能,为 AI 连接提供安全保障。主要更新包括:1) 客户端到 MCP Server 的认证,支持 Key Auth、JWT Auth 和 OAuth2;2) MCP Server 到后端 API 的认证,增强第二阶段的安全性。新增功能如可重用认证方案、工具特定后端认证、透明凭证透传及灵活凭证管理,确保安全集成更多后端服务。通过 openapi-to-mcp 工具简化配置,减少手动工作量。企业版提供更高可用性保障,详情参见文档链接。
377 43
|
1月前
|
机器学习/深度学习 设计模式 人工智能
深度解析Agent实现,定制自己的Manus
文章结合了理论分析与实践案例,旨在帮助读者系统地认识AI Agent的核心要素、设计模式以及未来发展方向。
847 99
深度解析Agent实现,定制自己的Manus
|
1月前
|
人工智能 定位技术 API
旅行规划太难做?5 分钟构建智能Agent,集成地图 MCP Server
MCP(Model Coordination Protocol)是由Anthropic公司提出的开源协议,旨在通过标准化交互方式解决AI大模型与外部数据源、工具的集成难题。阿里云百炼平台上线了业界首个全生命周期MCP服务,大幅降低Agent开发门槛,实现5分钟快速搭建智能体应用。本文介绍基于百炼平台“模型即选即用+MCP服务”模式,详细展示了如何通过集成高德地图MCP Server为智能体添加地图信息与天气查询能力,构建全面的旅行规划助手。方案涵盖智能体创建、模型配置、指令与技能设置等步骤,并提供清理资源的指导以避免费用产生。
640 104
|
1月前
|
开发框架 人工智能 Java
破茧成蝶:阿里云应用服务器让传统 J2EE 应用无缝升级 AI 原生时代
本文详细介绍了阿里云应用服务器如何助力传统J2EE应用实现智能化升级。文章分为三部分:第一部分阐述了传统J2EE应用在智能化转型中的痛点,如协议鸿沟、资源冲突和观测失明;第二部分展示了阿里云应用服务器的解决方案,包括兼容传统EJB容器与微服务架构、支持大模型即插即用及全景可观测性;第三部分则通过具体步骤说明如何基于EDAS开启J2EE应用的智能化进程,确保十年代码无需重写,轻松实现智能化跃迁。
263 40

热门文章

最新文章