MCP 協議系列序言篇:開啟 AI 應用融合新時代的鑰匙

文章目錄

  • 序言:AI 應用層進入 MCP 時代
  • 為什么 MCP 開啟 AI 應用融合新時代的鑰匙
  • 為什么是 MCP?它與 Function Calling、Agent 有什么區別?
    • Function Calling
    • AI Agent
    • MCP(Model Context Protocol)
  • MCP 如何工作
  • MCP Server 的意義
  • 總結
  • 個人簡介

序言:AI 應用層進入 MCP 時代

過去一年,AI 模型的發展進入了快車道。從 GPT-4、Claude 3 到 DeepSeek R1,不論是推理能力還是減少幻覺的能力都有了質的飛躍。與此同時,Prompt 工程、RAG(檢索增強生成)、AI Agent 等技術路線也極大推動了 AI 應用的多樣性。

然而,AI 應用在集成現有系統和工具鏈方面進展緩慢。盡管市面上涌現了大量新的 AI 服務,但它們幾乎都是“全新打造”的,而不是融入我們日常使用的工作流、軟件或系統中。

直到 2023 年 11 月,Anthropic 發布 MCP(Model Context Protocol,模型上下文協議)后,AI 應用開發才真正迎來了新階段。MCP 的提出使得 AI 模型可以標準化地訪問外部服務和數據源,開啟了 AI 系統原生集成的新時代。

為什么 MCP 開啟 AI 應用融合新時代的鑰匙

當前 AI 應用雖然能力強大,但仍有以下局限:

  • 多數 AI 應用是“孤島”,不能無縫與開發者常用工具整合。
  • 很少有 AI 工具能做到同時聯網搜索、發郵件、發博客等操作。
  • 實現這些功能的代碼并不復雜,但集成非常困難,主要是因為系統割裂,數據流動不暢。

比如在 IDE 中,如果我們能讓 AI 做到以下事情,開發體驗將有質的飛躍:

  • 查詢本地數據庫,輔助開發
  • 檢索 GitHub Issue 判斷是否是已知問題
  • 發消息通知同事 Code Review 某個 PR
  • 修改 AWS/Azure 配置自動部署

AI 無法完成這些自動化整合,原因主要在兩點:

  1. 企業數據敏感,流程重、安全要求高。
  2. 缺少統一標準協議來連接模型與服務。

而 MCP,正是為了解決這一“協議層”的缺失而誕生的。

為什么是 MCP?它與 Function Calling、Agent 有什么區別?

很多人可能會問:OpenAI 不是早就有 function calling?AI Agent 不也能整合多種服務?為什么還需要 MCP?

Function Calling

Function Calling 是模型根據上下文自動調用外部函數的機制,起到了模型與外部服務之間的橋梁作用。

特點:

  • 模型平臺(如 OpenAI、Claude)定義函數結構。
  • 需要開發者明確提供函數描述、輸入輸出。
  • 執行任務時,模型根據內容決定調用哪個函數。

缺點:

  • 不適合處理多輪復雜任務。
  • 代碼不易維護,難以標準化和復用。

AI Agent

AI Agent 是一個可以自主完成任務的智能系統。

特點:

  • 具備決策和行動能力。
  • 可以連續進行多步推理。
  • 可連接多種工具,具備一定自治性。

但問題是,目前大多數 AI Agent 構建仍依賴于自定義、耦合嚴重的工具代碼,難以復用、協作和共享。

MCP(Model Context Protocol)

MCP 是一個開放協議,目標是“Type-C 化”AI 接入生態。

特點:

  • 不依賴某個模型平臺,統一標準。
  • 建立模型與服務之間的通用上下文交換機制。
  • 支持多步任務、狀態保持、權限控制。

優勢:

  • 將服務按層次抽象:描述、能力、限制。
  • Client(Agent)根據協議自行組合能力,完成任務。
  • 構建生態后,不同服務之間可以互操作,AI 自動化能力大大增強。

簡而言之:

對比維度Function CallingAI AgentMCP 協議
目的調用函數執行任務構建生態
復雜任務支持
標準化程度弱(平臺私有)弱(工具割裂)強(協議層)
維護難度低(生態共享)

MCP 如何工作

我們看一下官方提供的架構圖:

MCP 的系統由五個核心組成部分:

  1. MCP Hosts
    運行在用戶側的應用程序,如 Cursor、Claude Desktop 等,它們是模型調用服務的發起者。

  2. MCP Clients
    在 Host 中運行的模塊,負責與遠程 MCP Server 保持連接,并轉發請求、維持上下文。

  3. MCP Servers
    服務提供者,通過 MCP 協議暴露 API、數據源、工具能力。它是系統的“能力注冊中心”。

  4. Local Data Sources
    如本地文件、本地數據庫、本地服務接口等。

  5. Remote Services
    如網絡 API、第三方服務、云平臺資源等。

MCP Server 的意義

Server 是整個 MCP 系統的“智能服務目錄”,它定義了:

  • 哪些服務對 AI 可見;
  • 每個服務的輸入輸出格式;
  • 每個服務的權限范圍和調用限制;
  • 如何持久化和恢復上下文。

以 Cursor 為例,其 AI Agent 演進過程如下:

階段能力說明
AI Chat提建議由人執行
AI Composer自動修改代碼需要人確認
AI Agent全自動任務執行可讀圖、調試、部署

MCP Server 的角色就是在這個過程中,為 Agent 提供所有服務的信息與上下文支持。

最終,MCP 目標是構建一個跨平臺、跨服務的“AI 應用生態協議層”,使得 AI Agent 可以像人一樣自由調度各種能力,實現“從建議到行動”的完整閉環。

總結

MCP 是通往 AI 原生集成世界的關鍵協議。它的出現,使得:

  • AI Agent 可以理解并調用各種服務;
  • 開發者可以復用協議組件,加速開發;
  • 企業可以構建自己的 MCP Server,有效保護數據隱私。

正如 USB Type-C 統一了電子設備之間的連接,MCP 有望統一 AI 與工具、服務之間的交互方式。

未來,AI 不再只是“聊天機器人”,而是能真正執行任務、連接系統、完成工作流的全能助手。

個人簡介

👋 你好,我是 Lorin 洛林,一位 Java 后端技術開發者!座右銘:Technology has the power to make the world a better place.

🚀 我對技術的熱情是我不斷學習和分享的動力。我的博客是一個關于Java生態系統、后端開發和最新技術趨勢的地方。

🧠 作為一個 Java 后端技術愛好者,我不僅熱衷于探索語言的新特性和技術的深度,還熱衷于分享我的見解和最佳實踐。我相信知識的分享和社區合作可以幫助我們共同成長。

💡 在我的博客上,你將找到關于Java核心概念、JVM 底層技術、常用框架如Spring和Mybatis 、MySQL等數據庫管理、RabbitMQ、Rocketmq等消息中間件、性能優化等內容的深入文章。我也將分享一些編程技巧和解決問題的方法,以幫助你更好地掌握Java編程。

🌐 我鼓勵互動和建立社區,因此請留下你的問題、建議或主題請求,讓我知道你感興趣的內容。此外,我將分享最新的互聯網和技術資訊,以確保你與技術世界的最新發展保持聯系。我期待與你一起在技術之路上前進,一起探討技術世界的無限可能性。

📖 保持關注我的博客,讓我們共同追求技術卓越。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/bicheng/84556.shtml
繁體地址,請注明出處:http://hk.pswp.cn/bicheng/84556.shtml
英文地址,請注明出處:http://en.pswp.cn/bicheng/84556.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

【threejs】每天一個小案例講解:光照

代碼倉 GitHub - TiffanyHoo/three_practices: Learning three.js together! 可自行clone,無需安裝依賴,直接liver-server運行/直接打開chapter01中的html文件 運行效果圖 知識要點 常見光照類型及其特點如下: 1. 環境光(Ambi…

大模型在輸尿管下段積水預測及臨床應用的研究

目錄 一、引言 1.1 研究背景與意義 1.2 研究目的 1.3 研究范圍與限制 1.4 文獻綜述 1.5 研究方法和框架 二、相關理論與概念 2.1 大模型技術原理 2.2 輸尿管下段積水病理機制 2.3 大模型在醫學預測領域的應用 三、大模型預測輸尿管下段積水的方法 3.1 數據收集 3.…

gitlab相關操作

2025.06.11今天我學習了如何在終端使用git相關操作: 一、需要修改新的倉庫git地址的時候: (1)檢查當前遠程倉庫 git remote -v 輸出示例: origin https://github.com/old-repo.git (fetch) origin https://github.c…

51c自動駕駛~合集58

我自己的原文哦~ https://blog.51cto.com/whaosoft/13967107 #CCA-Attention 全局池化局部保留,CCA-Attention為LLM長文本建模帶來突破性進展 琶洲實驗室、華南理工大學聯合推出關鍵上下文感知注意力機制(CCA-Attention),…

通過共享內存在多程序之間實現數據通信

注:以下內容為與 GPT-4O 共同創作完成 以共享內存的方式實現多程序之間的數據通信,尤其適合在一臺機器上的多程序之間進行高頻數據交換。 以下示例展示了 sender.py 向 receiver.py 發送數據并接收經 receiver.py 處理后的數據,以及如何通過…

[論文閱讀] 人工智能+軟件工程 | 理解GitGoodBench:評估AI代理在Git中表現的新基準

理解GitGoodBench:評估AI代理在Git中表現的新基準 論文信息 GitGoodBench: A Novel Benchmark For Evaluating Agentic Performance On Git Tobias Lindenbauer, Egor Bogomolov, Yaroslav Zharov Cite as: arXiv:2505.22583 [cs.SE] 研究背景:當AI走進…

開源 java android app 開發(十二)封庫.aar

文章的目的為了記錄使用java 進行android app 開發學習的經歷。本職為嵌入式軟件開發,公司安排開發app,臨時學習,完成app的開發。開發流程和要點有些記憶模糊,趕緊記錄,防止忘記。 相關鏈接: 開源 java an…

ubuntu + nginx 1.26 + php7.4 + mysql8.0 調優

服務器配置 8核 16G 查看內存 free -h nginx配置 worker_processes auto; # 自動檢測CPU核心數 worker_rlimit_nofile 65535; # 提高文件描述符限制 ? events {worker_connections 8192; # 每個worker的最大連接數multi_accept on; # 一次性接受…

[未驗證]abaqus2022 更改內置python

如何在 Abaqus 2022 中更改內置 Python 在 Abaqus 中,Python 是常用的腳本語言,它使得用戶能夠自動化模型的創建、分析和后處理。可能有時候你需要更改默認的 Python 版本,比如使用特定庫或者功能。本文將為您詳細說明如何在 Abaqus 2022 中更…

RAG文檔解析難點2:excel數據“大海撈針”,超大Excel解析與精準行列查詢指南

寫在前面 在構建檢索增強生成(RAG)應用時,Excel文件是不可或缺的數據源。它們通常包含了企業運營、市場分析、科學研究等各個領域的寶貴數據。然而,當這些Excel文件變得“超大”——可能包含數十萬甚至數百萬行數據時,傳統的解析方法和RAG數據處理流程將面臨嚴峻的內存、…

深度掌控,智啟未來 —— 基于 STM32F103RBT6 的控制板

在科技浪潮奔涌向前的時代,電子領域的創新發展從未停歇。對于電子工程師、科研工作者以及電子技術愛好者,在校電子專業學生而言,一款性能卓越、功能全面且穩定可靠的開發板,是探索電子世界奧秘、實現創意構想的關鍵基石。今天&…

什么樣的登錄方式才是最安全的?

目錄 一、基礎協議:HTTP與HTTPS HTTP協議 HTTPS協議 二、常見Web攻擊與防御 2.1 XSS 常見攻擊手段 針對XSS 攻擊竊取 Cookie 2.2 CSRF CSRF攻擊的核心特點 與XSS的區別 常見防御措施 三、疑問解答 四、登錄方式演變 4.1 方案一🐶狗都不用 …

android studio底部導航欄

實現底部導航欄切換 將java文件return的xml文件賦值給頁面FrameLayout控件 java文件BottomNavigationView,監聽器setOnNavigationItemSelectedListener MainActivity.java代碼 package com.example.myapplication;import android.os.Bundle;import androidx.appc…

vue-router相關理解

一、前言 隨著 Vue.js 在前端開發中的廣泛應用,Vue Router 成為了 Vue 官方推薦的路由管理器。它不僅支持單頁面應用(SPA)中常見的路由跳轉、嵌套路由、懶加載等功能,還提供了導航守衛、動態路由等高級特性。 本文將帶你深入了解…

uni-app 自定義路由封裝模塊詳解(附源碼逐行解讀)

🚀uni-app 自定義路由封裝模塊詳解(附源碼逐行解讀) 📌 請收藏 點贊 關注,獲取更多 uni-app 項目實用技巧! 在實際 uni-app 項目中,我們常常需要對 uni.navigateTo、uni.switchTab 等 API 做…

QML顯示圖片問題解決辦法

以前用qtwediget的時候,好像是放在qlabel或者什么組件上面,把圖片的路徑放上去就可以直接加載,但我用QML創建界面的時候就遇到了問題,哦對,qtwedget用qpixmap組件顯示圖片,也有image。話說回來,…

Vue中使用jsx

1. jsx的babel配置 1.1 在項目中使用jsx,需要添加對jsx的支持: jsx通常會通過Babel來進行轉換(React編寫的jsx就是通過babel轉換的)Vue中,只需要在Babel中配置對應的插件即可以下列舉需要支持轉換的案例: template -> vue-l…

Spring Cache+Redis緩存方案 vs 傳統redis緩存直接使用RedisTemplate 方案對比

結合 Spring Cache 和 Redis 的緩存方案(即 Spring Cache Redis)相較于普通的 Redis 緩存使用(如直接通過 RedisTemplate 操作),具有以下顯著優勢: 具體實現方案請參考:Spring CacheRedis緩存…

Web應用安全漏洞掃描:原理、常用方法及潛在風險解析?

Web應用安全的關鍵環節在于進行漏洞掃描,這種掃描通過自動化或半自動化的方式,對應用進行安全測試。它能揭示出配置錯誤、代碼缺陷等眾多安全風險。接下來,我將詳細闡述這些情況。 掃描原理 它主要模擬攻擊者的行為,以探測和攻擊…

Spring中@Value注解:原理、加載順序與實戰指南

文章目錄 前言一、Value注解的核心原理1.1 容器啟動階段:環境準備1.2 Bean實例化階段:后置處理器介入1.3 值解析階段:雙引擎處理1. 占位符解析(${...})2. SpEL表達式解析(#{...}) 1.4 類型轉換與…