成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

必看!MCP 實(shí)現(xiàn)原理,小白也能懂

開發(fā) 前端
MCP 雖然用起來很方便,但搞不懂背后的實(shí)現(xiàn)原理,總感覺這個(gè)知識(shí)點(diǎn)還沒完全掌握,所以接下來,我們一起來看它的實(shí)現(xiàn)原理。

不知道大家有沒有發(fā)現(xiàn)?對(duì)于添加到 MCP 服務(wù)市場的成千上萬個(gè) MCP 服務(wù)(而且這個(gè)數(shù)字每天還在增加),我們可以不寫一行代碼,輕松實(shí)現(xiàn)調(diào)用,但背后的原因究竟是啥呢?

MCP 雖然用起來很方便,但搞不懂背后的實(shí)現(xiàn)原理,總感覺這個(gè)知識(shí)點(diǎn)還沒完全掌握,所以接下來,我們一起來看它的實(shí)現(xiàn)原理。

從某個(gè) MCP 的調(diào)用說起

在調(diào)用某個(gè) MCP 服務(wù)的時(shí)候,只需要在 json 配置文件中添加一段 MCP 服務(wù)廠商提供的 json 信息就可以實(shí)現(xiàn)服務(wù)調(diào)用了。

例如要調(diào)用百度地圖提供的 8 大核心功能:地理編碼、逆地理編碼、地點(diǎn)檢索、路線規(guī)劃、天氣查詢、IP 定位等功能時(shí),我們只需要添加以下 json 就能輕松調(diào)用了:

{
  "mcpServers": {
    "baidu-map": {
      "command": "npx",
      "args": [
        "-y",
        "@baidumap/mcp-server-baidu-map"
      ],
      "env": {
        "BAIDU_MAP_API_KEY": "xxx"
      }
    }
  }
}

執(zhí)行結(jié)果如下:

要搞明白調(diào)用的實(shí)現(xiàn)原理,我們需要先從 json 配置文件說起,以上配置文件是 nodejs 的調(diào)用命令,其中“npx”是 “npm execute package” 的縮寫,它的主要功能是運(yùn)行一個(gè)包中的可執(zhí)行文件,而無需先將其全局安裝或添加到項(xiàng)目的依賴中,此時(shí)我們使用傳統(tǒng)的 npm 使用方式,將百度提供的依賴下載到本地:

源碼分析

我們查看其源碼就可以發(fā)現(xiàn):

其主要文件 dist/index.js 的核心源碼如下:

// 啟動(dòng)一個(gè) stdio 服務(wù)器
async function runServer() {
  const transport = new StdioServerTransport();
  await server.connect(transport);
  console.error("Baidu Map MCP Server running on stdio");
}
// 查詢天氣的工具實(shí)現(xiàn)
async function handleWeather(districtId, location) {
  const url = new URL("https://api.map.baidu.com/weather/v1/");
  url.searchParams.append("data_type", "all");
  url.searchParams.append("coordtype", "bd09ll");
  url.searchParams.append("ak", BAIDU_MAP_API_KEY);
  url.searchParams.append("from", "node_mcp");
  if (location) {
    url.searchParams.append("location", location);
  }
  if (districtId) {
    url.searchParams.append("district_id", districtId);
  }
  const response = await fetch(url.toString());
  const data = await response.json();
  if (data.status !== 0) {
    return {
      content: [{
        type: "text",
        text: `Weather searth failed: ${data.message || data.status}`
      }],
      isError: true
    };
  }
  return {
    content: [{
      type: "text",
      text: JSON.stringify({
        location: data.result.location,
        now: data.result.now,
        forecasts: data.result.forecasts,
        forecast_hours: data.result.forecast_hours,
        indexes: data.result.indexes,
        alerts: data.result.alerts,
      }, null, 2)
    }],
    isError: false
  };
}

從以上源碼我們可以大致看出,百度作為 MCP 服務(wù)提供商,幫我們做了以下這些事:

  1. 啟動(dòng) stdio 服務(wù)端,等待 MCP 客戶端連接。
  2. 當(dāng)檢測到客戶端的通訊請(qǐng)求之后,它通過 HTTP 協(xié)議請(qǐng)求自己服務(wù)器的信息,再將返回結(jié)果以 stdio 方式發(fā)送給 MCP 客戶端。

到這里,我們就搞明白了,之所以 MCP 使用比較簡單,原因是每家 MCP 服務(wù)廠商,幫我們實(shí)現(xiàn)了服務(wù)的具體調(diào)用。

并且他們遵循了 MCP 通訊協(xié)議,因此我們只需要使用 MCP Client 簡單調(diào)用就可以實(shí)現(xiàn)某個(gè)功能了,它的具體執(zhí)行流程如下:

小結(jié)

MCP 只使用調(diào)用簡單是每家 MCP 廠商幫我們實(shí)現(xiàn)了服務(wù)調(diào)用的細(xì)節(jié),并且遵循了 MCP 協(xié)議,開啟了 stdio 本地線程通訊的服務(wù),讓我們可以輕松的通過 MCP 客戶端進(jìn)行調(diào)用了。所以,你能自己實(shí)現(xiàn)一個(gè) MCP 帶 UI 的客戶端嗎?

責(zé)任編輯:姜華 來源: Java和磊哥
相關(guān)推薦

2020-10-28 07:08:03

Linux零拷貝內(nèi)核

2020-05-06 09:10:08

機(jī)器學(xué)習(xí)無監(jiān)督機(jī)器學(xué)習(xí)有監(jiān)督機(jī)器學(xué)習(xí)

2025-01-27 00:30:29

柯里化JavaScript函數(shù)

2025-02-26 00:48:32

2023-05-15 16:12:32

GitHub項(xiàng)目

2016-11-14 09:47:13

公有云私有云混合云

2025-03-28 08:20:10

Java服務(wù)器并發(fā)

2024-11-01 05:10:00

2025-02-10 11:11:47

2018-05-07 15:15:26

服務(wù)器爬蟲數(shù)據(jù)

2020-03-17 19:39:50

區(qū)塊鏈區(qū)塊鏈技術(shù)

2025-03-03 10:00:00

2024-12-18 18:53:48

2024-05-13 11:00:23

2014-12-17 12:46:17

華為存儲(chǔ)

2021-07-08 11:47:02

Saleor開源電子商務(wù)平臺(tái)

2025-02-10 00:00:10

2021-12-27 07:45:30

CSS 技巧煙霧效果

2009-12-25 10:07:38

Linux系統(tǒng)多點(diǎn)觸摸
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)

主站蜘蛛池模板: 国产日韩精品视频 | 日韩在线观看网站 | 精品欧美一区二区在线观看视频 | 一区二区三区在线 | 欧 | av男人的天堂在线 | 成人欧美一区二区三区视频xxx | 中文字幕日韩一区 | 日韩一级 | 亚洲手机在线 | 精品免费国产一区二区三区四区介绍 | 日韩精品一区在线 | 高清久久久| 91精品国产综合久久久久久蜜臀 | 亚洲黄色成人网 | 国产一区二区不卡 | 色婷婷综合久久久久中文一区二区 | 午夜久久久 | 亚洲成人一区二区 | 国产精品999| 成人免费区一区二区三区 | 亚洲成人福利在线观看 | 日日操操 | 日日爱夜夜操 | 人人做人人澡人人爽欧美 | 亚洲精彩视频 | 国产成视频在线观看 | 欧美精品一区二区三区四区 在线 | 国产乱码精品一区二区三区五月婷 | 蜜桃av一区二区三区 | 日韩欧美一区二区三区免费看 | 毛片免费观看 | 人人干人人干人人干 | 久久国产精品偷 | 91精品久久久久久久久久入口 | 亚洲成人一区二区 | 在线91 | 91在线精品秘密一区二区 | 亚洲国产精品va在线看黑人 | 国产成人免费视频网站视频社区 | 亚洲精品福利在线 | 91偷拍精品一区二区三区 |