A progressive Node.js framework for building efficient and scalable server-side applications.
描述
巢 框架TypeScript启动库。
该存储库演示了如何使用Nest的monorestore功能通过MCP(模型上下文协议)服务器扩展现有的NestJS API。目标是在主API和MCP服务器之间实现代码的共同化,以便两者都可以共享服务、DTO和生成的Prisma类型。
主要目标:
- 通过单回购布局重用现有NestJS API中的代码(请参阅NestJS单回购文档)。
- 提供一个与NestJS单例和官方TypeScript SDK v1.24.3兼容的MCP服务器(请参阅docs/MCP-SDK-version-migration.md)。
- 使用Types/Nest装饰器方法自动注册MCP工具(请参阅docs/MCP-tools-decorator.md和 apps/mcp/src/api/api.service.ts).
这个项目是一个将MCP服务器集成到Nest monorepo中的示例,同时保留了惯用的Nest模式(单例服务、依赖注入和装饰器)。
项目设置
$ npm install编译并运行项目
# development
$ npm run start
// Start the `api` application in watch mode
$ npm run start:dev api
// Start the `mcp` application in watch mode (MCP server)
$ npm run start:dev mcp
The default `npm run start:dev` without an application name will fall back to the `api` application.
# watch mode
$ npm run start:dev
# production mode
$ npm run start:prod运行测试
# unit tests
$ npm run test
# e2e tests
$ npm run test:e2e
# test coverage
$ npm run test:cov资源
查看一些在使用NestJS时可能会派上用场的资源:
- 访问 NestJS文档 了解更多关于该框架的信息。
- 如有疑问和支持,请访问我们的 不和谐频道.
- 要深入了解并获得更多实践经验,请查看我们的官方视频 课程.
- 在以下帮助下将您的应用程序部署到AWS NestJS Mau 只需点击几下。
- 可视化您的应用程序图,并使用实时与NestJS应用程序交互 NestJS开发工具.
- 你的项目需要帮助(兼职到全职)吗?查看我们的官方 企业支持.
- 要了解最新动态,请关注我们 十、 和 领英.
- 正在找工作,或者有工作要提供?查看我们的官方 工作板.
许可证
Nest是 麻省理工学院许可.
附加项目信息
- Monorepo方法: 此存储库使用NestJS monorepo功能在以下目录下托管多个应用程序
apps/(例如apps/api和apps/mcp).这允许在应用程序之间共享模块、DTO和生成的Prisma类型。请参阅Nest CLI monorepo文档:https://docs.nestjs.com/cli/monorepo
- Monorepo方法: 此存储库使用NestJS monorepo功能在以下目录下托管多个应用程序
apps/(例如apps/api和apps/mcp).这允许在应用程序之间共享模块、DTO和生成的Prisma类型。看 Nest CLI monorepo文档.
- MCP SDK版本: 我们使用的官方TypeScript MCP SDK固定在
@modelcontextprotocol/sdk@1.24.3以保持与NestJS单例服务模式的兼容性。有关基本原理和迁移说明,请参阅 .
- 自动刀具注册: 工具方法使用Nest友好的装饰器公开,该装饰器在启动时自动发现和注册工具处理程序。看 docs/mcp-tools-decorator.md 以及示例实现 apps/mcp/src/api/api.service.ts.
- 流式HTTP和可观察性: 此项目中的MCP服务器实现了Streamable HTTP请求模式。这意味着一个工具可以返回RxJS
Observable并且其发射通过MCP连接流式传输(服务器发送事件风格)。这与基于NestJS和RxJS的服务自然集成。
- TypeScript配置和别名: 工作空间
tsconfig.json定义路径别名以允许mcp应用程序导入为API和Prisma客户端生成的代码。看 Tsconflict.儿子 对于别名,例如@api/*和@prisma-generated/*.
- 如何在本地运行:
- 安装依赖项: npm install - 在开发中启动API应用程序: npm run start:dev api - 启动正在开发的MCP应用程序: npm run start:dev mcp
如果您需要帮助连接monorepo工作区或运行特定应用程序,请打开以下相应的应用程序文件夹 apps/ 并使用带有应用程序名称的npm脚本。
