服务器端框架

Nest 是一个渐进式的 Node.js 框架,用于构建高效且可扩展的服务器端应用程序,支持 TypeScript 和模块化开发。

  • by ThomasRumas
  • TypeScript
  • 本地部署
  • 更新于
在 GitHub 查看 ThomasRumas/nestjs-api-mcp

使用说明

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单例服务模式的兼容性。有关基本原理和迁移说明,请参阅 docs/mcp-sdk-version-migration.md.

  • 自动刀具注册: 工具方法使用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脚本。