欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

把 MCP Server 打包進(jìn) VS Code extension

 更新時間:2025年05月01日 11:31:18   作者:formulahendry  
文章介紹了如何將MCPServer打包進(jìn)VSCode extension,使得用戶可以在VSCode中直接安裝和運(yùn)行MCPServer,而無需額外配置和工具

大家好!我是韓老師。

寫在最前:如果你正好在用 Node.js 開發(fā)一個 MCP Server,那么,這篇文章將對你有用!

WHY

首先,你肯定要問,把 MCP Server 打包進(jìn) VS Code extension,有什么好處?

好處,有三:

在 VS Code 中,用戶不需要任何配置,就可以直接安裝 MCP Server。 用戶不需要安裝任何額外的工具來運(yùn)行 MCP Server。甚至于,用戶不需要安裝 Node.js/npx。 整個 MCP Server + VS Code extension 的體積很小。以我的 Code Runner MCP Server 的 VS Code extension 為例,在沒有使用 webpack 的情況下,整個體積都只有 4 MB。

HOW

你肯定想要知道,如何做到?

其實(shí),很簡單,三步就能搞定!

1. 在你的 MCP Server 中,export 一個啟動 Streamable Http MCP Server 的函數(shù):

export async function startMcpServer(transport: Transport, options?: HttpServerOptions): Promise<void | McpServerEndpoint> {
    if (transport === 'stdio') {
        return startStdioMcpServer();
    } else if (transport === 'http') {
        return startStreamableHttpMcpServer(options?.port);
    } else {
        throw new Error('Invalid transport. Must be either "stdio" or "http"');
    }
}

2. 在 VS Code extension 中,引用你的 MCP Server 的 npm,然后啟動 Streamable Http MCP Server,然后得到一個 localhost 的 MCP URL:

import { startMcpServer } from "mcp-server-code-runner";

async function startHttpMcpServer(): Promise<string | undefined> {
    const result = await startMcpServer("http", { port: 3098 });

    return result ? result.url : undefined;
}

3. 把這個 localhost 的 MCP URL,配置到 VS Code 的 settings.json 中:

async function updateMcpUrlToVsCodeSettings(mcpUrl: string) {
    const configuration = vscode.workspace.getConfiguration();
    const mcpServers = configuration.get<any>("mcp.servers", {});
    mcpServers["code-runner-streamable-http-mcp-server"] = {
        type: "http",
        url: mcpUrl,
    };
    await configuration.update("mcp.servers", mcpServers, vscode.ConfigurationTarget.Global);
}

好了,大功告成!

原理其實(shí)也很簡單:因?yàn)?VS Code extension,就是一個 Node.js 的程序。MCP Server 作為 VS Code extension 的一部分,一起運(yùn)行在了 Extension Host 這個進(jìn)程中。所以,不需要用戶的機(jī)器上額外安裝 Node.js/npx 了!

完整代碼,完全開源,歡迎大家圍觀!

MCP Server:

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

VS Code extension:

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

大家也可以也可以在 VS Code Marketplace 搜索 Code Runner MCP Server 來直接試用:

注意需要使用最新的 VS Code Insider,版本號 >= 1.100

https://marketplace.visualstudio.com/items?itemName=formulahendry.code-runner-mcp-server

到此這篇關(guān)于把 MCP Server 打包進(jìn) VS Code extension的文章就介紹到這了,更多相關(guān)MCP Server 打包進(jìn) VS Code擴(kuò)展內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 使用Node.js創(chuàng)建一個簡單的HTTP服務(wù)器的示例代碼

    使用Node.js創(chuàng)建一個簡單的HTTP服務(wù)器的示例代碼

    Node.js 是一種強(qiáng)大的 JavaScript 運(yùn)行環(huán)境,允許開發(fā)者在服務(wù)器端運(yùn)行 JavaScript 代碼,它以異步事件驅(qū)動的方式處理大量連接,適合構(gòu)建高效的網(wǎng)絡(luò)應(yīng)用程序,在這篇文章中,我們將一起學(xué)習(xí)如何使用 Node.js 創(chuàng)建一個簡單的 HTTP 服務(wù)器,并通過示例代碼幫你快速上手
    2025-02-02
  • Express作者TJ告別Node.js奔向Go

    Express作者TJ告別Node.js奔向Go

    TJ自我介紹: TJ Holowaychuk ,程序員兼藝術(shù)家,Koa、Co、Express、jade、mocha、node-canvas、commander.js等知名開源項目的創(chuàng)建和貢獻(xiàn)者。
    2014-07-07
  • NodeJS仿WebApi路由示例

    NodeJS仿WebApi路由示例

    本篇文章主要介紹了NodeJS仿WebApi路由示例,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-02-02
  • 利用node.js+mongodb如何搭建一個簡單登錄注冊的功能詳解

    利用node.js+mongodb如何搭建一個簡單登錄注冊的功能詳解

    這篇文章主要給大家介紹了關(guān)于利用node.js+mongodb如何搭建一個簡單登錄注冊功能的相關(guān)資料,文中通過示例代碼介紹非常詳細(xì),對大家具有一定的參考學(xué)習(xí)價值,需要的朋友們下面跟著小編來一起學(xué)習(xí)學(xué)習(xí)吧。
    2017-07-07
  • nvm安裝指定版本node失敗的解決方法

    nvm安裝指定版本node失敗的解決方法

    工作中,碰到一個項目需要舊版本的node運(yùn)行(版本為14.21.3),于是我用nvm isntall 14.21.3按照該版本Node, 出現(xiàn)了報錯,所以本文記錄一下nvm安裝指定版本node失敗的解決方法,需要的朋友可以參考下
    2025-04-04
  • 詳解nodejs爬蟲程序解決gbk等中文編碼問題

    詳解nodejs爬蟲程序解決gbk等中文編碼問題

    本篇文章主要介紹了nodejs爬蟲程序解決gbk等中文編碼問題,解決了網(wǎng)頁的編碼與nodejs默認(rèn)編碼不一致造成的亂碼問題,有興趣的可以了解一下
    2017-04-04
  • 詳解基于Node.js的微信JS-SDK后端接口實(shí)現(xiàn)代碼

    詳解基于Node.js的微信JS-SDK后端接口實(shí)現(xiàn)代碼

    本篇文章主要介紹了詳解基于Node.js的微信JS-SDK后端接口實(shí)現(xiàn)代碼,具有一定的參考價值,有興趣的可以了解一下
    2017-07-07
  • 詳解如何查看node端口被占用并殺死

    詳解如何查看node端口被占用并殺死

    這篇文章主要給大家介紹了如何查看node端口被占用并殺死,文中給出了相關(guān)的解決方法,并通過代碼示例給大家介紹的非常詳細(xì),對前端開發(fā)要學(xué)會如何查看端口占用并殺死非常有用,需要的朋友可以參考下
    2024-01-01
  • Node.js包管理器代理工具Verdaccio輕松創(chuàng)建管理本地npm包倉庫

    Node.js包管理器代理工具Verdaccio輕松創(chuàng)建管理本地npm包倉庫

    這篇文章主要為大家介紹了Node.js包管理器代理工具Verdaccio輕松創(chuàng)建管理本地npm包倉庫的使用詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-10-10
  • 將node安裝到其他盤的超詳細(xì)步驟與說明

    將node安裝到其他盤的超詳細(xì)步驟與說明

    基本現(xiàn)在很多主流的前端框架都用了node.js 但是node裝起來確實(shí)頭疼,下面這篇文章主要給大家介紹了關(guān)于如何將node安裝到其他盤的超詳細(xì)步驟與說明,需要的朋友可以參考下
    2023-06-06

最新評論