从多个依赖包到 1 个运行时,从复杂配置到零配置开发——这就是 Bun 带给 MCP Server 开发的革命性变化
在传统的 MCP Server 开发中,我们需要搭建一套复杂的工具链:
以 Figma-Context-MCP 为例,一个标准的 TypeScript MCP 项目需要:
构建工具链
tsup
- TypeScript 构建工具,编译 TS 到不同 Node 版本的 JStypescript
- 类型系统支持@modelcontextprotocol/sdk
- MCP 协议 SDK开发服务
nodejs
- 运行时环境node-watch
- 文件变化监听express
- Web 框架cross-env
- 跨平台环境变量dotenv
- 环境配置管理测试框架
jest
- 测试框架ts-jest
- TypeScript 测试适配器f2c-mcp 项目 展示了 Bun 的完美解决方案:
{
"build": "bun run bun.build.script.ts",
"dev": "bun --watch run bun.build.script.ts"
}
一个脚本搞定所有构建需求:
const script = process.env.npm_lifecycle_script || ''
const isDev = script.includes('--watch')
const result = await Bun.build({
entrypoints: ['src/stdio.ts', 'src/cli.ts', 'src/streamable-http.ts'],
outdir: 'dist',
format: 'cjs',
target: 'node',
sourcemap: 'linked',
minify: !isDev,
env: isDev ? 'inline' : 'disable',
})
关键优势:
{
"test": "bun test src/test/api.test.ts",
"e2e": "bun test src/test/e2e.test.ts"
}
无需配置:
{
"http:dev": "bun --env-file=.env --watch run src/streamable-http.ts",
"http:prod": "bun --env-file= run src/streamable-http.ts"
}
Bun 1.2+的突破:
指标 | Node.js 工具链 | Bun 方案 | 提升幅度 |
---|---|---|---|
项目启动时间 | 3-5 秒 | 0.5-1 秒 | 5 倍提升 |
热重载速度 | 2-3 秒 | <500ms | 6 倍提升 |
测试执行速度 | 10-15 秒 | 2-3 秒 | 5 倍提升 |
内存占用 | 200-300MB | 50-80MB | 3 倍减少 |
依赖包数量 | 15+ | 1 | 极简化 |
{
"scripts": {
"build": "bun run build.script.ts",
"dev": "bun --watch run build.script.ts",
"test": "bun test",
"serve": "bun --watch run src/server.ts"
}
}
// build.script.ts
const result = await Bun.build({
entrypoints: ['src/index.ts'],
outdir: 'dist',
target: 'node'
})
# 可以移除的包
npm uninstall tsup typescript ts-jest jest node-watch cross-env
Bun 的交叉编译能力让部署变得极其简单:
# 编译为各平台可执行文件
bun build --compile --target=linux-x64 ./src/index.ts
bun build --compile --target=windows-x64 ./src/index.ts
bun build --compile --target=darwin-x64 ./src/index.ts
从 Node.js 到 Bun 的迁移不仅仅是工具的替换,而是开发哲学的升级:
在 MCP Server 开发的新时代,Bun 不仅仅是一个更快的 Node.js 替代品,它重新定义了全栈 JavaScript 开发的可能性。
立即开始你的 Bun + MCP 之旅,体验 3 倍效率提升的开发快感!
![]() |
1
putaozhenhaochi 9 天前
100%兼容 Node.js API
?????? |
![]() |
2
ckken OP 大部分兼容
|