MCP Server (NestJS)
一个使用 NestJS 构建的健壮、可扩展且可扩展的服务器端应用程序。该项目提供了模型上下文协议(MCP)服务器实现、文件管理、身份验证以及用于帖子和用户的模块化 REST API。
服务介绍
MCP 服务器 (NestJS)
一个使用 NestJS 构建的健壮、可扩展和可扩展的服务器端应用程序。该项目提供了 Model Context Protocol (MCP) 服务器实现、文件管理、身份验证以及用于帖子和用户的模块化 REST API。
目录
特性
- MCP 服务器: 实现了用于文件操作等的 Model Context Protocol。
- 文件管理: 通过 REST 端点上传、下载、列出和删除文件。
- 身份验证: 基于 JWT 的身份验证,采用本地策略。
- 用户与帖子模块: 用户和帖子的模块化结构,包含 DTO 和实体。
- Swagger 集成: 开箱即用的 API 文档。
- 可扩展性: 轻松添加新模块和功能。
架构
- NestJS: 用于构建高效、可靠且可扩展的服务器端应用程序的渐进式 Node.js 框架。
- MCP 集成: 使用自定义的 FileBrowserMCP 进行文件操作。
- 模块化设计: 每个功能都封装在自己的模块中。
开始使用
前提条件
安装
bash
克隆仓库
$ git clone https://github.com/Cstannahill/mcp-server-nestjs.git
$ cd nestjs-mcp-server
安装依赖
$ npm install
环境变量
在根目录下创建一个 .env 文件,用于存放任何密钥或配置覆盖(可选)。
开发
运行服务器
bash
在开发模式下启动(带热重载)
$ npm run start:dev
在生产模式下启动
$ npm run start:prod
有用的命令
bash
编译 TypeScript
$ npm run build
代码检查
$ npm run lint
测试
运行单元测试
bash
$ npm run test
运行端到端 (e2e) 测试
bash
$ npm run test:e2e
测试覆盖率
bash
$ npm run test:cov
部署
-
构建项目:
bash
$ npm run build -
启动服务器:
bash
$ npm run start:prod -
对于高级部署(Docker、云等),请参阅 NestJS 部署文档。
API 参考
- 如果启用,当服务器运行时 Swagger UI 可以在
/api访问。 - 主要端点:
POST /auth/login— 身份验证并接收 JWTPOST /files/upload— 上传文件GET /files/:id— 下载文件DELETE /files/:id— 删除文件GET /files— 列出文件POST /users— 创建用户POST /posts— 创建帖子
有关更多详细信息,请参见 src/ 中的控制器文件。
项目结构
src/
app.module.ts # 根模块
main.ts # 入口点
auth/ # 身份验证 (JWT, guards, strategies)
file/ # 文件管理 (上传, 下载, 删除)
mcps/ # Model Context Protocol 集成
posts/ # 帖子模块
users/ # 用户模块
database/ # 数据库连接 (如果使用)
uploads/ # 上传的文件 (本地开发)
贡献
- Fork 仓库
- 创建你的功能分支 (
git checkout -b feature/YourFeature) - 提交你的更改 (
git commit -am 'Add some feature') - 推送到分支 (
git push origin feature/YourFeature) - 打开一个拉取请求
编码标准
- 遵循现有的代码风格(参见 ESLint 配置)
- 为新功能编写单元和 e2e 测试
- 文档化你的代码并在需要时更新 README
Git 设置该项目使用 Git 进行版本控制。远程 origin 设置为:
https://github.com/Cstannahill/mcp-server-nestjs.git
许可证
Nest 采用 MIT 许可证。
资源与支持
对于任何问题、故障报告或功能请求,请打开一个 issue 或联系维护者。