日韩欧美国产精品免费一二-日韩欧美国产精品亚洲二区-日韩欧美国产精品专区-日韩欧美国产另-日韩欧美国产免费看-日韩欧美国产免费看清风阁

LOGO OA教程 ERP教程 模切知識交流 PMS教程 CRM教程 開發(fā)文檔 其他文檔  
 
網(wǎng)站管理員

深入剖析MCP協(xié)議:實用性、成本考量及生態(tài)影響

freeflydom
2025年4月15日 16:20 本文熱度 150

?聊一下MCP,希望能讓各位清醒一點吧。


先說觀點:MCP不錯,但它僅僅是個協(xié)議而已,很多科普文章中,提到的更多都是愿景,而不是落地的場景。

本文不再重新陳述MCP的基本概念,而是旨在能讓大家了解的是MCP 有什么用?、怎么用?要不要用?

我準備了一份MCP實現(xiàn)的核心代碼,只保留必要的內(nèi)容,五分鐘就能看明白MCP怎么回事。

先上代碼,讓我們看看實現(xiàn)MCP最核心的部分我們都干了些什么東西。順便讓大家看看MCP到底和Function call是個什么關(guān)系。

MCP代碼核心邏輯

我們在本地運行的MCP,所以使用的是Stdio模式的客戶端和服務端。也就是:StdioServerTransportStdioClientTransport

先看打滿日志的demo運行起來起來后,我們獲得的信息:

我們的服務端寫了兩個簡單的工具,加法減法。

服務端啟動成功之后,客戶端成功的從服務端獲取到了這兩個工具。

我們發(fā)起了一個問題:計算1+1

接下來做的事情就是MCP的客戶端核心三步邏輯:

  1. 客戶端調(diào)用AI的function call能力,由AI決定是否使用工具,使用哪個工具。

  2. 客戶端把確定要使用的工具和參數(shù)發(fā)送回服務端,由服務端實現(xiàn)API調(diào)用并返回結(jié)果。

  3. 客戶端根據(jù)結(jié)果,再次調(diào)用AI,由AI進行回答。

我們一邊看代碼一邊說里面的問題:

第一步調(diào)用AI,決定使用工具

客戶端代碼:

  const response = await this.openai.chat.completions.create({
    model: model,
    messages,
    tools: this.tools, // ! 重點看這里,this.tools是服務端返回的工具列表
  });

看到了么?這里用的還是Function call! 謠言一:MCP和Function call沒關(guān)系,MCP就可以讓大家調(diào)用工具,終結(jié)了。MCP就是用的function call的能力來實現(xiàn)的工具調(diào)用。當然我們也可以不用Function call,我們就直接用提示詞判斷,也是可以的。

這里要說的是:MCP就是個協(xié)議。并沒有給大模型帶來任何新的能力,也沒有某些人說的MCP提升了Function call的能力,以后不用Function call了,用MCP就夠了這種話,千萬不要被誤導。

MCP并沒有讓大模型的工具調(diào)用能力提升

在真實的生產(chǎn)環(huán)境中,目前Function call主要的問題有:

  • 工具調(diào)用準確性不夠。 真正的生成環(huán)境可能不是三個五個工具,而是三十個五十個。工具之間的界限不夠清晰的話,就會存在模型判斷不準確的情況。

  • 參數(shù)提取準確性不夠。 特別是當一個工具必填加選填的參數(shù)達到十個以上的時候,面對復雜問題,參數(shù)的提取準確率會下降。

  • 多意圖的識別。
    用戶的一個問題涉及到多個工具時,目前沒有能夠穩(wěn)定提取的模型。

第二步把工具和參數(shù)發(fā)回服務端,由服務端調(diào)用API

客戶端代碼:

const result = await this.mcp.callTool({
  name: toolName,
  arguments: toolArgs,
});

服務端的代碼:

server.tool(
  "加法",
  "計算數(shù)字相加",
  {
    "a": z.number().describe("加法的第一個數(shù)字"),
    "b": z.number().describe("加法的第二個數(shù)字"),
  },
  async ({ a, b, c }) => {
    console.error(`服務端: 收到加法API,計算${a}$兩個數(shù)的和。模型API發(fā)送`) 
    // 這里模擬API的發(fā)送和使用
    let data = a + b
    return {
      content: [
        {
          type: "text",
          text: a + '+' + b + '的結(jié)果是:' + data,
        },
      ],
    };
  },
);

發(fā)現(xiàn)問題了么? API是要有MCP服務器提供者調(diào)用的。要花錢的朋友!

每一臺MCP服務器背后都是要成本的,收費產(chǎn)品進行MCP服務器的支持還說的過去,不收費的產(chǎn)品全靠愛發(fā)電。更不要說,誰敢在生成環(huán)境接一個不收費的私人的小服務器?

百度地圖核心API全面兼容MCP了,百度地圖是收費的,進行多場景的支持是很正常的行為。

來看看百煉吧,阿里的百煉目前推出了MCP的功能,支持在百煉上部署MCP server。

也是要花錢的朋友~,三方API調(diào)用費用另算。

阿里的魔塔社區(qū)提供了大量的MCP,可以看到有一些大廠的服務在,當然有收費的有免費的,各位可以嘗試

第三步客戶端根據(jù)結(jié)果,再次調(diào)用AI,由AI進行回答。

客戶端代碼:

messages.push({
  role: "user",
  content: result.content,
});
const aiResponse = await this.openai.chat.completions.create({
  model: model,
  messages: messages,
});

從服務端返回的結(jié)果,添加到messages中,配合提示詞由大模型進行回復即可。

這一步屬于正常的流程,沒什么好說的。

那么問題是:我們使用MCP來實現(xiàn),和我們自己實現(xiàn)這套流程有什么區(qū)別么?我們?yōu)槭裁匆肕CP呢?

當初群里朋友第一次提到MCP的時候,我去看了一眼文檔,給了這樣的結(jié)論:

大廠為了搶生態(tài)做的事情,給落地的流程中定義了一些概念,多了腦力負擔,流程和自己實現(xiàn)沒區(qū)別。

對于工具的使用,自己實現(xiàn)和用MCP實現(xiàn)有什么區(qū)別么?

自己實現(xiàn)的流程和邏輯是這樣的:

  1. 我們的提示詞工程師寫好每個工具的提示詞
  2. 我們的后端工程師寫好模型的調(diào)用,使用的是前面寫好的提示詞
  3. 提供接口給前端,等待前端調(diào)用
  4. 前端調(diào)用傳入query,后端通過AI獲取了工具
  5. 通過工具配置調(diào)用API,拿到數(shù)據(jù)交給AI,流式返回用戶。

MCP的邏輯是這樣的:

  1. 我們的提示詞工程師寫好每個工具的提示詞
  2. 我們后端工程師分別寫好MCP服務端、MCP客戶端
  3. MCP客戶端提供個接口給前端,等待前端調(diào)用
  4. 前端調(diào)用傳入query,MCP客戶端調(diào)用AI,獲取了工具。
  5. 客戶端把確定要使用的工具和參數(shù)發(fā)送會服務端,由服務端實現(xiàn)API調(diào)用并返回結(jié)果。
  6. 客戶端根據(jù)結(jié)果,再次調(diào)用AI,由AI進行回答,流式返回用戶。

看吧,本質(zhì)上是沒有區(qū)別的。

什么?你說MCP服務端,如果日后需要與其他企業(yè)進行合作,可以方便的讓對方的MCP客戶端調(diào)用? 我們的客戶端也可以很方便的接入別人的MCP服務端。

不好意思,不用MCP也可以,因為Function call的參數(shù)格式已經(jīng)確定了,這里原本存在差異性就極小。而且MCP也并沒有解決這個差異性。還是需要客戶端進行修改的。

MCP真正的意義

現(xiàn)在還是諸神混戰(zhàn)時期,整個AI產(chǎn)品的上下游所有的點,都具有極高的不確定性。

MCP給出了一個技術(shù)標準化的協(xié)議,是大家共建AI的愿景中的一環(huán),潛力是有的。

但是Anthropic真的只是在乎這個協(xié)議么?前面的內(nèi)容我們也看到了,MCP和我們自己實現(xiàn)的流程幾乎是一樣的。但是為什么還要提出MCP呢?

為了生態(tài)控制權(quán)和行業(yè)話語權(quán)。

MCP它表面上是一個開放的協(xié)議,旨在解決AI模型與外部工具集成的碎片化問題,但其實他就是Anthropic對未來AI生態(tài)主導權(quán)的競爭。

未來MCP如果真的作為一個標準的協(xié)議成為大家的共識,圍繞這個協(xié)議,甚至每家模型的工具調(diào)用格式都將被統(tǒng)一,此時Anthropic在委員會里的位置呢?不言而喻啊。

結(jié)語

最后把我的策略分享給大家吧:

打算在圈子里玩的部分,就和大家用一樣的,不在圈子里玩的,其實自己團隊實現(xiàn)也是OK的。

我這邊更多的是自己團隊實現(xiàn)的,而且在這個實現(xiàn)過程中大家對模型應用、AI產(chǎn)品的理解不斷地在提升。

希望各位讀者也多進行嘗試,這樣未來面對新出的各路牛鬼蛇神時大家才能有更多的判斷力。

共勉吧!

轉(zhuǎn)自https://juejin.cn/post/7492271537010671635


該文章在 2025/4/15 16:23:08 編輯過
關(guān)鍵字查詢
相關(guān)文章
正在查詢...
點晴ERP是一款針對中小制造業(yè)的專業(yè)生產(chǎn)管理軟件系統(tǒng),系統(tǒng)成熟度和易用性得到了國內(nèi)大量中小企業(yè)的青睞。
點晴PMS碼頭管理系統(tǒng)主要針對港口碼頭集裝箱與散貨日常運作、調(diào)度、堆場、車隊、財務費用、相關(guān)報表等業(yè)務管理,結(jié)合碼頭的業(yè)務特點,圍繞調(diào)度、堆場作業(yè)而開發(fā)的。集技術(shù)的先進性、管理的有效性于一體,是物流碼頭及其他港口類企業(yè)的高效ERP管理信息系統(tǒng)。
點晴WMS倉儲管理系統(tǒng)提供了貨物產(chǎn)品管理,銷售管理,采購管理,倉儲管理,倉庫管理,保質(zhì)期管理,貨位管理,庫位管理,生產(chǎn)管理,WMS管理系統(tǒng),標簽打印,條形碼,二維碼管理,批號管理軟件。
點晴免費OA是一款軟件和通用服務都免費,不限功能、不限時間、不限用戶的免費OA協(xié)同辦公管理系統(tǒng)。
Copyright 2010-2025 ClickSun All Rights Reserved

主站蜘蛛池模板: 性感美女网站一区二区三区 | 国产日韩欧美新地址 | 中文字幕亚洲无线码一区女同 | 国产精品美脚玉 | 国产激情自拍亚洲精品国产精品精 | 99ri国产在线观看 | 欧洲日韩国产一区 | 国产自产在线观看 | 国产一区二区三区不卡在线看 | 亚洲国产精品综合 | a在线视频观看 | 成年女人黄小视频 | 极品魔鬼身| 亚洲成a人片在线观看天堂无 | 韩日精品视频 | 国产亚洲一区二区手机在线观 | 一区二区三区国产精华护肤品 | 国产99在线| 日本伦理电影免费观看 | 国产一区二区三区四区激情 | 91九色在线观看 | 在线观看精品亚洲 | 国产在线拍揄自揄拍免费下 | 欧美日韩一区视频导航 | 国产精品jizz在线观看老狼 | 在线观看午夜福利片日本 | 夜夜夜精品视频 | 色综合婷婷在线观看66 | 99re在线观看一区 | 成人欧美一区二区三区在线 | 亚洲伊人久 | 午夜免费视频在线观看 | 日本中文有| 精品国产免费人成电影在线观看 | 国产精品欧美一区二区 | 在线观看日本欧美综合色 | 国产精品乱码高清在线观看 | 国产公开免费人成视频 | 最新电影电视剧免费在线观看 | 天天爱天天做天天做天天吃中 | 中文字幕日韩wm二在线看 |