把 MCP Server 打包进 VS Code extension

 更新时间:2025年05月01日 11:31:18   作者:formulahendry  
文章介绍了如何将MCPServer打包进VSCode extension,使得用户可以在VSCode中直接安装和运行MCPServer,而无需额外配置和工具

大家好!我是韩老师。

写在最前:如果你正好在用 Node.js 开发一个 MCP Server,那么,这篇文章将对你有用!

WHY

首先,你肯定要问,把 MCP Server 打包进 VS Code extension,有什么好处?

好处,有三:

在 VS Code 中,用户不需要任何配置,就可以直接安装 MCP Server。 用户不需要安装任何额外的工具来运行 MCP Server。甚至于,用户不需要安装 Node.js/npx。 整个 MCP Server + VS Code extension 的体积很小。以我的 Code Runner MCP Server 的 VS Code extension 为例,在没有使用 webpack 的情况下,整个体积都只有 4 MB。

HOW

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

其实,很简单,三步就能搞定!

1. 在你的 MCP Server 中,export 一个启动 Streamable Http MCP Server 的函数:

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);
}

好了,大功告成!

原理其实也很简单:因为 VS Code extension,就是一个 Node.js 的程序。MCP Server 作为 VS Code extension 的一部分,一起运行在了 Extension Host 这个进程中。所以,不需要用户的机器上额外安装 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

到此这篇关于把 MCP Server 打包进 VS Code extension的文章就介绍到这了,更多相关MCP Server 打包进 VS Code扩展内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • 使用Node.js创建一个简单的HTTP服务器的示例代码

    使用Node.js创建一个简单的HTTP服务器的示例代码

    Node.js 是一种强大的 JavaScript 运行环境,允许开发者在服务器端运行 JavaScript 代码,它以异步事件驱动的方式处理大量连接,适合构建高效的网络应用程序,在这篇文章中,我们将一起学习如何使用 Node.js 创建一个简单的 HTTP 服务器,并通过示例代码帮你快速上手
    2025-02-02
  • Express作者TJ告别Node.js奔向Go

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

    TJ自我介绍: TJ Holowaychuk ,程序员兼艺术家,Koa、Co、Express、jade、mocha、node-canvas、commander.js等知名开源项目的创建和贡献者。
    2014-07-07
  • NodeJS仿WebApi路由示例

    NodeJS仿WebApi路由示例

    本篇文章主要介绍了NodeJS仿WebApi路由示例,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-02-02
  • 利用node.js+mongodb如何搭建一个简单登录注册的功能详解

    利用node.js+mongodb如何搭建一个简单登录注册的功能详解

    这篇文章主要给大家介绍了关于利用node.js+mongodb如何搭建一个简单登录注册功能的相关资料,文中通过示例代码介绍非常详细,对大家具有一定的参考学习价值,需要的朋友们下面跟着小编来一起学习学习吧。
    2017-07-07
  • nvm安装指定版本node失败的解决方法

    nvm安装指定版本node失败的解决方法

    工作中,碰到一个项目需要旧版本的node运行(版本为14.21.3),于是我用nvm isntall 14.21.3按照该版本Node, 出现了报错,所以本文记录一下nvm安装指定版本node失败的解决方法,需要的朋友可以参考下
    2025-04-04
  • 详解nodejs爬虫程序解决gbk等中文编码问题

    详解nodejs爬虫程序解决gbk等中文编码问题

    本篇文章主要介绍了nodejs爬虫程序解决gbk等中文编码问题,解决了网页的编码与nodejs默认编码不一致造成的乱码问题,有兴趣的可以了解一下
    2017-04-04
  • 详解基于Node.js的微信JS-SDK后端接口实现代码

    详解基于Node.js的微信JS-SDK后端接口实现代码

    本篇文章主要介绍了详解基于Node.js的微信JS-SDK后端接口实现代码,具有一定的参考价值,有兴趣的可以了解一下
    2017-07-07
  • 详解如何查看node端口被占用并杀死

    详解如何查看node端口被占用并杀死

    这篇文章主要给大家介绍了如何查看node端口被占用并杀死,文中给出了相关的解决方法,并通过代码示例给大家介绍的非常详细,对前端开发要学会如何查看端口占用并杀死非常有用,需要的朋友可以参考下
    2024-01-01
  • Node.js包管理器代理工具Verdaccio轻松创建管理本地npm包仓库

    Node.js包管理器代理工具Verdaccio轻松创建管理本地npm包仓库

    这篇文章主要为大家介绍了Node.js包管理器代理工具Verdaccio轻松创建管理本地npm包仓库的使用详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-10-10
  • 将node安装到其他盘的超详细步骤与说明

    将node安装到其他盘的超详细步骤与说明

    基本现在很多主流的前端框架都用了node.js 但是node装起来确实头疼,下面这篇文章主要给大家介绍了关于如何将node安装到其他盘的超详细步骤与说明,需要的朋友可以参考下
    2023-06-06

最新评论