惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

WordPress大学
WordPress大学
O
OpenAI News
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
博客园 - 三生石上(FineUI控件)
Webroot Blog
Webroot Blog
GbyAI
GbyAI
S
SegmentFault 最新的问题
Cyberwarzone
Cyberwarzone
Exploit-DB.com RSS Feed
Exploit-DB.com RSS Feed
J
Java Code Geeks
Google DeepMind News
Google DeepMind News
cs.CV updates on arXiv.org
cs.CV updates on arXiv.org
博客园 - 【当耐特】
S
Secure Thoughts
酷 壳 – CoolShell
酷 壳 – CoolShell
AWS News Blog
AWS News Blog
Engineering at Meta
Engineering at Meta
S
Security Affairs
H
Help Net Security
Microsoft Security Blog
Microsoft Security Blog
D
DataBreaches.Net
云风的 BLOG
云风的 BLOG
Hugging Face - Blog
Hugging Face - Blog
Google DeepMind News
Google DeepMind News
Spread Privacy
Spread Privacy
T
Threatpost
Forbes - Security
Forbes - Security
C
Cisco Blogs
Scott Helme
Scott Helme
Attack and Defense Labs
Attack and Defense Labs
Simon Willison's Weblog
Simon Willison's Weblog
腾讯CDC
The Last Watchdog
The Last Watchdog
Cloudbric
Cloudbric
Last Week in AI
Last Week in AI
Recorded Future
Recorded Future
小众软件
小众软件
V
Vulnerabilities – Threatpost
美团技术团队
人人都是产品经理
人人都是产品经理
有赞技术团队
有赞技术团队
Apple Machine Learning Research
Apple Machine Learning Research
Hacker News - Newest:
Hacker News - Newest: "LLM"
I
Intezer
月光博客
月光博客
C
Cyber Attacks, Cyber Crime and Cyber Security
博客园 - 司徒正美
C
Cybersecurity and Infrastructure Security Agency CISA
Martin Fowler
Martin Fowler
博客园 - 聂微东

Mengke's blog - Mengke's coding journey

年轻不是健康的免死金牌 深圳工作机会,前端 2025 年终总结 Skill 不是 MCP 的替代品:我理解的渐进式披露与选型原则 独立开发者如何开具发票 香港银行卡开户完整指南(2025年9月最新) 招商银行储蓄卡微信动账提醒恢复方法 再谈 MCP - Model Context Protocol(MCP)详解和开发教程 Get Human-Readable "Time Ago" in TypeScript 以「asset-price-mcp」为例,从 0 开发 MCP Server DeepSeek + Dify 搭建本地知识库 An elegant solution for implementing optional property types using TypeScript 2024 年终总结 Quickly Create a Fullscreen WebView with Autoplay Support for Testing 以数字开头的 ID 在 querySelector 中的处理 String casing utilities in JavaScript Check if a string is a valid color Simple Event-Emitter/PubSub pattern Find which process is running on a certain port and kill it Markdown Code block's basic and advanced syntaxes Common npm commands to use locally Pnpm aliases How to safely rename a case sensitive file/directory in a git repo? A custom hooks to use an async effect A custom hooks to use local storage state 🤩 Mengke'blog 上线的这一年 🗼 五月底去了一趟日本,记录一下我的游记和攻略 网站性能优化:如何高效预加载大型静态资源 闰年之约 - 2024年2月29日 A collection of some useful websites 2023 年终总结 WebGL 学习笔记(一)基础概念与实践 Android Webview <video> 标签去除默认播放按钮图 📷 纯前端也可以实现「用户无感知录屏」? Getting Spotify token to display now playing track on your website AVP - Web 端特效视频播放器 IndexedDB 基础入门 直接下载网易云音乐中歌曲MP3格式的方法 什么!一个项目给了8个字体包??? flex 布局中 start/end 和 flex-start/flex-end 的区别 深入 Pinia:从代码出发探索 Vue 状态管理的奥秘 Pinia 快速上手指南 Nest.js Typrorm 多对多关系如何创建 Strapi 快速入门 CentOS7 MySQL 数据库安装与卸载 Next.js 上手指南 Vue 数据响应式原理 deno 快速上手 - Hello World 案例 快速上手 Vue3 尝鲜 Vue 3.0 Combination API react-router-dom 路由基础教程 JavaScript 数组扁平化处理的方法总结
Model Context Protocol (MCP) 快速开始
Mengke · 2025-03-29 · via Mengke's blog - Mengke's coding journey

Mcp.webp

Published on
//

11 mins read

/

––– views

Share:

自 2022 年以来,大语言模型逐步进入大众视野,并迅速成为 AI 领域最热门的话题。

我们习惯了在对话框中输入问题,等待模型生成一段看似智能的回复。但你是否发现,当你想让 AI 帮你预订机票时,它只会教你"打开某 App 搜索航班",而不是直接帮你完成操作,这种"纸上谈兵"的尴尬,暴露了当前 LLM 的致命短板——它缺乏与现实世界的交互能力。

而这一切,正在被一个名为 MCP 的协议改变。

1. 什么是 MCP?

MCP 最早出现在 2024 年 11 月 25 日 Anthropic 发布的文章:Introducing the Model Context Protocol

MCP 全称是 Model Context Protocol(模型上下文协议),它定义了应用程序和 AI LLM 之间的交换上下文信息的标准,使得开发者可以以一致的方式将各种数据、工具提供给 AI 去使用, 你可以将它理解为 AI 的 "USB-C 接口"。

就像 USB-C 接口能连接手机、电脑、耳机等设备一样,MCP 提供了一种标准化方式,MCP 让 LLM(如 Claude、GPT)能够安全、灵活地调用外部工具和数据源,从"回答问题"进化为"执行任务"。

mcp like usb-c

2. 为什么需要 MCP?

在没有 MCP 的时候,我们使用 AI 往往需要将所有信息集中发送给 AI,然后等待 AI 给出答案。

这个过程可能需要人工查询数据库或搜索网页,然后将信息复制给 AI。

但随着需求日益复杂,要求不断提高,这样的方式无法满足我们所有的要求。我们在书写 prompt 时可能会想要提供更加具体的信息给到 AI,比如:文件、数据库、实时信息等,这样 AI 才能更好地为我们解决问题。

为了突破这个限制,很多 LLM 平台引入了 Function Calling 的方式,让 AI 可以调用外部工具。Function Calling 允许 AI 在需要获取数据或者执行操作时来调用预定义的函数,显著提升了自动化的水平。

Function Calling 本身也有局限性,虽然都叫 Function Calling,但是每个 LLM 平台对于 Function Calling 的实现方式都不一样。

比如,OpenAI 的 Function Calling 和 Google 的不能相互兼容,开发者需要对不同平台分别开发和适配,成本很高。

MCP 正是基于这个痛点诞生的。MCP 统一了 AI 和外部工具之间的标准,充当了 AI 模型的万能插头,让 AI 可以灵活地调用外部工具。

MCP 相比 Function Calling 的优势:

  • 标准化接口,让开发者可以轻松地为 AI 添加新的工具。
  • 生态日益丰富,MCP 的生态逐渐成熟,已经有非常多的第三方工具和库支持。
  • 安全可靠,我们可以确保敏感数据不被上传。

2. MCP 通用架构

MCP 的核心遵循 客户端-服务器架构,其中主机应用程序可以连接到多个服务器:

add MCP success

  • MCP Hosts:像 Claude Desktop、IDE 或 AI 工具等程序,它们希望通过 MCP 访问数据。
  • MCP Clients:与服务器保持 1:1 连接的协议客户端。
  • MCP Servers:通过标准化的模型上下文协议暴露特定功能的轻量级程序。
  • Local Data Source:计算机文件、数据库以及 MCP 服务器可以安全访问的服务。
  • Remote Services:MCP 服务器可以通过 API 等方式连接到的互联网外部系统。

当你向 AI 提出问题时,流程是这样的:

  • 提问 ➜ Host ➜ LLM ➜ MCP Client ➜ MCP Server ➜ 执行操作 ➜ 返回结果 ➜ LLM生成回答 ➜ 展示答案

这样的架构设计可以让 LLM 更灵活的调用各种数据和工具,开发者只需要专注开发 MCP Server,用户也不需要额外的学习成本。

3. MCP 的原理

初次接触 MCP 时,我对 LLM 如何决定调用哪个 MCP Server 以及调用时机产生了浓厚的兴趣。

在官网已经给到了解释

  1. AI 客户端将问题发送给 LLM
  2. LLM 分析可用的工具,并决定使用哪一个或哪几个
  3. AI 客户端通过 MCP Server 执行所选择的工具
  4. 执行结果返回给 LLM
  5. LLM 生成自然语言回答
  6. 显示答案

也就是说,是 LLM 主动选择并调用的,那么具体是如何实现的呢?

3.1 LLM 如何确定调用哪个 MCP Server?

一起看一下官方提供的一个 Client Demo ,代码做了简化。

tool 的描述和代码中的 input_schema 是从哪里来的呢?再来看一段 Server Demo 的代码,这是一段注册浏览器工具的代码,可以可以发现是在开发者开发 MCP Server 时直接描述清楚这个 Tool 的作用以及每个参数的作用。

TIP

总结:LLM 通过 prompt engineering 来了解有哪些工具可以使用以及工具的具体作用的,即提供所有工具的描述和 few-shot 的 example 来确定使用哪些工具。

*该部分转载自: zhuanlan.zhihu.com/p/29001189476

4. MCP Server 的使用:以 Github MCP 为例

以 Cursor + Github 为例,体验让AI直接操作代码仓库:

步骤1:创建Github个人访问令牌

  1. 访问 Github Token 设置页
  2. 勾选 repoworkflow 权限
  3. 生成以 ghp_ 开头的令牌字符串

步骤2:配置MCP Server

在 Cursor 按一下步骤打开 MCP 配置文件

add MCP

输入以下代码,并将 <YOUR_GITHUB_PERSONAL_ACCESS_TOKEN> 替换为你的 Github 的 Personal Access Token:

步骤3:验证连接

当状态指示灯变绿后,尝试自然语言指令:

add MCP success

github MCP

5. 如何寻找优质 MCP Server

目前推荐的 MCP Server 来源:

Reference

TIP

在下一篇博文,我会详细记录这个资产价格查询的 MCP 是如何实现的。

assets_price_mcp