关于 🧠 MCP Server con NestJS
这是一个基于 NestJS 构建的模块化 MCP 服务,通过 HTTP 提供带 Zod 输入校验的声明式工具,供 LLM 或外部客户端调用。内置计算、温度、文件系统和代码分析工具。
主要功能
- 01模块化工具架构
- 02Zod 输入校验
- 03计算器与温度工具
- 04文件读取、写入和删除
- 05分析代码并生成 Markdown
适用场景
- 01通过 HTTP 执行基础计算
- 02读取、写入或删除文件
- 03分析项目目录并生成说明文档
MCP 相关
通过 POST /mcp 提供 MCP 工具,供 LLM 和外部客户端调用;工具参数使用 Zod 校验。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
我们还没有获取到这个服务的安装包或远程地址,请按项目 README 中的说明安装。
工具
本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。
详细介绍
🧠 使用 NestJS 构建 MCP 服务
一个渐进式 Node.js 框架,用于构建高效、可扩展的服务端应用程序。
该项目是一个使用 NestJS 构建的可扩展模块化服务,作为 MCP(Model Context Protocol)服务运行。 其目的是让 LLM 模型(如 Claude、GPT 等)或外部客户端通过 HTTP 请求与一组专业工具交互。 每个工具都会动态注册,并包含一个名称、一个使用 Zod 验证的输入架构,以及一个用于执行其逻辑的处理函数。
🚀 特性
- ✨ 模块化架构(基于工具)。
- 📦 可复用工具:
calculator、temperature、filesystem、code-analyzer-local。 - 🧠 已准备好与 LLM 集成。
- 📝 自动生成带有代码描述的 Markdown 文件。
- 📁 支持读取、写入和删除文件。
- 🔧 使用
.env和动态路径进行配置。
📁 项目结构
src/
├── docs/ # Resultados en Markdown
├── mcp/ # Módulo MCP con controlador y servicio
├── tools/ # Herramientas disponibles
│ ├── calculator.tool.ts
│ ├── code-analyzer-local.tool.ts
│ ├── filesystem.tool.ts
│ ├── temperature.tool.ts
│ └── index.ts
├── app.module.ts
├── main.ts
🧰 可用工具
所有工具均可通过以下端点使用:
POST /mcp
🔹 calculator
- 描述:执行基本数学运算。
- 参数:
a(number)b(number)operation:“add”、“subtract”、“multiply”、“divide”
- 示例:
{
"toolName": "calculator",
"params": {
"a": 10,
"b": 2,
"operation": "multiply"
}
}
🔹 temperature
- 描述:根据提示词返回一个虚构的温度。
- 参数:
prompt(string)
- 示例:
{
"toolName": "temperature",
"params": {
"prompt": "Temperatura en Madrid"
}
}
🔹 filesystem
- 描述:读取、写入或删除系统中的文件。
- 参数:
path(string)action:“read”、“write”、“delete”content(string,可选):当action = write时必填
- 示例:
{
"toolName": "filesystem",
"params": {
"path": "src/main.ts",
"action": "read"
}
}
🔹 code-analyzer-local
- 描述:分析项目文件并生成一份描述性
.md文件。 - 参数:
directory(string):要分析的文件夹。outputName(string, opcional):输出文件名。
- 示例:
{
"toolName": "code-analyzer-local",
"params": {
"directory": "mcp-server/src"
}
}
🛡️ 使用 Zod 进行验证
什么是 Zod?
Zod 是一个用于 TypeScript 的模式验证和解析库。它可以声明式地定义数据结构,然后验证数据是否符合这些模式。在处理**语言模型(LLM)**时尤其有用,因为模型的输出可能会变化,或不遵循严格的结构。
本项目中使用它的目的是什么?
Zod 用于验证 LLM 模型生成的响应,并确保其符合预期格式。这有助于:
- 在运行时检测结构错误。
- 确保收到的信息可由系统的其他部分处理。
- 提高基于 LLM 的 Agent 或流水线的稳健性。
📦 安装
npm install zod
---
Usamos Zod para definir y validar esta estructura:
import { z } from "zod";
// Definición del esquema esperado
const TaskSchema = z.object({
title: z.string(),
completed: z.boolean(),
});
// Ejemplo de salida de un LLM (como texto JSON)
const llmOutput = `{
"title": "Escribir documentación",
"completed": false
}`;
try {
const parsed = TaskSchema.parse(JSON.parse(llmOutput));
console.log("✅ Datos válidos:", parsed);
} catch (err) {
console.error("❌ Validación fallida:", err);
}
## ⚙️ Configuración `.env`
```env
PORT=3000
ANALYSIS_DIR=./src/docs
🧪 测试服务
npm install
$ npm run start:dev
查询工具:
curl -X POST http://localhost:3000/mcp -H "Content-Type: application/json" -d '{"toolName":"calculator","params":{"a":5,"b":3,"operation":"add"}}'
部署
准备将 NestJS 应用部署到生产环境时,可以采取一些关键步骤,确保应用尽可能高效地运行。请参阅部署文档了解更多信息。
如果你想使用云平台部署 NestJS 应用,可以了解我们的官方平台 Mau,它可用于在 AWS 上部署 NestJS 应用。Mau 让部署变得简单快捷,只需几个简单步骤:
$ npm install -g @nestjs/mau
$ mau deploy
使用 Mau,只需点击几下即可部署应用,让你专注于开发功能,而不是管理基础设施。
资源
以下资源可能会对你使用 NestJS 有所帮助:
- 访问 NestJS 文档,了解有关该框架的更多信息。
- 如有问题或需要支持,请访问我们的 Discord 频道。
- 想要深入学习并获得更多实践经验,请查看我们的官方课程视频。
- 只需点击几下,即可借助 NestJS Mau 将应用部署到 AWS。
- 使用 NestJS Devtools 可视化应用图表,并实时与 NestJS 应用交互。
- 需要项目方面的帮助(兼职或全职)?请查看我们的官方企业支持。
- 如需了解最新动态和更新,请在 X 和 LinkedIn 上关注我们。
- 正在找工作,或有职位要发布?请查看我们的官方招聘板。
🧑💻 作者
由 klever 开发 - 2025
📝 许可证
Nest 使用 MIT 许可证。 本项目采用 MIT 许可证。
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。