chinese直男口爆体育生外卖, 99久久er热在这里只有精品99, 又色又爽又黄18禁美女裸身无遮挡, gogogo高清免费观看日本电视,私密按摩师高清版在线,人妻视频毛茸茸,91论坛 兴趣闲谈,欧美 亚洲 精品 8区,国产精品久久久久精品免费

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

【MCP】同時(shí)支持stdio,streamableHttpless和sse三種協(xié)議的MCP服務(wù)框架

京東云 ? 來源:jf_75140285 ? 作者:jf_75140285 ? 2026-01-21 18:26 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

項(xiàng)目說明

這是一個(gè)同時(shí)支持stdio,streamableHttpless和sse三種協(xié)議的MCP-Server的框架(ts語言)。

為什么我想做這個(gè)框架呢?因?yàn)殡S著AI發(fā)展,現(xiàn)在越來越多業(yè)務(wù)需要和AI相結(jié)合。而我在做AI應(yīng)用中發(fā)現(xiàn),MCP服務(wù)在AI方向的業(yè)務(wù)使用頻率很高,但隨著業(yè)務(wù)的加深,發(fā)現(xiàn)存在以下痛點(diǎn):

1.針對不同業(yè)務(wù),對于mcp-server需要的類型不同,有的就需要stdio,有的需要網(wǎng)絡(luò)請求

2.不同平臺對MCP服務(wù)協(xié)議要求不同,有支持streamableHttp,有僅支持sse的。

這兩種情況,會出現(xiàn)相同功能重復(fù)開發(fā),重復(fù)造輪子,浪費(fèi)時(shí)間成本

3. 此外,有些研發(fā)人員目前并不了解MCP,在業(yè)務(wù)開發(fā)時(shí)候需要現(xiàn)學(xué)

而這會讓研發(fā)周期加長,時(shí)間成本耗費(fèi)過多

所以為了解決以上痛點(diǎn),我從0-1搭建了這個(gè)框架。這個(gè)框架特點(diǎn)

1.同時(shí)支持stdio,streamableHttpless和sse三種模式,實(shí)現(xiàn)一次開發(fā)支持三種模式

2.所有功能都拆分為獨(dú)立模塊。這樣即使不懂的人,只要在指定的文件里面編寫業(yè)務(wù)邏輯,就可以創(chuàng)造自己的mcp服務(wù)

3.支持環(huán)境變量,可通過環(huán)境變量配置域名,服務(wù)地址,端口和host,真正適用于生產(chǎn)使用

4.切換模式也很簡單,只要在啟動(dòng)腳本根據(jù)需要,切換啟動(dòng)命令即可,改動(dòng)成本近乎無

5.添加日志模塊,方便查閱啟動(dòng)和服務(wù)調(diào)用情況

6.同時(shí)添加行云腳本,支持行云部署

github地址:https://github.com/XingtongCai/mcp-server-ts?

coding地址: http://xingyun.jd.com/codingRoot/jdcloud-fe/mcp-server/tree/main/demo

內(nèi)容介紹

整個(gè)框架的結(jié)構(gòu)很簡單,就如下這些:

## 目錄結(jié)構(gòu)
- build: 編譯之后的文件
- src
 -- router: 配置streamableHttp和sse協(xié)議的路由
   -- index.ts: 注冊streamableHttp路由入口
   -- mcp.ts: streamableHttp的配置路徑,具體為`process.env.MCP_BASE_PATH`的路徑請求,如果沒有配置,默認(rèn)/mcp。如果有需要添加二級路徑,例如 /mcp/event,需要在這里面添加一下/event,如果一級不用動(dòng)
   -- sse.ts: sse的配置路徑,具體為`process.env.MCP_BASE_PATH`的路徑請求,如果沒有配置,默認(rèn)/mcp。如果有需要添加二級路徑,例如 /mcp/event,需要在這里面添加一下/event,如果一級不用動(dòng)
 -- tools: mcp的工具 
   -- index.ts: 注冊工具
   -- mockFunc.ts: 模擬一個(gè)工具寫法 - 這部分需要根據(jù)業(yè)務(wù)開發(fā)
 -- cli.ts: 命令行解析工具
 -- index.ts: 總?cè)肟? -- server.ts: 創(chuàng)建Mcp服務(wù)
 -- sse.ts: 運(yùn)行sse模式
 -- stdio.ts: 運(yùn)行stdio模式
 -- streamableHttp.ts: 運(yùn)行streamableHttp模式
- xingyun/bin : 是根據(jù)我們業(yè)務(wù)使用的部署工具開發(fā)的部署腳本 - 這部分需要根據(jù)實(shí)際部署平臺更改,我這個(gè)支持行云部署
- build_xingyun.sh: 是根據(jù)我們業(yè)務(wù)使用的部署工具開發(fā)的部署腳本 - 這部分需要根據(jù)實(shí)際部署平臺更改,我這個(gè)支持行云部署

啟動(dòng)服務(wù)方式

a.本地啟動(dòng)

1.啟動(dòng)stdio: npm run start 是默認(rèn)啟動(dòng)stdio

2.啟動(dòng)StreamableHttp: npm run start:http 是默認(rèn)啟動(dòng)端口3001

3.更改端口啟動(dòng)StreamableHttp: npm run dev:http 或者 npm run start -- -t http -p 3001

-t httt: 代表啟動(dòng)StreamableHttp

-p 3001: 代表啟動(dòng)端口3001

4.啟動(dòng)sse: npm run start:sse 是默認(rèn)啟動(dòng)端口3001

?

b.部署啟動(dòng)

我在 xingyun/bin/control.sh中寫的啟動(dòng)腳本,這段代碼是啟動(dòng)streamableHttpless的,如果需要啟動(dòng)sse,需要改為 `npm run start:sse`

start(){
    npm run start:http
    sleep 3
    status
}

生產(chǎn)環(huán)境配置

# 監(jiān)聽特定內(nèi)網(wǎng)IP(例如:192.168.1.100)
export MCP_HOST=192.168.1.100
export MCP_PORT=3001

# 使用內(nèi)網(wǎng)域名(可選)
export MCP_DOMAIN=mcp-server.internal.com

# 修改基礎(chǔ)路徑(可選,默認(rèn)是 /mcp)
export MCP_BASE_PATH=/api/mcp


### 端口配置優(yōu)先級
1. 環(huán)境變量 `MCP_PORT`(最高優(yōu)先級)
2. 命令行參數(shù) `--port` 
3. 默認(rèn)值:3001端口

### 訪問地址優(yōu)先級
1. 環(huán)境變量 `MCP_DOMAIN`(最高優(yōu)先級)
2. 環(huán)境變量 `MCP_HOST`
3. 默認(rèn): localhost
### 內(nèi)網(wǎng)訪問方式
假設(shè)你的內(nèi)網(wǎng)服務(wù)器IP是 `192.168.1.100`,端口是 `3001`:

**基礎(chǔ)訪問:**
```
http://192.168.1.100:3001/sales
```

**帶域名的訪問:**
```
http://mcp-server.internal.com/sales
```

**自定義路徑:**
```
http://192.168.1.100:3001/api/mcp

?

項(xiàng)目關(guān)鍵代碼說明

這個(gè)是package.json文件,也是我們一開始要看的,`cli.js`這個(gè)文件是我們啟動(dòng)文件,也是解析命令行的工具,真實(shí)區(qū)分的地方在index.ts文件中

"scripts": {
    "build": "tsc && chmod 755 build/src/index.js  build/src/cli.js",
    "start": "node ./build/src/cli.js",
    "start:http": "node ./build/src/cli.js --transport http",
    "start:sse": "node ./build/src/cli.js --transport sse",
    "dev:http": "node ./build/src/cli.js  --transport http --port 3002",
    "stop": "pkill -f "demo" || true",
    "restart": "npm run stop && npm run start:http",
    "inspector": "npx @modelcontextprotocol/inspector"
  },

index.ts 的關(guān)鍵代碼,在這區(qū)分不同模式,然后進(jìn)入到各自的處理模塊。各自模塊就是調(diào)用sdk,配置域名等操作,代碼過長,不展示了,但是這幾個(gè)文件不用動(dòng)。

wKgZPGlwqbOANg-0AAJasNBAekc276.png

StreamableHttp.ts我支持的是less,就是我不需要sessionId,如果有需要的,這塊需要再自己改一下!!

wKgZO2lwqbSATI54AAFTHUZsgug685.png

server.ts 是創(chuàng)建mcp服務(wù),同時(shí)注冊tools工具,三個(gè)模式都需要使用的公共文件

wKgZPGlwqbWAFNGyAAEfA4Q3WZ4133.png

tools/index.ts, 作為工具入口,一個(gè)工具一個(gè)注冊

wKgZO2lwqbaAZkhIAAFlF9JJW4E507.png

router文件夾下路由注冊,是為了sse和streamableless的路由。

wKgZPGlwqbaAHP3yAACb9Ibx-ZU585.png

其中streamable的index.ts文件里面關(guān)鍵內(nèi)容,其中basePath就是你的基礎(chǔ)路徑,通過定義指定訪問路徑。

wKgZO2lwqbeAVmlyAAIg8iM0sts373.png

sse的在sse.ts文件中,定義了get和post的方法

wKgZPGlwqbiAa-dnAAKKdgl3f5w660.png

其實(shí)整個(gè)框架到這關(guān)鍵的代碼就說完了。剩下xingyun的就是在行云平臺部署和啟動(dòng)需要的腳本,這里就不介紹了

?

成果展示

1.stdio - 發(fā)布了依賴包,并用joycode成功聯(lián)通

?https://npm.m.jd.com/package/@jd/demo-mcp-server

wKgZO2lwqbiAaPqcAABZsKoUMnY600.png

?

2.streamableHttp - joycode成功聯(lián)通并且可以運(yùn)行

wKgZPGlwqbmAMZ9WAABkZYqHRUc133.png

wKgZO2lwqbqAV3QiAADwpgoHuW0782.png

?

3.sse - autobots支持sse模式,用這個(gè)框架開發(fā)了在業(yè)務(wù)中使用的 權(quán)限攔截MCP,并成功在autobots引入

wKgZPGlwqbqAezRPAAC7VZ75IxU817.png

wKgZO2lwqbuAHwj2AACeBS0JjzU855.png

審核編輯 黃宇

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報(bào)投訴
  • Stdio
    +關(guān)注

    關(guān)注

    0

    文章

    3

    瀏覽量

    7725
  • MCP
    MCP
    +關(guān)注

    關(guān)注

    0

    文章

    289

    瀏覽量

    14964
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關(guān)推薦
    熱點(diǎn)推薦

    MCP2551高速CAN收發(fā)器:特性、應(yīng)用與設(shè)計(jì)要點(diǎn)

    MCP2551高速CAN收發(fā)器:特性、應(yīng)用與設(shè)計(jì)要點(diǎn) 在CAN總線通信領(lǐng)域,收發(fā)器扮演著至關(guān)重要的角色,它是CAN協(xié)議控制器與物理總線之間的橋梁。今天我們要深入探討的是Microchip公司
    的頭像 發(fā)表于 01-22 15:20 ?146次閱讀

    本地部署微信公眾號文章搜索MCP服務(wù)并實(shí)現(xiàn)遠(yuǎn)程訪問

    本文介紹如何在本地部署基于FastAPI的微信公眾號文章搜索MCP服務(wù),并通過內(nèi)網(wǎng)穿透實(shí)現(xiàn)公網(wǎng)訪問,支持關(guān)鍵詞搜索。
    的頭像 發(fā)表于 01-12 14:58 ?765次閱讀
    本地部署微信公眾號文章搜索<b class='flag-5'>MCP</b><b class='flag-5'>服務(wù)</b>并實(shí)現(xiàn)遠(yuǎn)程訪問

    Microchip推出模型語境協(xié)議MCP服務(wù)器,助力AI驅(qū)動(dòng)的產(chǎn)品數(shù)據(jù)訪問

    )今日推出模型語境協(xié)議MCP服務(wù)器。作為AI接口,MCP服務(wù)器可直接連接兼容的AI工具和大型語言模型,為其提供解答問題所需的上下文信息。
    的頭像 發(fā)表于 12-04 16:45 ?875次閱讀

    最新MCP規(guī)范解讀,看這篇就夠了!

    ,不同團(tuán)隊(duì)重復(fù)造輪子。 Model Context Protocol(MCP) 就是為了解決這個(gè)問題而生的開放標(biāo)準(zhǔn)協(xié)議。 通俗理解 : MCP就像是「AI應(yīng)用的USB接口標(biāo)準(zhǔn)」。就像USB讓不同設(shè)備
    的頭像 發(fā)表于 11-12 16:29 ?1315次閱讀
    最新<b class='flag-5'>MCP</b>規(guī)范解讀,看這篇就夠了!

    智能硬件通過小聆AI自定義MCP應(yīng)用開發(fā)操作講解

    的可維護(hù)性;同時(shí),統(tǒng)一的協(xié)議規(guī)范增強(qiáng)了數(shù)據(jù)傳輸?shù)姆€(wěn)定性與安全性,有助于智能硬件在物聯(lián)網(wǎng)場景中實(shí)現(xiàn)高效、可靠的信息交互,加速設(shè)備智能化與互聯(lián)化進(jìn)程。 智能硬件通過小聆AI對接MCP服務(wù),
    發(fā)表于 10-14 15:50

    【內(nèi)測活動(dòng)同步開啟】這么???這么強(qiáng)?新一代大模型MCP開發(fā)板來啦!

    精準(zhǔn)識別用戶身份;構(gòu)建用戶畫像,記錄興趣與偏好;支持長期記憶,越用越懂你。 端云 MCP 服務(wù)支持配置StreamableHTTP / SSE
    發(fā)表于 09-25 11:47

    【HZ-T536開發(fā)板免費(fèi)體驗(yàn)】5- 無需死記 Linux 命令!用 CangjieMagic 在 HZ-T536 開發(fā)板上搭建 MCP 服務(wù)器,自然語言輕松控板

    GPIO 等),并返回結(jié)果。 Cangjie Magic 角色 :構(gòu)建MCP服務(wù)器,同時(shí)提供自然語言理解能力,將用戶輸入的文本(如 “查看開發(fā)板 IP 地址”“點(diǎn)亮 LED1”)轉(zhuǎn)換為機(jī)器可識別的指令(如
    發(fā)表于 08-23 13:10

    技術(shù)解讀:MCP協(xié)議以及SmartBear API Hub在MCP開發(fā)中的關(guān)鍵作用

    MCP協(xié)議正成為AI集成的“基礎(chǔ)設(shè)施”。本文將帶你認(rèn)識這一“AI界的USB-C”,并梳理SmartBear API Hub如何通過契約測試、雙向驗(yàn)證和代碼生成,真正加速MCP開發(fā)。
    的頭像 發(fā)表于 08-21 14:41 ?1099次閱讀
    技術(shù)解讀:<b class='flag-5'>MCP</b><b class='flag-5'>協(xié)議</b>以及SmartBear API Hub在<b class='flag-5'>MCP</b>開發(fā)中的關(guān)鍵作用

    MCP2515同時(shí)收發(fā)出現(xiàn)bug

    MCP2515,產(chǎn)生接收緩沖器溢出中斷,導(dǎo)致無法接受數(shù)據(jù),如何處理
    發(fā)表于 05-10 15:08

    如何用FastMCP快速開發(fā)自己的MCP Server?

    使用FastMCP快速實(shí)現(xiàn)MCP Server的全過程! 一, FastMCP簡介 FastMCP作為新一代Python風(fēng)格的MCP服務(wù)開發(fā)框
    的頭像 發(fā)表于 05-07 16:07 ?2704次閱讀
    如何用FastMCP快速開發(fā)自己的<b class='flag-5'>MCP</b> Server?

    Claude 現(xiàn)已能連接您的世界 支持遠(yuǎn)程MCP服務(wù)器協(xié)作

    支持本地 MCP)。? ” Claude 推出 Integrations(集成中心) 功能,為您的應(yīng)用程序和工具提供連接 Claude 的全新方式。同時(shí),通過增加網(wǎng)絡(luò)搜索、Google
    的頭像 發(fā)表于 05-02 11:11 ?863次閱讀

    MCP協(xié)議賦能智能硬件!硅思AI通過阿里云百煉,解鎖AI套件新體驗(yàn)

    ,助力智能硬件發(fā)展。一、MCP協(xié)議MCP(ModelContextProtocol,模型上下文協(xié)議)是一開放
    的頭像 發(fā)表于 04-25 18:09 ?1263次閱讀
    <b class='flag-5'>MCP</b><b class='flag-5'>協(xié)議</b>賦能智能硬件!硅思AI通過阿里云百煉,解鎖AI套件新體驗(yàn)

    一文詳解MCP傳輸機(jī)制

    MCP 傳輸機(jī)制(Transport)是 MCP 客戶端與 MCP 服務(wù)器通信的一個(gè)橋梁,定義了客戶端與服務(wù)器通信的細(xì)節(jié),幫助客戶端和
    的頭像 發(fā)表于 04-14 14:03 ?3546次閱讀
    一文詳解<b class='flag-5'>MCP</b>傳輸機(jī)制

    羅格科技全線產(chǎn)品支持MCP協(xié)議,構(gòu)建智慧稅務(wù)新生態(tài)

    2024年4月11日,中國·北京 近日,國內(nèi)稅務(wù)數(shù)字化領(lǐng)域的領(lǐng)軍企業(yè)——羅格科技正式宣布,旗下“羅格北?!?、“羅格靈鯤”、“羅格智稅島”大核心產(chǎn)品已全面完成MCP協(xié)議適配,企業(yè)級Agent“羅格
    的頭像 發(fā)表于 04-11 14:55 ?799次閱讀

    如何構(gòu)建MCP客戶端

    Anthropic開源了一套MCP協(xié)議,它為連接AI系統(tǒng)與數(shù)據(jù)源提供了一個(gè)通用的、開放的標(biāo)準(zhǔn),用單一協(xié)議取代了碎片化的集成方式。本文教你從零打造一個(gè)MCP客戶端。
    的頭像 發(fā)表于 03-20 09:32 ?2583次閱讀
    如何構(gòu)建<b class='flag-5'>MCP</b>客戶端