nitrocloudofficial/nitrostack · 上手攻略
- 仓库:nitrocloudofficial/nitrostack
- 链接:https://github.com/nitrocloudofficial/nitrostack
- 分类:MCP 框架 / AI 基础设施
- 作者:Tom
- 更新:2026-07-24
这是什么
NitroStack 是一个用 TypeScript 构建的生产级 MCP(Model Context Protocol)服务器全栈框架。它包含核心 SDK(@nitrostack/core)、脚手架 CLI(@nitrostack/cli)、React UI 组件库(@nitrostack/widgets)以及配套桌面 IDE(NitroStudio),覆盖从项目初始化到生产部署的完整链路。相比从零手搓 MCP 协议胶水代码,NitroStack 通过装饰器声明式定义工具、资源、提示词,并内置依赖注入、认证鉴权、Zod 参数校验、中间件管道等企业级特性,让开发者聚焦业务逻辑而非基础设施。
解决什么问题
构建 MCP 服务器的痛点:协议握手要写、参数校验要写、认证要写、日志要写、测试靠猜。NitroStack 把这些全部标准化,提供统一抽象,使一个 .ts 文件里的装饰器堆栈同时完成 API 定义、参数校验、鉴权绑定、缓存标注、UI 挂载——零样板文件。
快速安装
环境要求
- Node.js >= 20.18
- npm >= 9
全局安装 CLI
npm i -g @nitrostack/cli
初始化项目
npx @nitrostack/cli init my-server
cd my-server
npm install
npm run dev
⚠️ Node.js 版本必须 >= 20.18,低版本会报引擎不兼容错误。
NitroStack 组织下还有独立的 Python SDK(nitrocloudofficial/nitrostack-python-sdk),若项目用 Python 编写 MCP 服务器可另行参考,两者互不包含。
核心用法
1. 定义工具(Decorators)
import { McpApp, Module, ToolDecorator as Tool, z, ExecutionContext } from '@nitrostack/core';
@McpApp({
module: AppModule,
server: { name: 'my-server', version: '1.0.0' }
})
@Module({ imports: [] })
export class AppModule {}
export class SearchTools {
@Tool({
name: 'search_products',
description: 'Search the product catalog',
inputSchema: z.object({
query: z.string().describe('Search query'),
maxResults: z.number().default(10)
})
})
@UseGuards(ApiKeyGuard)
@Cache({ ttl: 300 })
@Widget('product-grid')
async search(input: { query: string; maxResults: number }, ctx: ExecutionContext) {
ctx.logger.info('Searching products', { query: input.query });
return this.productService.search(input.query, input.maxResults);
}
}
一个装饰器栈完成:输入 schema 定义 + Zod 运行时校验 + 鉴权 + 缓存 + React UI 挂载。
2. 三大核心包
| 包 | 职责 | 安装 |
|---|---|---|
@nitrostack/core |
框架核心:装饰器、DI、服务器运行时 | npm i @nitrostack/core |
@nitrostack/cli |
脚手架生成、dev server、代码生成器 | npm i -g @nitrostack/cli |
@nitrostack/widgets |
React 组件 SDK,输出富交互 UI | npm i @nitrostack/widgets |
3. NitroStudio 可视化调试
NitroStudio 是专用桌面应用,下载:https://nitrostack.ai/studio
使用步骤:
1. 打开 my-server 项目文件夹
2. NitroStudio 自动启动 dev server
3. 实时执行工具、查看请求/响应体、与 MCP server 内置 AI chat 对话
典型适用场景
- AI Agent 工具后端:快速封装业务能力为 MCP 工具,供 Claude/GPT 等 Agent 调用
- 企业 AI 平台:需要 JWT/OAuth 鉴权、审计日志、多租户隔离的 MCP 服务
- MCP 协议学习:装饰器风格清晰,适合理解 MCP 规范的结构
- 前后端一体项目:React widget 直接嵌入 MCP 工具返回值,适合 AI+BI 类应用
坑与注意
- Node.js 版本强约束:文档明确要求 >= 20.18, LTS 18 及以下直接拒绝安装,低版本机器先升级 Node 再操作。
- 文档页面缺失:官网 docs.nitrostack.ai 的「getting-started」页面目前返回 404,新手建议直接参考 GitHub README 的示例代码上手。
- 装饰器语法要求:TypeScript 必须开启实验性装饰器(
experimentalDecorators: true),项目用tsconfig.json配置。 - NitroStudio 是独立桌面 App:不是 VS Code 插件,需单独下载安装,不随 npm 包附带。
- Python SDK 与 TS SDK 是独立仓库:别混淆,两者分别对应不同语言生态。
- DI 生命周期慎用 scoped: scoped 生命周期在 HTTP 请求级,若 MCP 服务器运行在非请求上下文(如纯定时任务)会报 scope 缺失错误。
与同类对比
| 特性 | NitroStack | FastMCP (Claude) | MCP-Relay |
|---|---|---|---|
| 语言 | TypeScript | TypeScript | 任意 |
| 认证内置 | JWT、OAuth 2.1、API Key | 需自实现 | 需自实现 |
| UI Widgets | ✅ React 组件 | ❌ | ❌ |
| 视觉调试 | NitroStudio 桌面 App | 社区工具 | 无 |
| 依赖注入 | ✅ 原生支持 | ❌ | ❌ |
| Zod 校验 | ✅ | ❌(用 JSON Schema) | ❌ |
| 许可证 | Apache 2.0 | Apache 2.0 | MIT |
如果需要开箱即鉴权+可视化调试,选 NitroStack;只需要轻量快速暴露工具,选 FastMCP。
一句话推荐结论
NitroStack 是目前 TypeScript 生态里对 MCP 服务器封装最完整、内置企业特性最丰富的框架,配合 NitroStudio 可以实现零门槛的可视化调试,适合所有想快速将业务逻辑暴露为 MCP 工具的团队。