伦伦影院久久影视,天天操天天干天天射,ririsao久久精品一区 ,一本大道香蕉大久在红桃,999久久久免费精品国产色夜,色悠悠久久综合88,亚洲国产精品久久无套麻豆,亚洲香蕉毛片久久网站,一本一道久久综合狠狠老

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

【MCP】同時支持stdio,streamableHttpless和sse三種協議的MCP服務框架

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

掃碼添加小助手

加入工程師交流群

項目說明

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

為什么我想做這個框架呢?因為隨著AI發展,現在越來越多業務需要和AI相結合。而我在做AI應用中發現,MCP服務在AI方向的業務使用頻率很高,但隨著業務的加深,發現存在以下痛點:

1.針對不同業務,對于mcp-server需要的類型不同,有的就需要stdio,有的需要網絡請求

2.不同平臺對MCP服務協議要求不同,有支持streamableHttp,有僅支持sse的。

這兩種情況,會出現相同功能重復開發,重復造輪子,浪費時間成本

3. 此外,有些研發人員目前并不了解MCP,在業務開發時候需要現學

而這會讓研發周期加長,時間成本耗費過多

所以為了解決以上痛點,我從0-1搭建了這個框架。這個框架特點

1.同時支持stdio,streamableHttpless和sse三種模式,實現一次開發支持三種模式

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

3.支持環境變量,可通過環境變量配置域名,服務地址,端口和host,真正適用于生產使用

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

5.添加日志模塊,方便查閱啟動和服務調用情況

6.同時添加行云腳本,支持行云部署

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

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

內容介紹

整個框架的結構很簡單,就如下這些:

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

啟動服務方式

a.本地啟動

1.啟動stdio: npm run start 是默認啟動stdio

2.啟動StreamableHttp: npm run start:http 是默認啟動端口3001

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

-t httt: 代表啟動StreamableHttp

-p 3001: 代表啟動端口3001

4.啟動sse: npm run start:sse 是默認啟動端口3001

?

b.部署啟動

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

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

生產環境配置

# 監聽特定內網IP(例如:192.168.1.100)
export MCP_HOST=192.168.1.100
export MCP_PORT=3001

# 使用內網域名(可選)
export MCP_DOMAIN=mcp-server.internal.com

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


### 端口配置優先級
1. 環境變量 `MCP_PORT`(最高優先級)
2. 命令行參數 `--port` 
3. 默認值:3001端口

### 訪問地址優先級
1. 環境變量 `MCP_DOMAIN`(最高優先級)
2. 環境變量 `MCP_HOST`
3. 默認: localhost
### 內網訪問方式
假設你的內網服務器IP是 `192.168.1.100`,端口是 `3001`:

**基礎訪問:**
```
http://192.168.1.100:3001/sales
```

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

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

?

項目關鍵代碼說明

這個是package.json文件,也是我們一開始要看的,`cli.js`這個文件是我們啟動文件,也是解析命令行的工具,真實區分的地方在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 的關鍵代碼,在這區分不同模式,然后進入到各自的處理模塊。各自模塊就是調用sdk,配置域名等操作,代碼過長,不展示了,但是這幾個文件不用動。

wKgZPGlwqbOANg-0AAJasNBAekc276.png

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

wKgZO2lwqbSATI54AAFTHUZsgug685.png

server.ts 是創建mcp服務,同時注冊tools工具,三個模式都需要使用的公共文件

wKgZPGlwqbWAFNGyAAEfA4Q3WZ4133.png

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

wKgZO2lwqbaAZkhIAAFlF9JJW4E507.png

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

wKgZPGlwqbaAHP3yAACb9Ibx-ZU585.png

其中streamable的index.ts文件里面關鍵內容,其中basePath就是你的基礎路徑,通過定義指定訪問路徑。

wKgZO2lwqbeAVmlyAAIg8iM0sts373.png

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

wKgZPGlwqbiAa-dnAAKKdgl3f5w660.png

其實整個框架到這關鍵的代碼就說完了。剩下xingyun的就是在行云平臺部署和啟動需要的腳本,這里就不介紹了

?

成果展示

1.stdio - 發布了依賴包,并用joycode成功聯通

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

wKgZO2lwqbiAaPqcAABZsKoUMnY600.png

?

2.streamableHttp - joycode成功聯通并且可以運行

wKgZPGlwqbmAMZ9WAABkZYqHRUc133.png

wKgZO2lwqbqAV3QiAADwpgoHuW0782.png

?

3.sse - autobots支持sse模式,用這個框架開發了在業務中使用的 權限攔截MCP,并成功在autobots引入

wKgZPGlwqbqAezRPAAC7VZ75IxU817.png

wKgZO2lwqbuAHwj2AACeBS0JjzU855.png

審核編輯 黃宇

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • Stdio
    +關注

    關注

    0

    文章

    3

    瀏覽量

    7757
  • MCP
    MCP
    +關注

    關注

    0

    文章

    293

    瀏覽量

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

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

    安信可AI語音模組支持MCP模型上下文協議

    安信可 PalChat 系列(V1/V2)支持 MCP(模型上下文協議),工程師只需寫幾十行 C 代碼,就能讓 AI 模型直接控制硬件設備。V1 基于 Ai-WB2-12F,適合快速驗證;V2
    的頭像 發表于 04-15 09:54 ?325次閱讀

    樂鑫信息科技正式發布文檔MCP服務

    繼去年推出樂鑫智能文檔 AI 助手后,樂鑫信息科技 (688018.SH) 持續推進開發者工具體系的智能化演進。今日,樂鑫正式發布文檔 MCP (Model Context Protocol, 模型上下文協議) 服務器,進一步打
    的頭像 發表于 04-14 09:44 ?66次閱讀
    樂鑫信息科技正式發布文檔<b class='flag-5'>MCP</b><b class='flag-5'>服務</b>器

    MCP1630/MCP1630V高速脈寬調制器:設計與應用解析

    智能電源系統的開發提供了強大的支持。本文將深入探討MCP1630/MCP1630V的特性、電氣參數、工作原理以及典型應用,幫助電子工程師更好地理解和應用這款器件。 文件下載
    的頭像 發表于 04-07 14:40 ?93次閱讀

    MCP2542FD/4FD 和 MCP2542WFD/4WFD:高速CAN FD應用的理想之選

    MCP2542WFD/4WFD是為高速CAN FD應用設計的,通信速度最高可達8 Mbps。它能作為CAN協議控制器和物理總線之間的接口,為CAN協議控制器提供差分發送和接收能力,并且完全兼容ISO 11898 - 2:201
    的頭像 發表于 03-29 16:55 ?1085次閱讀

    MCP1827/MCP1827S:高性能1.5A LDO穩壓器的深度解析

    MCP1827/MCP1827S:高性能1.5A LDO穩壓器的深度解析 在電子設計領域,低壓差線性穩壓器(LDO)是一常見且關鍵的組件,它能夠為各種電子設備提供穩定的電源。MCP
    的頭像 發表于 03-25 14:30 ?152次閱讀

    利用BigQuery MCP服務器開發面向數據分析的生成式AI應用

    器。借助 BigQuery MCP 服務器,您現在可以為 AI 智能體提供一直接且安全的數據分析方式。這一全托管式 MCP 服務器不會帶來
    的頭像 發表于 02-25 10:22 ?416次閱讀
    利用BigQuery <b class='flag-5'>MCP</b><b class='flag-5'>服務</b>器開發面向數據分析的生成式AI應用

    本地部署微信公眾號文章搜索MCP服務并實現遠程訪問

    本文介紹如何在本地部署基于FastAPI的微信公眾號文章搜索MCP服務,并通過內網穿透實現公網訪問,支持關鍵詞搜索。
    的頭像 發表于 01-12 14:58 ?1019次閱讀
    本地部署微信公眾號文章搜索<b class='flag-5'>MCP</b><b class='flag-5'>服務</b>并實現遠程訪問

    Microchip推出模型語境協議MCP服務器,助力AI驅動的產品數據訪問

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

    最新MCP規范解讀,看這篇就夠了!

    ,不同團隊重復造輪子。 Model Context Protocol(MCP) 就是為了解決這個問題而生的開放標準協議。 通俗理解 : MCP就像是「AI應用的USB接口標準」。就像USB讓不同設備
    的頭像 發表于 11-12 16:29 ?1575次閱讀
    最新<b class='flag-5'>MCP</b>規范解讀,看這篇就夠了!

    智能硬件通過小聆AI自定義MCP應用開發操作講解

    的可維護性;同時,統一的協議規范增強了數據傳輸的穩定性與安全性,有助于智能硬件在物聯網場景中實現高效、可靠的信息交互,加速設備智能化與互聯化進程。 智能硬件通過小聆AI對接MCP服務
    發表于 10-14 15:50

    【內測活動同步開啟】這么小?這么強?新一代大模型MCP開發板來啦!

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

    【HZ-T536開發板免費體驗】5- 無需死記 Linux 命令!用 CangjieMagic 在 HZ-T536 開發板上搭建 MCP 服務器,自然語言輕松控板

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

    技術解讀:MCP協議以及SmartBear API Hub在MCP開發中的關鍵作用

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

    MCP2515同時收發出現bug

    MCP2515,產生接收緩沖器溢出中斷,導致無法接受數據,如何處理
    發表于 05-10 15:08

    Claude 現已能連接您的世界 支持遠程MCP服務器協作

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