MCP(?Model Context Protocol,模型上下文協議)是由Anthropic推出的開放協議,并非獨立的大模型,而是連接大模型與外部工具/數據源的標準化接口?,旨在解決AI工具開發中接口不統一、跨模型共享困難等問題。?
一、工作原理
MCP 協議采用了一種獨特的架構設計,它將 LLM 與資源之間的通信劃分為三個主要部分:客戶端、服務器和資源。
MCP 遵循客戶端-服務器架構(client-server),其中包含以下幾個核心概念:
- MCP 主機(MCP Hosts):發起請求的 LLM 應用程序(例如?Claude Desktop、IDE 或 AI 工具)。
- MCP 客戶端(MCP Clients):在主機程序內部,與 MCP server 保持 1:1 的連接。
- MCP 服務器(MCP Servers):為 MCP client 提供上下文、工具和 prompt 信息。
- 本地資源(Local Resources):本地計算機中可供 MCP server 安全訪問的資源(例如文件、數據庫)。
- 遠程資源(Remote Resources):MCP server 可以連接到的遠程資源(例如通過 API)
由上述可知,MCP是將一些程序封裝,用戶輸入自然語言讓大模型去執行這些程序。
當用戶提出一個問題時:
- 客戶端(Claude Desktop / Cursor)將你的問題發送給LLM。
- LLM分析可用的工具,并決定使用哪一個(或多個)。
- 客戶端通過 MCP Server 執行所選的工具。
- 工具的執行結果被送回給 LLM。
- LLM結合執行結果構造最終的 prompt 并生成自然語言的回應。
- 回應最終展示給用戶!
二、MCP 、Agent、RAG 之間的聯系
MCP 是模型上下文協議,為AI模型與外部工具提供了標準化的橋梁。簡單來說就是MCP是一套規則,為外部調用的不同Tools提供接口,方便了與LLM的接入。Agent 通過決策選擇所需的工具得到結果,然后反饋給LLM進行綜合分析,重新組織結果反饋給用戶。RAG 重要的知識庫檢索技術,只需提供對應的數據,反饋給LLM即可。
輸入(用戶)----->Agent ---(決策)需要的Tools--->MCP ---(調用Tools)---->結果? ------>LLM? ---->輸出給用戶。
MCP 為 Agent 提供基礎設施
MCP 將外部工具封裝為標準化接口,供 Agent 按需要調用。
比如,Agent 通過 MCP Server 訪問 Postgres 數據庫執行 SQL 查詢。
Agent驅動MCP價值落地
MCP 本身無法主動運作,需依賴 Agent 發起請求。
比如,當 Agent 識別需要調用天氣 API 的時候,通過 MCP Client 向對應 Server 發送結構化請求。
三、function call?
Function Calling?指程序或模型主動調用預定義函數的能力。對于大語言模型(LLM)而言,它是模型與外部工具/API交互的核心機制,使模型能超越純文本生成,執行實際操作(如查天氣、計算、數據庫查詢等)。
sequenceDiagramparticipant Userparticipant LLMparticipant SystemUser->>LLM: "提醒我明天上午10點開會"LLM->>System: 生成函數調用請求(JSON):{"function": "calendar.create_event","parameters": {"title": "會議","time": "xx.xxx.xxxxT10:00:00"}}System->>Calendar API: 執行實際函數Calendar API-->>System: 創建成功System-->>LLM: 返回結果LLM-->>User: "已創建明天10點的會議提醒"
主流實現方案
平臺 | 實現方式 |
---|---|
OpenAI | 通過tools 參數聲明可用函數,模型返回tool_calls 響應 |
Anthropic Claude | 使用tool_use 塊和結構化XML標簽 |
LangChain | 通過Tool 類封裝函數,bind_functions() 實現綁定 |
Google Gemini | 用FunctionDeclaration 定義工具,在content.parts 中返回調用請求 |
-
MCP?作為模型調度層,可統一管理函數調用所需的模型資源
-
Agent?使用Function Calling作為基礎能力單元
四、案例實踐(vscode+cline+MCP-github)
1、安裝vscode, 并在vscode中安裝插件cline
2、安裝nodejs
網址:Node.js — 在任何地方運行 JavaScript
3、配置cline
API -Provider 選擇 Open Router
Model選擇?deepseek/deepseek-chat:free
OpenRouter APl Key? 獲取點擊? ?Get?OpenRouter APl Key? 跳轉后點擊Authorize,會自動填寫。
4、配置 MCP -GitHub
點擊install,會調用大模型自動進行步驟提示。
此處會讓你點擊運行代碼。
此處需要點擊所提供的網址,配置GitHub 的token.或者點擊https://github.com/settings/tokens
進行。具體操作請自行探索。
此處需要將生成的token復制,發送給cline.
完成后會生成一個cline_mcp_settings.json文件,如:
如果是Mac電腦,配置結束,繼續運行即可。
windows電腦需要修改配置文件。如下所示:
然后在窗口輸入命令: 我的名字是xxx(github用化名),查詢我的遠程倉庫有哪些?
最后給出匯總:
?
?其他的MCP可在MCP 倉庫,參照使用。
參考
1、https://zhuanlan.zhihu.com/p/27327515233
MCP合集:Smithery - Model Context Protocol Registry
MCP 倉庫:https://github.com/modelcontextprotocol/servers
安裝操作:【MCP是啥?技術原理是什么?一個視頻搞懂MCP的一切。Windows系統配置MCP,Cursor Cline使用MCP】https://www.bilibili.com/video/BV1AnQNYxEsy?vd_source=dd4b91f2d81783a0712b0e908952f9b0