最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

教你如何實(shí)現(xiàn)容器化 MCP Server

 更新時(shí)間:2025年05月01日 11:26:39   作者:formulahendry  
這篇文章主要介紹了如何將MCPServer容器化,以便于開發(fā)和運(yùn)行,但并不適用于所有的開發(fā)環(huán)境

大家好!我是韓老師。

寫在最前:容器化 MCP Server,有用。但是,你不一定需要。

WHY

如果你在開發(fā)一個(gè) local MCP Server,并且有以下的任何一種情況:

  • 需要安裝多個(gè) toolchain,才能運(yùn)行 local MCP Server
  • 用于開發(fā) local MCP Server 的語言,沒有像 npx 或者 uv 那樣一鍵運(yùn)行程序的工具

那么,容器化 MCP Server,對(duì)你的用戶是有用的。

反之,如果你已經(jīng)用主流的 Node.js 或者 Python 來開發(fā) local MCP Server,并且沒有其他額外的依賴。

那么,你也許并不需要容器化。

WHAT

local MCP Server 其實(shí)就是個(gè) Node.js/Python/PHP/Go/Java/... 開發(fā)的 Console App 而已,通過 stdin/stdout 與 MCP Client 交互,沒有什么特別的地方。

所以,一般來說,你只需要一個(gè) Dockerfile 即可。

HOW

既然是容器化一個(gè)普通的 Console App,那么,一切就變得很簡單了。

以下是 Code Runner MCP Server 的 Dockerfile :

## Stage 1: Builder
FROM node:lts-alpine AS builder

# Set working directory
WORKDIR /app

# Copy all files into the container
COPY . .

# Install dependencies without running scripts
RUN npm install --ignore-scripts

# Build the TypeScript source code
RUN npm run build

## Stage 2: Runtime
FROM node:lts-alpine

WORKDIR /app

# Install Python and other programming languages
RUN apk add --no-cache \
    python3 \
    go \
    php \
    ruby

# Copy only the necessary files from the builder stage
COPY --from=builder /app/dist ./dist
COPY package*.json ./

# Install only production dependencies
RUN npm install --production --ignore-scripts

# Use a non-root user for security (optional)
RUN adduser -D mcpuser
USER mcpuser

# Set the entrypoint command
CMD ["node", "./dist/index.js"]

這,就是一個(gè)標(biāo)準(zhǔn)的 multi-stage builds 的 Dockerfile。

由于 Code Runner MCP Server 需要支持多種編程語言的運(yùn)行,我在 Dockerfile 里面,預(yù)先安裝了幾個(gè)常用的編程語言的解釋器/編譯器。

這樣,用戶在使用的時(shí)候,唯一需要安裝的,就是 Docker 而已:

{
  "mcp": {
    "inputs": [],
    "servers": {
      "mcp-server-code-runner": {
        "command": "docker",
        "args": [
          "run",
          "--rm",
          "-i",
          "formulahendry/mcp-server-code-runner"
        ]
      }
    }
  }
}

完整的代碼,可以參考 Code Runner MCP Server 的 repo,完全開源:

https://github.com/formulahendry/mcp-server-code-runner

到此這篇關(guān)于教你如何實(shí)現(xiàn)容器化 MCP Server的文章就介紹到這了,更多相關(guān)容器化 MCP Server內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Node?文件查找優(yōu)先級(jí)及?Require?方法文件查找策略

    Node?文件查找優(yōu)先級(jí)及?Require?方法文件查找策略

    這篇文章主要介紹了Node文件查找優(yōu)先級(jí)及Require方法文件查找策略。文章圍繞主題展開詳細(xì)的內(nèi)容介紹,具有一定的參考價(jià)值,需要的小伙伴可以參考一下
    2022-09-09
  • 干凈卸載Windows的Node.js環(huán)境的方法

    干凈卸載Windows的Node.js環(huán)境的方法

    這篇文章主要介紹了如何干凈卸載Windows的Node.js環(huán)境的方法,文中通過圖文結(jié)合的方式講解的非常詳細(xì),對(duì)大家刪除Node.js環(huán)境有一定的幫助,需要的朋友可以參考下
    2025-01-01
  • node.js實(shí)現(xiàn)身份認(rèn)證的示例代碼

    node.js實(shí)現(xiàn)身份認(rèn)證的示例代碼

    本文主要介紹了 node.js實(shí)現(xiàn)身份認(rèn)證的示例代碼,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2022-04-04
  • node實(shí)現(xiàn)分片下載的示例代碼

    node實(shí)現(xiàn)分片下載的示例代碼

    這篇文章主要介紹了node實(shí)現(xiàn)分片下載的示例代碼,使用場景包括基于瀏覽器的流文件片段傳輸、基于客戶端的分片下載等。感興趣的小伙伴們可以參考一下
    2018-10-10
  • NodeJS 創(chuàng)建目錄和文件的方法實(shí)例分析

    NodeJS 創(chuàng)建目錄和文件的方法實(shí)例分析

    這篇文章主要介紹了NodeJS 創(chuàng)建目錄和文件的方法,涉及node.js中fs模塊mkdir、writeFile及目錄判斷existsSync等方法的功能與相關(guān)使用技巧,需要的朋友可以參考下
    2023-04-04
  • Nodejs進(jìn)階:express+session實(shí)現(xiàn)簡易登錄身份認(rèn)證

    Nodejs進(jìn)階:express+session實(shí)現(xiàn)簡易登錄身份認(rèn)證

    本篇文章主要介紹了Nodejs進(jìn)階:express+session實(shí)現(xiàn)簡易身份認(rèn)證示例,非常具有實(shí)用價(jià)值,需要的朋友可以參考下
    2017-04-04
  • 基于NodeJS的前后端分離的思考與實(shí)踐(二)模版探索

    基于NodeJS的前后端分離的思考與實(shí)踐(二)模版探索

    在傳統(tǒng)的開發(fā)模式中,瀏覽器端與服務(wù)器端是由不同的前后端兩個(gè)團(tuán)隊(duì)開發(fā),但是模版卻又在這兩者中間的模糊地帶。因此模版上面總不可避免的越來越多復(fù)雜邏輯,最終難以維護(hù)。
    2014-09-09
  • Node快速切換版本、版本回退(降級(jí))、版本更新(升級(jí))

    Node快速切換版本、版本回退(降級(jí))、版本更新(升級(jí))

    這篇文章主要介紹了Node快速切換版本、版本回退(降級(jí))、版本更新(升級(jí)),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2021-01-01
  • NodeJS處理Express中異步錯(cuò)誤

    NodeJS處理Express中異步錯(cuò)誤

    本文主要闡述如何在 Express 中使用錯(cuò)誤處理中間件(error-handling middleware)來高效處理異步錯(cuò)誤。在 Github 上有對(duì)應(yīng) 代碼實(shí)例 可供參考。
    2017-03-03
  • node.js中的url.parse方法使用舉例

    node.js中的url.parse方法使用舉例

    url.parse()可以將一個(gè)完整的URL地址,分為很多部分,下面這篇文章主要給大家介紹了關(guān)于node.js中url.parse方法使用的相關(guān)資料,文中通過實(shí)例代碼和圖文介紹的非常詳細(xì),需要的朋友可以參考下
    2023-03-03

最新評(píng)論

天镇县| 苍山县| 连州市| 武强县| 江口县| 定安县| 手游| 巍山| 莱西市| 新化县| 镇远县| 弥勒县| 苏州市| 乌什县| 阳信县| 那坡县| 张家界市| 梁平县| 无锡市| 桂东县| 阳江市| 峨眉山市| 富阳市| 阜南县| 武城县| 河池市| 朝阳区| 孟州市| 武强县| 昌图县| 康定县| 福海县| 阿尔山市| 曲松县| 荃湾区| 蒙阴县| 安乡县| 张家界市| 攀枝花市| 郎溪县| 安泽县|